All:
Is there a method to indicate to the bootstrap process that there
are includes ( such as sys/cdefs.h ) in a slightly non-standard
location? I have a Debian system on arm7 and for reasons yet obscure
there are no symlinks in /usr/include/sys that point to
/usr/include/arm-linux-gnueabihf/sys/ which is what I would expect for
the libc6-dev
package on Debian. Certainly such symlinks do exist on x86_64 thus :
root@nix:~# ls -lapb /usr/include/sys/cdefs.h
lrwxrwxrwx 1 root root 31 Dec 5 18:50 /usr/include/sys/cdefs.h ->
../x86_64-linux-gnu/sys/cdefs.h
However the arm7 pkgs do not exist for such a thing :
arm7$ uname -a
Linux arm7 4.4.132+ #1 SMP Tue Oct 23 18:03:49 CST 2018 armv7l GNU/Linux
arm7$ ls /usr/include/sys/
capability.h
arm7$
arm7$ ls -lapb /usr/include/arm-linux-gnueabihf/sys/cdefs.h
-rw-r--r-- 1 root root 15651 Jan 14 2018
/usr/include/arm-linux-gnueabihf/sys/cdefs.h
arm7$
Great.
Doing something like CPPFLAGS=-I/usr/local/include
-I/usr/include/arm-linux-gnueabihf doesn't work and the process blows up
fast like so :
/bin/bash ./libtool --tag=CC --mode=compile /usr/bin/gcc
-DHAVE_CONFIG_H -I. -I../../gcc-8.2.0/gmp -D__GMP_WITHIN_GMP
-I/opt/bw/include -I/usr/include/arm-linux-gnueabihf/sys -DNO_ASM -g -c
-o invalid.lo ../../gcc-8.2.0/gmp/invalid.c
libtool: compile: /usr/bin/gcc -DHAVE_CONFIG_H -I.
-I../../gcc-8.2.0/gmp -D__GMP_WITHIN_GMP -I/opt/bw/include
-I/usr/include/arm-linux-gnueabihf/sys -DNO_ASM -g -c
../../gcc-8.2.0/gmp/invalid.c -o invalid.o
In file included from /usr/include/arm-linux-gnueabihf/sys/signal.h:1:0,
from /usr/include/arm-linux-gnueabihf/sys/signal.h:1,
.
.
.
from ../../gcc-8.2.0/gmp/invalid.c:37:
/usr/include/arm-linux-gnueabihf/sys/signal.h:1:20: error: #include
nested too deeply
#include <signal.h>
^
../../gcc-8.2.0/gmp/invalid.c: In function '__gmp_invalid_operation':
../../gcc-8.2.0/gmp/invalid.c:81:3: warning: implicit declaration of
function 'raise' [-Wimplicit-function-declaration]
raise (SIGFPE);
^~~~~
../../gcc-8.2.0/gmp/invalid.c:81:10: error: 'SIGFPE' undeclared (first
use in this function)
raise (SIGFPE);
^~~~~~
../../gcc-8.2.0/gmp/invalid.c:81:10: note: each undeclared identifier is
reported only once for each function it appears in
gmake[5]: *** [Makefile:884: invalid.lo] Error 1
gmake[5]: Leaving directory
'/opt/bw/build/gcc-8.2.0_4.4.132+_armv7l.002/gmp'
gmake[4]: *** [Makefile:956: all-recursive] Error 1
gmake[4]: Leaving directory
'/opt/bw/build/gcc-8.2.0_4.4.132+_armv7l.002/gmp'
gmake[3]: *** [Makefile:775: all] Error 2
gmake[3]: Leaving directory
'/opt/bw/build/gcc-8.2.0_4.4.132+_armv7l.002/gmp'
gmake[2]: *** [Makefile:5662: all-stage1-gmp] Error 2
gmake[2]: Leaving directory '/opt/bw/build/gcc-8.2.0_4.4.132+_armv7l.002'
gmake[1]: *** [Makefile:27678: stage1-bubble] Error 2
gmake[1]: Leaving directory '/opt/bw/build/gcc-8.2.0_4.4.132+_armv7l.002'
gmake: *** [Makefile:28063: bootstrap] Error 2
Command exited with non-zero status 2
So that is annoying.
If I do nothing special at all then I get sys/cdefs.h not being found :
/opt/bw/build/gcc-8.2.0_4.4.132+_armv7l.001/./gcc/xgcc
-B/opt/bw/build/gcc-8.2.0_4.4.132+_armv7l.001/./gcc/
-B/opt/intermediate/gcc8/armv7l-unknown-linux-gnueabihf/bin/
-B/opt/intermediate/gcc8/armv7l-unknown-linux-gnueabihf/lib/ -isystem
/opt/intermediate/gcc8/armv7l-unknown-linux-gnueabihf/include -isystem
/opt/intermediate/gcc8/armv7l-unknown-linux-gnueabihf/sys-include -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-8.2.0/libgcc
-I../../../gcc-8.2.0/libgcc/. -I../../../gcc-8.2.0/libgcc/../gcc
-I../../../gcc-8.2.0/libgcc/../include -DHAVE_CC_TLS -o _muldi3.o -MT
_muldi3.o -MD -MP -MF _muldi3.dep -DL_muldi3 -c
../../../gcc-8.2.0/libgcc/libgcc2.c -fvisibility=hidden -DHIDE_EXPORTS
In file included from /usr/include/stdio.h:27,
from ../../../gcc-8.2.0/libgcc/../gcc/tsystem.h:87,
from ../../../gcc-8.2.0/libgcc/libgcc2.c:27:
/usr/include/features.h:364:12: fatal error: sys/cdefs.h: No such file
or directory
# include <sys/cdefs.h>
^~~~~~~~~~~~~
compilation terminated.
gmake[3]: *** [Makefile:494: _muldi3.o] Error 1
gmake[3]: Leaving directory
'/opt/bw/build/gcc-8.2.0_4.4.132+_armv7l.001/armv7l-unknown-linux-gnueabihf/libgcc'
gmake[2]: *** [Makefile:21746: all-stage1-target-libgcc] Error 2
gmake[2]: Leaving directory '/opt/bw/build/gcc-8.2.0_4.4.132+_armv7l.001'
gmake[1]: *** [Makefile:27678: stage1-bubble] Error 2
gmake[1]: Leaving directory '/opt/bw/build/gcc-8.2.0_4.4.132+_armv7l.001'
gmake: *** [Makefile:28063: bootstrap] Error 2
Command exited with non-zero status 2
So then ... manually make the symlinks one at a time and watch for
failures? Curious if anyone else has seen this sort of thing.
Dennis