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.