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.

Reply via email to