https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104080
Bug ID: 104080 Summary: [12 Regression] newlib doesn't have endian.h causing build failure with 2800bc08e4ab r12-6646 Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: build Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: hp at gcc dot gnu.org CC: ppalka at gcc dot gnu.org Target Milestone: --- Target: cris-elf With a commit in the range a81f6092350c..490e23032baa, most likely 2800bc08e4ab a.k.a. r12-6646, newlib targets such as cris-elf has started failing at build time of libstdc++ thus: make[5]: Entering directory '/X-obj/cris-elf/libstdc++-v3/src/c++17' /bin/sh ../../libtool --tag CXX --tag disable-shared --mode=compile /X-obj/./gcc/xgcc -shared-libgcc -B/X-obj/./gcc -nostdinc++ -L/X-obj/cris-elf/libstdc++-v3/src -L/X-obj/cris-elf/libstdc++-v3/src/.libs -L/X-obj/cris-elf/libstdc++-v3/libsupc++/.libs -nostdinc -B/X-obj/cris-elf/newlib/ -isystem /X-obj/cris-elf/newlib/targ-include -isystem /X-gccsrc/newlib/libc/include -B/X-obj/cris-elf/libgloss/cris -L/X-obj/cris-elf/libgloss/libnosys -L/X-gccsrc/libgloss/cris -B/X/pre/cris-elf/bin/ -B/X/pre/cris-elf/lib/ -isystem /X/pre/cris-elf/include -isystem /X/pre/cris-elf/sys-include -I/X-gccsrc/libstdc++-v3/../libgcc -I/X-obj/cris-elf/libstdc++-v3/include/cris-elf -I/X-obj/cris-elf/libstdc++-v3/include -I/X-gccsrc/libstdc++-v3/libsupc++ -std=gnu++17 -nostdinc++ -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=2 -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=floating_from_chars.lo -fimplicit-templates -g -O2 -c -o floating_from_chars.lo /X-gccsrc/libstdc++-v3/src/c++17/floating_from_chars.cc libtool: compile: /X-obj/./gcc/xgcc -shared-libgcc -B/X-obj/./gcc -nostdinc++ -L/X-obj/cris-elf/libstdc++-v3/src -L/X-obj/cris-elf/libstdc++-v3/src/.libs -L/X-obj/cris-elf/libstdc++-v3/libsupc++/.libs -nostdinc -B/X-obj/cris-elf/newlib/ -isystem /X-obj/cris-elf/newlib/targ-include -isystem /X-gccsrc/newlib/libc/include -B/X-obj/cris-elf/libgloss/cris -L/X-obj/cris-elf/libgloss/libnosys -L/X-gccsrc/libgloss/cris -B/X/pre/cris-elf/bin/ -B/X/pre/cris-elf/lib/ -isystem /X/pre/cris-elf/include -isystem /X/pre/cris-elf/sys-include -I/X-gccsrc/libstdc++-v3/../libgcc -I/X-obj/cris-elf/libstdc++-v3/include/cris-elf -I/X-obj/cris-elf/libstdc++-v3/include -I/X-gccsrc/libstdc++-v3/libsupc++ -std=gnu++17 -nostdinc++ -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=2 -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=floating_from_chars.lo -fimplicit-templates -g -O2 -c /X-gccsrc/libstdc++-v3/src/c++17/floating_from_chars.cc -o floating_from_chars.o In file included from /X-gccsrc/libstdc++-v3/src/c++17/floating_from_chars.cc:65: /X-gccsrc/libstdc++-v3/src/c++17/fast_float/fast_float.h:139:10: fatal error: endian.h: No such file or directory 139 | #include <endian.h> | ^~~~~~~~~~ compilation terminated. make[5]: *** [Makefile:585: floating_from_chars.lo] Error 1 make[5]: Leaving directory '/X-obj/cris-elf/libstdc++-v3/src/c++17' Newlib doesn't have endian.h, but it does have machine/endian.h. An obvious patch is being tested.