My cross compiler isn't able to compile testglue.c when running libstdc++ regression test.
Terry Guo
terguo01@gmail.com
Sun Aug 7 16:15:00 GMT 2011
Hi,
I buit a cross compiler for arm-none-eabi on x86 Ubuntu. The "make
check" for GCC works fine and the testglue.c can be compiled. But when
run "make check" for libstdc++, things go wrong. My gcc isn't able to
compile testglue.c. I use newlib as c library. The error message is:
Executing on host:
/home/build/work/jenkins-daily-build/build-linux/gcc-final/gcc/xgcc
-B/home/build/work/jenkins-daily-build/build-linux/gcc-final/gcc/ -w
-fexceptions -c -mthumb -mcpu=cortex-m0 -O2 -o
/home/build/work/jenkins-daily-build/build-linux/gcc-final/arm-none-eabi/libstdc++-v3/testsuite/testglue.o
/usr/share/dejagnu/testglue.c (timeout = 300)
/usr/share/dejagnu/testglue.c:1:19: fatal error: stdio.h: No such file
or directory^M
compilation terminated.^M
compiler exited with status 1
output is:
/usr/share/dejagnu/testglue.c:1:19: fatal error: stdio.h: No such file
or directory^M
compilation terminated.^M
My configuration is:
Configured with:
/home/build/work/jenkins-daily-build/src/gcc/configure
--build=i686-linux-gnu --host=i686-linux-gnu --target=arm-none-eabi
--enable-extra-multilibs --enable-languages=c,c++ --enable-lto
--enable-threads --enable-plugin --disable-decimal-float
--disable-libffi --disable-libgomp --disable-libmudflap
--disable-libquadmath --disable-libssp --disable-libstdcxx-pch
--disable-nls --disable-shared --with-gnu-as --with-gnu-ld
--with-newlib --prefix=/home/build/work/jenkins-daily-build/install-linux
--with-headers=yes
--with-sysroot=/home/build/work/jenkins-daily-build/install-linux/arm-none-eabi
--with-gmp=/home/build/work/jenkins-daily-build/build-linux/host-libs/usr
--with-mpfr=/home/build/work/jenkins-daily-build/build-linux/host-libs/usr
--with-mpc=/home/build/work/jenkins-daily-build/build-linux/host-libs/usr
--with-ppl=/home/build/work/jenkins-daily-build/build-linux/host-libs/usr
--with-cloog=/home/build/work/jenkins-daily-build/build-linux/host-libs/usr
--with-libelf=/home/build/work/jenkins-daily-build/build-linux/host-libs/usr
--with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic
-lm'
From the message, it seems that the xgcc cannot find the header files
path. But in fact, the header files are in path specified by
--with-sysroot. So if GCC would get header files information from
configuration, what's the right way to specify the configuration
arguments?
I also noticed that gcc/testsuite/gcc/site.exp has a line "set
TEST_GCC_EXEC_PREFIX
"/home/build/work/jenkins-daily-build/install-linux/lib/gcc/". If I
put this line into libstdc++-v3/testsuite/site.exp, the testglue.c can
be compiled and the libstdc++ regression test works fine. I know the
"GCC_EXEC_PREFIX" is used in an unusual way in finding the directories
to search for header files. So what's the reason we don't define it in
libstdc++-v3/testsuite/site.exp just like what GCC does?
Finally I also tried to pass arguments like "-isystem...." to xgcc
through "wrap_compile_flags" in Dejagnu board description file and
failed.
This issue really makes me crazy. Could anybody please help me out of
it. Thanks very much in advance.
Best regards,
Terry
More information about the Gcc-help
mailing list