On Mon, Nov 14, 2011 at 10:47:31AM +0100, Stephan Bergmann wrote: > I must admit I'm confused. On my system,
> >~ objdump -T /usr/lib64/libstdc++.so.6 | grep > >_ZNSs4_Rep20_S_empty_rep_storageE > >0000003e504f45a0 g DO .bss 0000000000000020 GLIBCXX_3.4 > >_ZNSs4_Rep20_S_empty_rep_storageE > > > >~ objdump -T /usr/lib64/libmysqlcppconn.so | grep > >_ZNSs4_Rep20_S_empty_rep_storageE > >0000000000000000 DO *UND* 0000000000000000 GLIBCXX_3.4 > >_ZNSs4_Rep20_S_empty_rep_storageE > > > >~ objdump -t mysqlc/unxlngx6/lib/mysqlc.uno.so | grep > >_ZNSs4_Rep20_S_empty_rep_storageE > >00000000003dbe40 l O .bss 0000000000000020 > >_ZNSs4_Rep20_S_empty_rep_storageE > That is, libstdc++.so.6 exports the symbol with version GLIBCXX_3.4 > and libmysqlcppconn.so links against it, while mysqlc.uno.so emits > its own definition of the symbol (as a local symbol, due to the map > file). Do you have an idea why mysqlc.uno.so emits its own > definition at all? Now that you mention it, my *system* libmysqlcppconn.so also links against the symbol: $ objdump -T /usr/lib/libmysqlcppconn.so|grep _rep_st 0000000000000000 DO *UND* 0000000000000000 GLIBCXX_3.4 _ZNSs4_Rep20_S_empty_rep_storageE But the LibreOffice-*internal* libmysqlcppconn defines the symbol as "globally unique": $ objdump -T ~/src/libreoffice/core/mysqlcppconn/unxlngx6/lib/libmysqlcppconn.so|grep _rep_st 000000000031bca0 u DO .bss 0000000000000020 Base _ZNSs4_Rep20_S_empty_rep_storageE Hmm... Maybe it is a question of different version of G++/libstdc++, but on my system, libmysqlcppconn.so defines symbol itself as "u". Or would that be a change introduced by -D_GLIBCXX_DEBUG? Now, the weird thing is that if I recompile my distro's libmysqlcppconn package, that symbol disappears *completely*: $ objdump -T ~/src/mysqlcppconn/mysql-connector-c++-1.1.0/debian/libmysqlcppconn5/usr/lib/libmysqlcppconn.so.5.1.1.0 | grep -i _rep_st $ Also compare: $ ldd ~/src/libreoffice/core/mysqlcppconn/unxlngx6/lib/libmysqlcppconn.so linux-vdso.so.1 => (0x00007fff89fef000) libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 (0x00007f4de8623000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4de8407000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f4de8102000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4de7e80000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f4de7c6a000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4de78e5000) libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f4de76ae000) libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f4de7496000) libz.so.1 => /usr/lib/libz.so.1 (0x00007f4de727e000) /lib64/ld-linux-x86-64.so.2 (0x00007f4de8d77000) $ ldd ~/src/mysqlcppconn/mysql-connector-c++-1.1.0/debian/libmysqlcppconn5/usr/lib/libmysqlcppconn.so.5.1.1.0 linux-vdso.so.1 => (0x00007fff72ca9000) libmysqlclient_r.so.16 => /usr/lib/libmysqlclient_r.so.16 (0x00007f7898da5000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7898aa1000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f789881e000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7898608000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7898284000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7898067000) libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f7897e30000) libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f7897c18000) libz.so.1 => /usr/lib/libz.so.1 (0x00007f7897a00000) /lib64/ld-linux-x86-64.so.2 (0x00007f78994f4000) $ ldd /usr/lib/libmysqlcppconn.so.5.1.1.0 linux-vdso.so.1 => (0x00007fff1f4c3000) libmysqlclient_r.so.16 => /usr/lib/libmysqlclient_r.so.16 (0x00007f7e9f79a000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7e9f496000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7e9f213000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7e9effd000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7e9ec79000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7e9ea5c000) libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f7e9e825000) libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f7e9e60d000) libz.so.1 => /usr/lib/libz.so.1 (0x00007f7e9e3f5000) /lib64/ld-linux-x86-64.so.2 (0x00007f7e9fe77000) libpthread disappearing, libmysqlclient_r.so.16 vs libmysqlclient.so.16... -- Lionel _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice