Oh sorry, I didn't see you already had an answer. Luckily we agreed on the problem and the solution :-) On Mon, 9 May 2022, 19:51 Jonathan Wakely, <jwakely.gcc@xxxxxxxxx> wrote: > > > On Mon, 9 May 2022, 18:16 Dennis Clarke via Gcc-help, < > gcc-help@xxxxxxxxxxx> wrote: > >> >> Not sure what is causing this on a Linux armv7 32-bit machine but I have >> libc6-dev installed and that provides : >> >> # ls -lapb /usr/include/arm-linux-gnueabihf/bits/libc-header-start.h >> > > > But this is not a standard header location, so GCC won't look there. > > You need to use --enable-multiarch to use the Debian MultiArch directory > layout. > > > >> This is a reasonable little Debian machine : >> >> root@io:~# uname -a >> Linux io 4.4.194 #52 SMP Tue Oct 26 08:35:58 UTC 2021 armv7l GNU/Linux >> root@io:~# >> root@io:~# cat /etc/debian_version >> 10.10 >> root@io:~# >> >> Nothing fancy here. >> >> Configure stage is fine regardless if I try to specify --build and >> target and host or not. >> >> For example : >> >> io$ date -u >> Mon 09 May 2022 03:24:25 PM UTC >> io$ CC='gcc -march=armv7-a -mtune=cortex-a17 -mfpu=vfpv4-d16 -marm' \ >> > CXX='g++ -march=armv7-a -mtune=cortex-a17 -mfpu=vfpv4-d16 -marm' \ >> > LD_RUN_PATH='/opt/gcc/imed/gcc12/lib:/opt/bw/lib' \ >> > ../gcc-12.1.0/configure \ >> > --build=arm-linux-gnueabihf \ >> > --target=arm-linux-gnueabihf \ >> > --host=arm-linux-gnueabihf \ >> > --prefix=/opt/gcc/imed/gcc12 \ >> > --disable-nls --enable-threads=posix --enable-shared \ >> > --with-gmp=/opt/bw --with-mpfr=/opt/bw --with-mpc=/opt/bw \ >> > --enable-bootstrap --enable-languages=ada,c,c++,fortran \ >> > --enable-stage1-languages=c,c++ --enable-stage1-checking=misc >> checking build system type... arm-unknown-linux-gnueabihf >> checking host system type... arm-unknown-linux-gnueabihf >> checking target system type... arm-unknown-linux-gnueabihf >> checking for a BSD-compatible install... /usr/bin/install -c >> checking whether ln works... yes >> checking whether ln -s works... yes >> checking for a sed that does not truncate output... /bin/sed >> checking for gawk... no >> checking for mawk... mawk >> checking for libatomic support... yes >> checking for libitm support... yes >> checking for libsanitizer support... yes >> checking for libvtv support... yes >> checking for libphobos support... yes >> checking for arm-linux-gnueabihf-gcc... gcc -march=armv7-a >> -mtune=cortex-a17 -mfpu=vfpv4-d16 -marm >> checking whether the C compiler works... yes >> checking for C compiler default output file name... a.out >> checking for suffix of executables... >> checking whether we are cross compiling... no >> checking for suffix of object files... o >> checking whether we are using the GNU C compiler... yes >> checking whether gcc -march=armv7-a -mtune=cortex-a17 -mfpu=vfpv4-d16 >> -marm accepts -g... yes >> checking for gcc -march=armv7-a -mtune=cortex-a17 -mfpu=vfpv4-d16 -marm >> option to accept ISO C89... none needed >> checking for gcc -march=armv7-a -mtune=cortex-a17 -mfpu=vfpv4-d16 -marm >> option to accept ISO C99... none needed >> checking whether we are using the GNU C++ compiler... yes >> checking whether g++ -march=armv7-a -mtune=cortex-a17 -mfpu=vfpv4-d16 >> -marm accepts -g... yes >> checking whether g++ accepts -static-libstdc++ -static-libgcc... yes >> checking for arm-linux-gnueabihf-gnatbind... arm-linux-gnueabihf-gnatbind >> checking for arm-linux-gnueabihf-gnatmake... arm-linux-gnueabihf-gnatmake >> checking whether compiler driver understands Ada... yes >> checking for arm-linux-gnueabihf-gdc... no >> checking for gdc... no >> checking whether the D compiler works... no >> checking how to compare bootstrapped objects... cmp --ignore-initial=16 >> $$f1 $$f2 >> checking for objdir... .libs >> checking for the correct version of gmp.h... yes >> checking for the correct version of mpfr.h... yes >> checking for the correct version of mpc.h... yes >> checking for the correct version of the gmp/mpfr/mpc libraries... yes >> checking for isl 0.15 or later... no >> required isl version is 0.15 or later >> The following languages will be built: c,ada,c++,fortran,lto >> *** This configuration is not supported in the following subdirectories: >> gotools target-libphobos target-zlib target-libgo target-libffi >> target-libobjc target-liboffloadmic >> (Any other directories should still work fine.) >> checking for default BUILD_CONFIG... bootstrap-debug >> checking for --enable-vtable-verify... no >> checking for bison... no >> checking for byacc... no >> checking for yacc... no >> checking for bison... no >> checking for gm4... no >> checking for gnum4... no >> checking for m4... m4 >> checking for flex... no >> checking for lex... no >> checking for flex... no >> checking for makeinfo... no >> /opt/bw/build/gcc-12.1.0/missing: 81: /opt/bw/build/gcc-12.1.0/missing: >> makeinfo: not found >> checking for expect... no >> checking for runtest... no >> checking for ar... (cached) /usr/bin/ar >> checking for arm-linux-gnueabihf-ar... (cached) /usr/bin/ar >> checking for as... (cached) /usr/bin/as >> checking for arm-linux-gnueabihf-as... (cached) /usr/bin/as >> checking for arm-linux-gnueabihf-dlltool... no >> checking for dlltool... no >> checking for arm-linux-gnueabihf-dsymutil... no >> checking for dsymutil... no >> checking for arm-linux-gnueabihf-ld... arm-linux-gnueabihf-ld >> checking for arm-linux-gnueabihf-lipo... no >> checking for lipo... no >> checking for nm... (cached) /usr/bin/nm -p >> checking for arm-linux-gnueabihf-nm... (cached) /usr/bin/nm -p >> checking for ranlib... (cached) /usr/bin/ranlib >> checking for arm-linux-gnueabihf-ranlib... (cached) /usr/bin/ranlib >> checking for arm-linux-gnueabihf-strip... arm-linux-gnueabihf-strip >> checking for arm-linux-gnueabihf-windres... no >> checking for windres... no >> checking for arm-linux-gnueabihf-windmc... no >> checking for windmc... no >> checking for arm-linux-gnueabihf-objcopy... arm-linux-gnueabihf-objcopy >> checking for arm-linux-gnueabihf-objdump... arm-linux-gnueabihf-objdump >> checking for arm-linux-gnueabihf-otool... no >> checking for otool... no >> checking for arm-linux-gnueabihf-readelf... arm-linux-gnueabihf-readelf >> checking for arm-linux-gnueabihf-cc... no >> checking for cc... cc >> checking for arm-linux-gnueabihf-c++... no >> checking for c++... c++ >> checking for arm-linux-gnueabihf-gcc... arm-linux-gnueabihf-gcc >> checking for arm-linux-gnueabihf-gfortran... no >> checking for gfortran... no >> checking for arm-linux-gnueabihf-gccgo... no >> checking for gccgo... no >> checking for arm-linux-gnueabihf-gdc... no >> checking for gdc... no >> checking for ar... no >> checking for arm-linux-gnueabihf-ar... arm-linux-gnueabihf-ar >> checking for as... no >> checking for arm-linux-gnueabihf-as... arm-linux-gnueabihf-as >> checking for dlltool... no >> checking for arm-linux-gnueabihf-dlltool... no >> checking for dlltool... no >> checking for dsymutil... no >> checking for arm-linux-gnueabihf-dsymutil... no >> checking for dsymutil... no >> checking for ld... no >> checking for arm-linux-gnueabihf-ld... arm-linux-gnueabihf-ld >> checking for lipo... no >> checking for arm-linux-gnueabihf-lipo... no >> checking for lipo... no >> checking for nm... no >> checking for arm-linux-gnueabihf-nm... arm-linux-gnueabihf-nm >> checking for objcopy... no >> checking for arm-linux-gnueabihf-objcopy... arm-linux-gnueabihf-objcopy >> checking for objdump... no >> checking for arm-linux-gnueabihf-objdump... arm-linux-gnueabihf-objdump >> checking for otool... no >> checking for arm-linux-gnueabihf-otool... no >> checking for otool... no >> checking for ranlib... no >> checking for arm-linux-gnueabihf-ranlib... arm-linux-gnueabihf-ranlib >> checking for readelf... no >> checking for arm-linux-gnueabihf-readelf... arm-linux-gnueabihf-readelf >> checking for strip... no >> checking for arm-linux-gnueabihf-strip... arm-linux-gnueabihf-strip >> checking for windres... no >> checking for arm-linux-gnueabihf-windres... no >> checking for windres... no >> checking for windmc... no >> checking for arm-linux-gnueabihf-windmc... no >> checking for windmc... no >> checking where to find the target ar... host tool >> checking where to find the target as... host tool >> checking where to find the target cc... just compiled >> checking where to find the target c++... just compiled >> checking where to find the target c++ for libstdc++... just compiled >> checking where to find the target dlltool... host tool >> checking where to find the target dsymutil... host tool >> checking where to find the target gcc... just compiled >> checking where to find the target gfortran... just compiled >> checking where to find the target gccgo... host tool >> checking where to find the target gdc... host tool >> checking where to find the target ld... host tool >> checking where to find the target lipo... host tool >> checking where to find the target nm... host tool >> checking where to find the target objcopy... host tool >> checking where to find the target objdump... host tool >> checking where to find the target otool... host tool >> checking where to find the target ranlib... host tool >> checking where to find the target readelf... host tool >> checking where to find the target strip... host tool >> checking where to find the target windres... host tool >> checking where to find the target windmc... host tool >> checking whether to enable maintainer-specific portions of Makefiles... no >> configure: creating ./config.status >> config.status: creating Makefile >> io$ >> >> Really I have tried with and without the triplet arm-linux-gnueabihf and >> eventually I see the same error : >> >> >> . >> . >> . >> /opt/bw/build/gcc-12.1.0_debian_10_armv7l_imed.003/./gcc/xgcc >> -B/opt/bw/build/gcc-12.1.0_debian_10_armv7l_imed.003/./gcc/ >> -B/opt/gcc/imed/gcc12/arm-linux-gnueabihf/bin/ >> -B/opt/gcc/imed/gcc12/arm-linux-gnueabihf/lib/ -isystem >> /opt/gcc/imed/gcc12/arm-linux-gnueabihf/include -isystem >> /opt/gcc/imed/gcc12/arm-linux-gnueabihf/sys-include -fno-checking -g >> -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings >> -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes >> -Wold-style-definition -isystem ./include -fPIC -fno-inline -g >> -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -fno-inline >> -I. -I. -I../.././gcc -I../../../gcc-12.1.0/libgcc >> -I../../../gcc-12.1.0/libgcc/. -I../../../gcc-12.1.0/libgcc/../gcc >> -I../../../gcc-12.1.0/libgcc/../include -DHAVE_CC_TLS -o _negdi2.o >> -MT _negdi2.o -MD -MP -MF _negdi2.dep -DL_negdi2 -c >> ../../../gcc-12.1.0/libgcc/libgcc2.c -fvisibility=hidden -DHIDE_EXPORTS >> /opt/bw/build/gcc-12.1.0_debian_10_armv7l_imed.003/./gcc/xgcc >> -B/opt/bw/build/gcc-12.1.0_debian_10_armv7l_imed.003/./gcc/ >> -B/opt/gcc/imed/gcc12/arm-linux-gnueabihf/bin/ >> -B/opt/gcc/imed/gcc12/arm-linux-gnueabihf/lib/ -isystem >> /opt/gcc/imed/gcc12/arm-linux-gnueabihf/include -isystem >> /opt/gcc/imed/gcc12/arm-linux-gnueabihf/sys-include -fno-checking -g >> -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings >> -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes >> -Wold-style-definition -isystem ./include -fPIC -fno-inline -g >> -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -fno-inline >> -I. -I. -I../.././gcc -I../../../gcc-12.1.0/libgcc >> -I../../../gcc-12.1.0/libgcc/. -I../../../gcc-12.1.0/libgcc/../gcc >> -I../../../gcc-12.1.0/libgcc/../include -DHAVE_CC_TLS -o _cmpdi2.o >> -MT _cmpdi2.o -MD -MP -MF _cmpdi2.dep -DL_cmpdi2 -c >> ../../../gcc-12.1.0/libgcc/libgcc2.c -fvisibility=hidden -DHIDE_EXPORTS >> In file included from ../../../gcc-12.1.0/libgcc/../gcc/tsystem.h:87, >> from ../../../gcc-12.1.0/libgcc/libgcc2.c:27: >> /usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: No >> such file or directory >> 27 | #include <bits/libc-header-start.h> >> | ^~~~~~~~~~~~~~~~~~~~~~~~~~ >> compilation terminated. >> make[3]: *** [Makefile:501: _muldi3.o] Error 1 >> make[3]: *** Waiting for unfinished jobs.... >> In file included from ../../../gcc-12.1.0/libgcc/../gcc/tsystem.h:87, >> from ../../../gcc-12.1.0/libgcc/libgcc2.c:27: >> /usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: No >> such file or directory >> 27 | #include <bits/libc-header-start.h> >> | ^~~~~~~~~~~~~~~~~~~~~~~~~~ >> compilation terminated. >> In file included from ../../../gcc-12.1.0/libgcc/../gcc/tsystem.h:87, >> from ../../../gcc-12.1.0/libgcc/libgcc2.c:27: >> /usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: No >> such file or directory >> 27 | #include <bits/libc-header-start.h> >> | ^~~~~~~~~~~~~~~~~~~~~~~~~~ >> compilation terminated. >> make[3]: *** [Makefile:501: _negdi2.o] Error 1 >> make[3]: *** [Makefile:501: _cmpdi2.o] Error 1 >> make[3]: Leaving directory >> >> '/opt/bw/build/gcc-12.1.0_debian_10_armv7l_imed.003/arm-linux-gnueabihf/libgcc' >> make[2]: *** [Makefile:24186: all-stage1-target-libgcc] Error 2 >> make[2]: Leaving directory >> '/opt/bw/build/gcc-12.1.0_debian_10_armv7l_imed.003' >> make[1]: *** [Makefile:29980: stage1-bubble] Error 2 >> make[1]: Leaving directory >> '/opt/bw/build/gcc-12.1.0_debian_10_armv7l_imed.003' >> make: *** [Makefile:30381: bootstrap] Error 2 >> Command exited with non-zero status 2 >> $ >> >> Even after looking at : >> >> https://gcc.gnu.org/pipermail/gcc-help/2021-June/140387.html >> >> I don't quite see what prerequisite is needed here. >> >> >> -- >> Dennis Clarke >> RISC-V/SPARC/PPC/ARM/CISC >> UNIX and Linux spoken >> GreyBeard and suspenders optional >> >