https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86215
simon at pushface dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |simon at pushface dot org --- Comment #1 from simon at pushface dot org --- Related to PR80556. Building this with GCC 8.1.0 on Darwin 17.7.0 results in lockheed:86215 simon$ g++ demo.cc -static-libgcc -static-libstdc++ ld: warning: direct access in function 'operator new(unsigned long, std::nothrow_t const&) [clone .cold.0]' from file '/opt/gcc-8.1.0/bin/../lib/gcc/x86_64-apple-darwin15/8.1.0/../../../libstdc++.a(new_opnt.o)' to global weak symbol 'operator new(unsigned long, std::nothrow_t const&)' from file '/opt/gcc-8.1.0/bin/../lib/gcc/x86_64-apple-darwin15/8.1.0/../../../libstdc++.a(new_opnt.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. and running it works OK. lockheed:86215 simon$ ./a.out abc123 This GCC 8.1.0 was Configured with: ../gcc-8.1.0/configure --prefix=/Volumes/Miscellaneous/tmp/opt/gcc-8.1.0 --without-libiconv-prefix --disable-libmudflap --disable-libstdcxx-pch --disable-libsanitizer --disable-libcc1 --disable-libcilkrts --disable-multilib --disable-nls --enable-languages=c,c++,ada,fortran,objc,obj-c++ --host=x86_64-apple-darwin15 --target=x86_64-apple-darwin15 --build=x86_64-apple-darwin15 --with-boot-ldflags='-static-libstdc++ -static-libgcc -Wl,-headerpad_max_install_names' The reason for explicitly setting the boot-ldflags was because of the need to also specify the headerpad-max option.