https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118938
Bug ID: 118938 Summary: C++ compiler fails to build for m68k-linux-gnu Product: gcc Version: 14.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: wbx at openadk dot org Target Milestone: --- Hi, I am trying to cross-compile gdb for m68k (68040). In the second stage gcc fails to build libsupc++ with following error: libtool: link: /home/wbx/openadk/toolchain_build_qemu-m68k-q800_glibc_68040/w-gcc-14.2.0-1/gcc-14.2.0-final/./gcc/xgcc -shared-libgcc -B/home/wbx/openadk/toolchain_build_qemu-m68k-q800_glibc_68040/w-gcc-14.2.0-1/ gcc-14.2.0-final/./gcc -nostdinc++ -L/home/wbx/openadk/toolchain_build_qemu-m68k-q800_glibc_68040/w-gcc-14.2.0-1/gcc-14.2.0-final/m68k-openadk-linux-gnu/m68000/libstdc++-v3/src -L/home/wbx/openadk/toolchain_build _qemu-m68k-q800_glibc_68040/w-gcc-14.2.0-1/gcc-14.2.0-final/m68k-openadk-linux-gnu/m68000/libstdc++-v3/src/.libs -L/home/wbx/openadk/toolchain_build_qemu-m68k-q800_glibc_68040/w-gcc-14.2.0-1/gcc-14.2.0-final/m68k -openadk-linux-gnu/m68000/libstdc++-v3/libsupc++/.libs -B/home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/bin/ -B/home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-op enadk-linux-gnu/lib/ -isystem /home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/include -isystem /home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/sys-include --sysroot=/home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/../../target_qemu-m68k-q800_glibc_68040 -mcpu=68000 -fPIC -DPIC -D_GLIBCXX_SHARED -shared -nostdlib /home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/lib/crti.o /home/wbx/openadk/toolchain_build_qemu-m68k-q800_glibc_68040/w-gcc-14.2.0-1/gcc-14.2.0-final/./gcc/m68000/crtbeginS.o .libs/compatibility.o .libs/compatibility-debug_list.o .libs/compatibility-debug_list-2.o .libs/compatibility-atomic-c++0x.o .libs/compatibility-c++0x.o .libs/compatibility-chrono.o .libs/compatibility-condvar.o .libs/compatibility-thread-c++0x.o -Wl,--whole-archive ../libsupc++/.libs/libsupc++convenience.a ../src/c++98/.libs/libc++98convenience.a ../src/c++11/.libs/libc++11convenience.a ../src/c++17/.libs/libc++17convenience.a ../src/c++20/.libs/libc++20convenience.a -Wl,--no-whole-archive -L/home/wbx/openadk/toolchain_build_qemu-m68k-q800_glibc_68040/w-gcc-14.2.0-1/gcc-14.2.0-final/m68k-openadk-linux-gnu/m68000/libstdc++-v3/libsupc++/.libs -L/home/wbx/openadk/toolchain_build_qemu-m68k-q800_glibc_68040/w-gcc-14.2.0-1/gcc-14.2.0-final/m68k-openadk-linux-gnu/m68000/libstdc++-v3/src -L/home/wbx/openadk/toolchain_build_qemu-m68k-q800_glibc_68040/w-gcc-14.2.0-1/gcc-14.2.0-final/m68k-openadk-linux-gnu/m68000/libstdc++-v3/src/.libs -lm -L/home/wbx/openadk/toolchain_build_qemu-m68k-q800_glibc_68040/w-gcc-14.2.0-1/gcc-14.2.0-final/./gcc/m68000 -L/home/wbx/openadk/toolchain_build_qemu-m68k-q800_glibc_68040/w-gcc-14.2.0-1/gcc-14.2.0-final/./gcc -L/home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/bin -L/home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/lib -L/home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/../../target_qemu-m68k-q800_glibc_68040/lib -L/home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/../../target_qemu-m68k-q800_glibc_68040/usr/lib -lc -lgcc_s /home/wbx/openadk/toolchain_build_qemu-m68k-q800_glibc_68040/w-gcc-14.2.0-1/gcc-14.2.0-final/./gcc/m68000/crtendS.o /home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/lib/crtn.o -mcpu=68000 -Wl,-O1 -Wl,-z -Wl,relro -Wl,--gc-sections -mcpu=68000 -Wl,--version-script=libstdc++-symbols.ver -Wl,-soname -Wl,libstdc++.so.6 -o .libs/libstdc++.so.6.0.33 ../libsupc++/.libs/libsupc++convenience.a(bad_array_length.o): in function `std::bad_array_length::what() const': bad_array_length.cc:(.text._ZNKSt16bad_array_length4whatEv+0x4): relocation truncated to fit: R_68K_GOT16 against symbol `_GLOBAL_OFFSET_TABLE_' defined in .got.plt section in /home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/lib/crti.o ../libsupc++/.libs/libsupc++convenience.a(bad_array_length.o): in function `std::bad_array_length::~bad_array_length()': bad_array_length.cc:(.text._ZNSt16bad_array_lengthD2Ev+0x4): relocation truncated to fit: R_68K_GOT16 against symbol `_GLOBAL_OFFSET_TABLE_' defined in .got.plt section in /home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/lib/crti.o ../libsupc++/.libs/libsupc++convenience.a(bad_array_length.o): in function `std::bad_array_length::~bad_array_length()': bad_array_length.cc:(.text._ZNSt16bad_array_lengthD0Ev+0x6): relocation truncated to fit: R_68K_GOT16 against symbol `_GLOBAL_OFFSET_TABLE_' defined in .got.plt section in /home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/lib/crti.o ../libsupc++/.libs/libsupc++convenience.a(bad_array_length.o): in function `__cxa_throw_bad_array_length': bad_array_length.cc:(.text.unlikely.__cxa_throw_bad_array_length+0x4): relocation truncated to fit: R_68K_GOT16 against symbol `_GLOBAL_OFFSET_TABLE_' defined in .got.plt section in /home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/lib/crti.o ../libsupc++/.libs/libsupc++convenience.a(eh_alloc.o): in function `__gnu_cxx::__concurrence_lock_error::what() const': eh_alloc.cc:(.text._ZNK9__gnu_cxx24__concurrence_lock_error4whatEv[_ZNK9__gnu_cxx24__concurrence_lock_error4whatEv]+0x4): relocation truncated to fit: R_68K_GOT16 against symbol `_GLOBAL_OFFSET_TABLE_' defined in .got.plt section in /home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/lib/crti.o ../libsupc++/.libs/libsupc++convenience.a(eh_alloc.o): in function `__gnu_cxx::__concurrence_unlock_error::what() const': eh_alloc.cc:(.text._ZNK9__gnu_cxx26__concurrence_unlock_error4whatEv[_ZNK9__gnu_cxx26__concurrence_unlock_error4whatEv]+0x4): relocation truncated to fit: R_68K_GOT16 against symbol `_GLOBAL_OFFSET_TABLE_' defined in .got.plt section in /home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/lib/crti.o ../libsupc++/.libs/libsupc++convenience.a(eh_alloc.o): in function `__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error()': eh_alloc.cc:(.text._ZN9__gnu_cxx24__concurrence_lock_errorD2Ev[_ZN9__gnu_cxx24__concurrence_lock_errorD5Ev]+0x4): relocation truncated to fit: R_68K_GOT16 against symbol `_GLOBAL_OFFSET_TABLE_' defined in .got.plt section in /home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/lib/crti.o ../libsupc++/.libs/libsupc++convenience.a(eh_alloc.o): in function `__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error()': eh_alloc.cc:(.text._ZN9__gnu_cxx24__concurrence_lock_errorD0Ev[_ZN9__gnu_cxx24__concurrence_lock_errorD5Ev]+0x6): relocation truncated to fit: R_68K_GOT16 against symbol `_GLOBAL_OFFSET_TABLE_' defined in .got.plt section in /home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/lib/crti.o ../libsupc++/.libs/libsupc++convenience.a(eh_alloc.o): in function `__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error()': eh_alloc.cc:(.text._ZN9__gnu_cxx26__concurrence_unlock_errorD2Ev[_ZN9__gnu_cxx26__concurrence_unlock_errorD5Ev]+0x4): relocation truncated to fit: R_68K_GOT16 against symbol `_GLOBAL_OFFSET_TABLE_' defined in .got.plt section in /home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/lib/crti.o ../libsupc++/.libs/libsupc++convenience.a(eh_alloc.o): in function `__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error()': eh_alloc.cc:(.text._ZN9__gnu_cxx26__concurrence_unlock_errorD0Ev[_ZN9__gnu_cxx26__concurrence_unlock_errorD5Ev]+0x6): relocation truncated to fit: R_68K_GOT16 against symbol `_GLOBAL_OFFSET_TABLE_' defined in .got.plt section in /home/wbx/openadk/toolchain_qemu-m68k-q800_glibc_68040/usr/m68k-openadk-linux-gnu/lib/crti.o ../libsupc++/.libs/libsupc++convenience.a(eh_alloc.o): in function `__gnu_cxx::__mutex::lock()': eh_alloc.cc:(.text._ZN9__gnu_cxx7__mutex4lockEv[_ZN9__gnu_cxx7__mutex4lockEv]+0x4): additional relocation overflows omitted from the output collect2: error: ld returned 1 exit status gmake[15]: *** [Makefile:764: libstdc++.la] Error 1 gmake[14]: *** [Makefile:797: all-recursive] Error 1 gmake[13]: *** [Makefile:577: all-recursive] Error 1 gmake[12]: *** [Makefile:502: all] Error 2 gmake[11]: *** [Makefile:871: multi-do] Error 1 gmake[10]: *** [Makefile:841: all-multi] Error 2 gmake[9]: *** [Makefile:577: all-recursive] Error 1 gmake[8]: *** [Makefile:502: all] Error 2 Is this a gcc bug or has it something todo with glibc 2.41 or binutils 2.43.1? This also happens for gcc 13.3.0. Any help is appreciated. best regards Waldemar