On 2011/04/23 23:47, Dale Rahn wrote: > Here is a diff that was originally hatched at c2k10 and finally implemented > at k2k11. This has been tested lightly so needs to be tested on all systems > with big and small programs.
This breaks 'doveadm' in the dovecot package; to test, pkg_add dovecot, then just run 'doveadm', no need for any setup. === (gdb) r Starting program: /usr/local/bin/doveadm (no debugging symbols found) Program received signal SIGTRAP, Trace/breakpoint trap. Cannot remove breakpoints because program is no longer writable. It might be running in another process. Further execution is probably impossible. 0x0000000202302470 in ?? () === This is happening when it dlopen'()s a module. The following code is equivalent to what doveadm is doing, and is enough to show the problem. Reverting to ld.so from before 2011/05/22 and things work ok. === #include <dlfcn.h> main() { dlopen("/usr/local/lib/dovecot/doveadm/lib10_doveadm_zlib_plugin.so", RTLD_GLOBAL | RTLD_NOW); } ===