public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* bootstrap fails on Debian ppc64 with fatal error: bits/libc-header-start.h: No such file or directory
@ 2022-05-13 15:11 Dennis Clarke
  2022-05-13 15:24 ` Xi Ruoyao
  2022-05-13 16:15 ` Dennis Clarke
  0 siblings, 2 replies; 14+ messages in thread
From: Dennis Clarke @ 2022-05-13 15:11 UTC (permalink / raw)
  To: gcc-help


 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 <bits/libc-header-start.h>
       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
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

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2022-05-14 16:42 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-13 15:11 bootstrap fails on Debian ppc64 with fatal error: bits/libc-header-start.h: No such file or directory Dennis Clarke
2022-05-13 15:24 ` Xi Ruoyao
2022-05-13 15:31   ` Xi Ruoyao
2022-05-13 16:15 ` Dennis Clarke
2022-05-13 16:20   ` Xi Ruoyao
2022-05-13 16:43     ` Jonathan Wakely
2022-05-13 20:54       ` Dennis Clarke
2022-05-13 21:03         ` Jonathan Wakely
2022-05-13 22:06           ` Dennis Clarke
2022-05-13 22:49             ` Jonathan Wakely
2022-05-13 23:21               ` Dennis Clarke
2022-05-14  7:06                 ` Jonathan Wakely
2022-05-14 16:42                   ` Dennis Clarke
2022-05-13 17:29     ` Segher Boessenkool

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).