https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118280

            Bug ID: 118280
           Summary: undefined symbol __atomic_test_and_set in libstdc++.so
                    on Microblaze
           Product: gcc
           Version: 14.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: thomas.petazz...@free-electrons.com
  Target Milestone: ---

Since gcc 14.x, the libstdc++ library uses __atomic_test_and_set, and this
symbol isn't available on Microblaze, causing build failures such as:

configure:2557: checking for C++ compiler default output file name
configure:2579:
/home/thomas/buildroot/buildroot/outputs/gcc14-microblaze/host/bin/microblazeel-buildroot-linux-gnu-g++
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -O2 -g0 
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  conftest.cpp 
>&5
/home/thomas/buildroot/buildroot/outputs/gcc14-microblaze/host/lib/gcc/microblazeel-buildroot-linux-gnu/14.2.0/../../../../microblazeel-buildroot-linux-gnu/bin/ld:
/home/thomas/buildroot/buildroot/outputs/gcc14-microblaze/host/lib/gcc/microblazeel-buildroot-linux-gnu/14.2.0/../../../../microblazeel-buildroot-linux-gnu/lib/libstdc++.so:
undefined reference to `__atomic_test_and_set'
collect2: error: ld returned 1 exit status
configure:2583: $? = 1
configure:2621: result:
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "acpitool"
| #define VERSION "0.5.1"
| /* end confdefs.h.  */
|
| int
| main ()
| {
|
|   ;
|   return 0;

The exact same code builds fine with gcc 13.x.

Reproducer:

$ git clone https://gitlab.com/buildroot.org/buildroot.git
$ cat > .config<<EOF
BR2_microblazeel=y
BR2_GCC_VERSION_14_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_PACKAGE_ACPITOOL=y
EOF
$ make olddefconfig
$ make

Reply via email to