https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77982
--- Comment #8 from Maxim Ostapenko <m.ostapenko at samsung dot com> --- (In reply to Pawel Sikora from comment #7) > (In reply to Maxim Ostapenko from comment #6) > > The attached testcase works for me with current trunk GCC: > > > > max@max:/tmp/bug$ make > > rm -f m *.so > > ~/install/master/bin/g++ -fuse-ld=gold -g2 -Og -flto -fsanitize=address > > s.cpp -shared -o s.so -fPIC > > ~/install/master/bin/g++ -fuse-ld=gold -g2 -Og -flto -fsanitize=address > > m.cpp -o m > > max@max:/tmp/bug$ LD_LIBRARY_PATH=/home/max/install/master/lib64 ./m > > initializing library... > > done. > > thread started. > > max@max:/tmp/bug$ echo $? > > 0 > > > strange, i've tested gcc-trunk and it locks in the same way as 6.2.1. > > > ~/src/gcc-install/usr/local/bin/g++ -v > Using built-in specs. > COLLECT_GCC=/home/pawels/src/gcc-install/usr/local/bin/g++ > COLLECT_LTO_WRAPPER=/home/pawels/src/gcc-install/usr/local/bin/../libexec/ > gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper > Target: x86_64-pc-linux-gnu > Configured with: /home/pawels/src/gcc/configure --with-arch=x86-64 > --with-linker-hash-style=gnu --disable-multilib --disable-nls > --disable-libssp --disable-libgomp --disable-libquadmath --disable-libitm > --disable-libcilkrts --disable-libvtv --disable-liboffloadmic > --disable-libmpx --enable-tls --enable-libstdcxx-allocator=new > --enable-extern-template --enable-libstdcxx-time=rt > --enable-libstdcxx-threads --disable-libstdcxx-dual-abi > --enable-libstdcxx-filesystem-ts=no --enable-symvers=gnu-versioned-namespace > --disable-libstdcxx-pch --enable-lto --enable-plugin --enable-c99 > --enable-long-long --enable-linux-futex --enable-threads=posix > --enable-shared --with-pic --enable-gold --enable-__cxa_atexit > --enable-gnu-unique-object --enable-initfini-array --enable-languages=c,c++ > --enable-checking=release --with-long-double-128 --disable-cld > --disable-bootstrap > Thread model: posix > gcc version 7.0.0 20161025 (experimental) (GCC) > > ~/src/gcc-install/usr/local/bin/g++ -fuse-ld=gold -g2 -Og -fsanitize=address > -Wl,-rpath,/home/pawels/src/gcc-install/usr/local/lib64 -flto s.cpp -shared > -o s.so -fPIC -pthread > ~/src/gcc-install/usr/local/bin/g++ -fuse-ld=gold -g2 -Og -fsanitize=address > -Wl,-rpath,/home/pawels/src/gcc-install/usr/local/lib64 -flto m.cpp -o m -ldl > > [pawels@pawels]~/src/bug% ./m > initializing library... > ^C Hm, perhaps environment issue. What version of Glibc do you use?