What drives RPM Provides for shared libraries?

Nicholas Miell nmiell at gmail.com
Wed Dec 22 07:28:13 UTC 2010


On 12/21/2010 09:43 PM, Nicholas Miell wrote:
> 
> ld.so isn't happy with that (lookups aren't based on filenames, so
> symlinks won't do anything and it will never find the library).
> 
> You need to create an empty shared library with the
> libmysqlclient_r.so.16 SONAME that has a DT_AUXILIARY entry for
> libmysqlclient.so.16.

In theory, the following should produce a usable library:

eu-readelf -s /usr/lib64/mysql/libmysqlclient_r.so.16.0.0 |
./mysql_filter.gawk > hack.c
gcc $(rpm --eval %optflags) -fPIC -shared -fno-toplevel-reorder
-Wl,-soname,libmysqlclient_r.so.16 -Wl,--filter,libmysqlclient.so.16
hack.c -o libmysqlclient_r.so.16

but in practice, it gives me:

/usr/bin/ld: libmysqlclient_r.so.16: version node not found for symbol
sf_malloc_mem_limit@@libmysqlclient_16
/usr/bin/ld: failed to set dynamic section sizes: Bad value
collect2: ld returned 1 exit status

and nobody on the internet has any idea what that error means.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: mysql_filter.gawk
Url: http://lists.fedoraproject.org/pipermail/devel/attachments/20101221/cb8f8782/attachment.pl 


More information about the devel mailing list