This hangs for me with glibc 2.3.2-7: sl.c: #include <syslog.h> #include <dlfcn.h> int main( void ) { dlopen("./sll.so", RTLD_LAZY); openlog("asd2", 0, 0); syslog(0, "sdfsdf"); return(0); } sll.c: (empty file) gcc sl.c -osl -ldl gcc sll.c -osll.so -shared -lpthread ./sl (this is what i got after some hours of debugging.. maybe useful for something.)