From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.oetec.com (mail.oetec.com [108.160.241.186]) by sourceware.org (Postfix) with ESMTPS id C57F9396E849 for ; Fri, 13 May 2022 15:11:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C57F9396E849 X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_SHORT, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-oetec-MailScanner-From: dclarke@blastwave.org X-oetec-MailScanner-SpamCheck: not spam, SpamAssassin (not cached, score=-3.109, required 6, autolearn=not spam, ALL_TRUSTED -1.00, BAYES_00 -1.90, DKIM_SIGNED 0.10, DKIM_VALID -0.10, DKIM_VALID_AU -0.10, DKIM_VALID_EF -0.10, T_SCC_BODY_TEXT_LINE -0.01, URIBL_BLOCKED 0.00) X-oetec-MailScanner: Found to be clean X-oetec-MailScanner-ID: 24DFBjGJ016152 X-oetec-MailScanner-Information: Please contact oetec for more information Received: from [10.14.0.4] (static-198-54-132-37.cust.tzulo.com [198.54.132.37]) (authenticated bits=0) by mail.oetec.com (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 24DFBjGJ016152 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 13 May 2022 11:11:47 -0400 Message-ID: <7f1f1a2f-6c9f-d3ad-8aa1-499c87eb8caf@blastwave.org> Date: Fri, 13 May 2022 11:11:45 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 To: gcc-help Content-Language: en-US From: Dennis Clarke Subject: bootstrap fails on Debian ppc64 with fatal error: bits/libc-header-start.h: No such file or directory Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-help@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-help mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 May 2022 15:11:54 -0000 From the desk of here-we-go-again: This looks similar to the issue I saw with armv7l but just different enough where searching for configure options is getting mysterious at best. The header needed is : /usr/include/powerpc64-linux-gnu/bits/libc-header-start.h So there I see a triplet sort of name "powerpc64-linux-gnu". I go back and read : https://gcc.gnu.org/pipermail/gcc-help/2022-May/141529.html The gcc that I have within Debian ppc64 is off the shelf : enceladus$ gcc --version gcc (Debian 11.3.0-1) 11.3.0 Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. enceladus$ gcc -print-multiarch powerpc64-linux-gnu enceladus$ However it is not at all clear what that tells me. So here I go looking at the option salad tossed into the Debian gcc : enceladus$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/powerpc64-linux-gnu/11/lto-wrapper Target: powerpc64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 11.3.0-1' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=powerpc64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --with-libphobos-druntime-only=yes --enable-objc-gc=auto --enable-secureplt --disable-softfloat --enable-targets=powerpc64-linux,powerpc-linux --enable-multiarch --disable-werror --with-long-double-128 --enable-multilib --enable-checking=release --build=powerpc64-linux-gnu --host=powerpc64-linux-gnu --target=powerpc64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=16 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.3.0 (Debian 11.3.0-1) enceladus$ OKay so I can glean a bit of information from that collossal list : --disable-libquadmath --disable-libquadmath-support --enable-default-pie --with-system-zlib --disable-softfloat --enable-targets=powerpc64-linux,powerpc-linux --enable-multiarch --disable-werror --with-long-double-128 --enable-multilib --build=powerpc64-linux-gnu --host=powerpc64-linux-gnu --target=powerpc64-linux-gnu Well I know the hardware will do 128bit floating point but it is the fun and bizarre IBM 16 byte format made up of two 8 byte floats mashed together with magic. Fine. It works. I know libquadmath is only for AMD64 so fine that needs not be said. I don't see the value of throwing away softfloat becuase who knows? Maybe I want to emulate floating point for fun? Given that the 16 byte ( 128bit ) stuff is emulated anyways on everything other than mainframes and IBM Power9 ( sell a kidney to get yours today ) I want to keep softfloat and long-double-128 stuff. Who knows, maybe someday we get a RISC-V chip with 128-bit hardware. For now anything can emulate flaoting point so I'll keep that. Thats gets me to : enceladus$ pwd /opt/bw/build/gcc-12.1.0_debian_ppc64.003 enceladus$ LC_TIME=C date -u Fri May 13 14:35:36 UTC 2022 enceladus$ enceladus$ ../gcc-12.1.0/configure --prefix=/opt/gcc/imed/gcc12 \ > --build=powerpc64-linux-gnu \ > --host=powerpc64-linux-gnu \ > --target=powerpc64-linux-gnu \ > --enable-multilib --enable-multiarch \ > --disable-nls --enable-threads=posix --enable-shared \ > --enable-bootstrap --enable-languages=c,c++,fortran checking build system type... powerpc64-unknown-linux-gnu checking host system type... powerpc64-unknown-linux-gnu checking target system type... powerpc64-unknown-linux-gnu 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... /usr/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... no checking for libphobos support... yes checking for powerpc64-linux-gnu-gcc... powerpc64-linux-gnu-gcc 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 powerpc64-linux-gnu-gcc accepts -g... yes checking for powerpc64-linux-gnu-gcc option to accept ISO C89... none needed checking for powerpc64-linux-gnu-gcc option to accept ISO C99... none needed checking for powerpc64-linux-gnu-g++... powerpc64-linux-gnu-g++ checking whether we are using the GNU C++ compiler... yes checking whether powerpc64-linux-gnu-g++ accepts -g... yes checking whether g++ accepts -static-libstdc++ -static-libgcc... yes checking for powerpc64-linux-gnu-gnatbind... no checking for gnatbind... no checking for powerpc64-linux-gnu-gnatmake... no checking for gnatmake... no checking whether compiler driver understands Ada... no checking for powerpc64-linux-gnu-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 *** This configuration is not supported in the following subdirectories: target-libvtv gnattools gotools target-libada target-libphobos target-zlib target-libgo target-libffi target-libobjc target-lib offloadmic (Any other directories should still work fine.) checking for default BUILD_CONFIG... bootstrap-debug checking for --enable-vtable-verify... no checking for bison... bison -y checking for bison... bison checking for gm4... no checking for gnum4... no checking for m4... m4 checking for flex... flex checking for flex... flex checking for makeinfo... no /opt/bw/build/gcc-12.1.0/missing: 81: makeinfo: not found checking for expect... no checking for runtest... no checking for powerpc64-linux-gnu-ar... powerpc64-linux-gnu-ar checking for powerpc64-linux-gnu-as... powerpc64-linux-gnu-as checking for powerpc64-linux-gnu-dlltool... no checking for dlltool... no checking for powerpc64-linux-gnu-dsymutil... no checking for dsymutil... no checking for powerpc64-linux-gnu-ld... powerpc64-linux-gnu-ld checking for powerpc64-linux-gnu-lipo... no checking for lipo... no checking for powerpc64-linux-gnu-nm... powerpc64-linux-gnu-nm checking for powerpc64-linux-gnu-ranlib... powerpc64-linux-gnu-ranlib checking for powerpc64-linux-gnu-strip... powerpc64-linux-gnu-strip checking for powerpc64-linux-gnu-windres... no checking for windres... no checking for powerpc64-linux-gnu-windmc... no checking for windmc... no checking for powerpc64-linux-gnu-objcopy... powerpc64-linux-gnu-objcopy checking for powerpc64-linux-gnu-objdump... powerpc64-linux-gnu-objdump checking for powerpc64-linux-gnu-otool... no checking for otool... no checking for powerpc64-linux-gnu-readelf... powerpc64-linux-gnu-readelf checking for powerpc64-linux-gnu-cc... no checking for cc... cc checking for powerpc64-linux-gnu-c++... no checking for c++... c++ checking for powerpc64-linux-gnu-gcc... powerpc64-linux-gnu-gcc checking for powerpc64-linux-gnu-gfortran... no checking for gfortran... no checking for powerpc64-linux-gnu-gccgo... no checking for gccgo... no checking for powerpc64-linux-gnu-gdc... no checking for gdc... no checking for ar... no checking for powerpc64-linux-gnu-ar... powerpc64-linux-gnu-ar checking for as... no checking for powerpc64-linux-gnu-as... powerpc64-linux-gnu-as checking for dlltool... no checking for powerpc64-linux-gnu-dlltool... no checking for dlltool... no checking for dsymutil... no checking for powerpc64-linux-gnu-dsymutil... no checking for dsymutil... no checking for ld... no checking for powerpc64-linux-gnu-ld... powerpc64-linux-gnu-ld checking for lipo... no checking for powerpc64-linux-gnu-lipo... no checking for lipo... no checking for nm... no checking for powerpc64-linux-gnu-nm... powerpc64-linux-gnu-nm checking for objcopy... no checking for powerpc64-linux-gnu-objcopy... powerpc64-linux-gnu-objcopy checking for objdump... no checking for powerpc64-linux-gnu-objdump... powerpc64-linux-gnu-objdump checking for otool... no checking for powerpc64-linux-gnu-otool... no checking for otool... no checking for ranlib... no checking for powerpc64-linux-gnu-ranlib... powerpc64-linux-gnu-ranlib checking for readelf... no checking for powerpc64-linux-gnu-readelf... powerpc64-linux-gnu-readelf checking for strip... no checking for powerpc64-linux-gnu-strip... powerpc64-linux-gnu-strip checking for windres... no checking for powerpc64-linux-gnu-windres... no checking for windres... no checking for windmc... no checking for powerpc64-linux-gnu-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 enceladus$ The compile fails : . . . /opt/bw/build/gcc-12.1.0_debian_ppc64.003/./gcc/xgcc -B/opt/bw/build/gcc-12.1.0_debian_ppc64.003/./gcc/ -B/opt/gcc/imed/gcc12/powerpc64-linux-gnu/bin/ -B/opt/gcc/imed/gcc12/powerpc64-linux-gnu/lib/ -isystem /opt/gcc/imed/gcc12/powerpc64-linux-gnu/include -isystem /opt/gcc/imed/gcc12/powerpc64-linux-gnu/sys-include -fno-checking -g -O2 -m32 -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 -mlong-double-128 -mno-minimal-toc -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -mlong-double-128 -mno-minimal-toc -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 generic-morestack-thread.o -MT generic-morestack-thread.o -MD -MP -MF generic-morestack-thread.dep -c ../../../../gcc-12.1.0/libgcc/generic-morestack-thread.c -fvisibility=hidden -DHIDE_EXPORTS In file included from ../../../../gcc-12.1.0/libgcc/../gcc/tsystem.h:87, from ../../../../gcc-12.1.0/libgcc/generic-morestack-thread.c:27: /usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: No such file or directory 27 | #include | ^~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[5]: *** [../../../../gcc-12.1.0/libgcc/shared-object.mk:14: generic-morestack-thread.o] Error 1 make[5]: Leaving directory '/opt/bw/build/gcc-12.1.0_debian_ppc64.003/powerpc64-linux-gnu/32/libgcc' make[4]: *** [Makefile:1211: multi-do] Error 1 make[4]: Leaving directory '/opt/bw/build/gcc-12.1.0_debian_ppc64.003/powerpc64-linux-gnu/libgcc' make[3]: *** [Makefile:127: all-multi] Error 2 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/opt/bw/build/gcc-12.1.0_debian_ppc64.003/powerpc64-linux-gnu/libgcc' make[2]: *** [Makefile:20742: all-stage1-target-libgcc] Error 2 make[2]: Leaving directory '/opt/bw/build/gcc-12.1.0_debian_ppc64.003' make[1]: *** [Makefile:26148: stage1-bubble] Error 2 make[1]: Leaving directory '/opt/bw/build/gcc-12.1.0_debian_ppc64.003' make: *** [Makefile:26501: bootstrap] Error 2 enceladus$ However I don't see why : enceladus$ enceladus$ /opt/bw/build/gcc-12.1.0_debian_ppc64.003/./gcc/xgcc -print-multiarch powerpc64-linux-gnu enceladus$ There has to be some other configure option in the salad to mix in. Would love to hear thoughts. -- Dennis Clarke RISC-V/SPARC/PPC/ARM/CISC UNIX and Linux spoken GreyBeard and suspenders optional