https://sourceware.org/bugzilla/show_bug.cgi?id=16417
--- Comment #10 from Alan Modra <amodra at gmail dot com> --- I was also puzzled as to why libpthread.so is exporting symbols defined in libc.so, and vice versa, but on looking at the code there is some justification for some of the duplication. The libc versions have extra code (testing for multple threads) before taking locks. So the libc versions would be a tiny bit slower than libpthread versions, when you know for sure that multiple threads are running. Now if you're linking against libpthread you probably do have multiple threads, but clearly the testcase in comment #6 does not have multiple threads but manages to pull in libpthread. Note that this is *not* via the weak reference to __pthread_key_create but due to the duplicate symbols! And if libpthread is pulled in accidentally, then single-threaded code will run slower.. Another thing I just found is that the testcase in comment #6 does not segfault when linked by mainline gold on my x86_64 system. (My g++ reports (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3) I guess I should have checked gold before reopening this bug. I think it likely that newer versions of libstdc++ are at fault here. -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils