When ldapdns is terminated, the following message is printed to stdout: libgcc_s.so.1 must be installed for pthread_cancel to work This is because ldapdns does not link to libgcc_s by default. Adding `LFLAGS=-lgcc_s' as an argument to ./configure solves the problem. Before: # ldd `which ldapdns` linux-gate.so.1 => (0xb7f4f000) libldap_r-2.3.so.0 => /usr/lib/libldap_r-2.3.so.0 (0xb7f00000) liblber-2.3.so.0 => /usr/lib/liblber-2.3.so.0 (0xb7ef4000) libpthread.so.0 => /lib/libpthread.so.0 (0xb7edd000) libc.so.6 => /lib/libc.so.6 (0xb7db4000) libresolv.so.2 => /lib/libresolv.so.2 (0xb7da1000) libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb7d8b000) libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0xb7d4d000) libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0xb7c14000) /lib/ld-linux.so.2 (0xb7f50000) libdl.so.2 => /lib/libdl.so.2 (0xb7c10000) libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7be1000) After: # ldd `which ldapdns` linux-gate.so.1 => (0xb7f2c000) libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libgcc_s.so.1 (0xb7f12000) libldap_r-2.3.so.0 => /usr/lib/libldap_r-2.3.so.0 (0xb7ed2000) liblber-2.3.so.0 => /usr/lib/liblber-2.3.so.0 (0xb7ec6000) libpthread.so.0 => /lib/libpthread.so.0 (0xb7eaf000) libc.so.6 => /lib/libc.so.6 (0xb7d85000) libresolv.so.2 => /lib/libresolv.so.2 (0xb7d73000) libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb7d5d000) libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0xb7d1f000) libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0xb7be6000) /lib/ld-linux.so.2 (0xb7f2d000) libdl.so.2 => /lib/libdl.so.2 (0xb7be1000) libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7bb3000) This seems to be the case on at least x86 and amd64. Reproducible: Always
ldapdns should not just stick '-lgcc_s' into its linker flags ... more likely it does a link with something like -nostdlib which causes gcc to not automatically insert the -lgcc_s ... that part should be fixed
Removed from main tree.