> > Iirc versioned-symbols in db2 and db3 were introduced by the > > respective debian maintainers, and db4 shipped them with upstream but > > my memory might be wrong. > > This was based on running objdump -p on the libdb libraries. For db2 > and db3 the output included entries like > > Version definitions: > 1 0x01 0x05477ab2 libdb2.so.2 > 2 0x00 0x00004852 DB2 > > For db4.0 and db4.1 there was no such output.
You are looking at the wrong part. They have really versioned their symbols, without using the GNU ld feature which doesn't work on some platforms: objdump -T gives me: . . 00018b94 g DF .text 0000005d Base __db_db_h_nelem_4001 000679e0 g DF .text 000001c9 Base __ham_chgpg_log_4001 00038438 g DF .text 0000010d Base __db_master_open_4001 000187c0 g DF .text 0000005d Base __db_db_bt_maxkey_4001 00067dc0 g DF .text 00000135 Base __ham_init_print_4001 00055c3c g DF .text 00000013 Base __db_ndbm_clearerr_4001 0001c784 g DF .text 00000022 Base __dbcl_set_timeout_4001 0003c0ec g DF .text 00000264 Base __db_big_getpgnos_4001 00045554 g DF .text 00000050 Base __db_ccountchk_4001 0006a3b8 g DF .text 0000000b Base __ham_test_4001 . .