https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77982
--- Comment #7 from Pawel Sikora <pawel_sikora at zoho dot com> --- (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