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

Reply via email to