Unable to build libgcc for target x86_64-w64-mingw32, C preprocessor /lib/cpp fails sanity check

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I'm trying to build a cross compiler for UEFI, and having difficulties
building libgcc after having built the compilers themselves. I've already
built a cross compiler and libgcc (with and without red-zone) for
freestanding x86_64-elf in the same machine, so not sure what the issue is.

The machine is an Arch vm, with the following packages installed through
pacman:
gcc-8.2.1+20180831-1
bison-3.0.5-1
flex-2.6.4-1
gmp-6.1.2-1
libmpc-1.1.0-1
mpfr-4.0.1-1
texinfo-6.5-1
>From the AUR, I got:
osl-0.9.2-2
isl-0.20-4
cloog-0.20.0-1

I'm using binutils 2.31 (compiled separately, binutils for
target x86_64-w64-mingw32 were built and installed fine to the same prefix
I'm trying to install my cross compiler to). For gcc, I'm using the branch
gcc-8-branch at revision 264489. I tried to use the 8.2.0 release, but I
ran into an issue with isl 0.20 having moved some headers around, causing
the build to fail. That was fixed in the branch with gcc 8.2.1.

The source for gcc was downloaded to ~/src/gcc. After that, I did:
export PREFIX="$HOME/opt/cross"
export TARGET=x86_64-w64-mingw32
export PATH="$PREFIX/bin:$PATH"
mkdir ~/src/gcc-build-$TARGET
cd ~/src/gcc-build-$TARGET
../gcc/configure --target=$TARGET --prefix="$PREFIX" --disable-nls
--enable-languages=c,c++ --without-headers
make all-gcc

This far, everything worked ok. Then I did:
make all-target-libgcc

And that's where I hit a wall. Make fails with the last few lines of output
being:
checking how to run the C preprocessor... /lib/cpp
configure: error: in
`/home/os/src/gcc-build-x86_64-w64-mingw32/x86_64-w64-mingw32/libgcc':
configure: error: C preprocessor "/lib/cpp"fails sanity check
See `config.log' for more details.
make: *** [Makefile:12659: configure-target-libgcc] Error 1

I won't copy the whole contents of the config log (unless someone feels
they'd be useful) but where it starts having issues it shows (log is at
x86_64-w64-mingw32/libgcc/config.log):

///---***---///  <- Search for this if you want to skip the log

configure:3933: checking how to run the C preprocessor
configure:3964:  /home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/xgcc
-B/home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/
-L/home/os/opt/cross/x86_64-w64-mingw32/lib -L/home/os/opt/cross/mingw/lib
-isystem /home/os/opt/cross/x86_64-w64-mingw32/include -isystem
/home/os/opt/cross/mingw/include
-B/home/os/opt/cross/x86_64-w64-mingw32/bin/
-B/home/os/opt/cross/x86_64-w64-mingw32/lib/ -isystem
/home/os/opt/cross/x86_64-w64-mingw32/include -isystem
/home/os/opt/cross/x86_64-w64-mingw32/sys-include    -E  conftest.c
In file included from
/home/os/src/gcc-build-x86_64-w64-mingw32/gcc/include-fixed/syslimits.h:7,
                 from
/home/os/src/gcc-build-x86_64-w64-mingw32/gcc/include-fixed/limits.h:34,
                 from conftest.c:10:
/home/os/src/gcc-build-x86_64-w64-mingw32/gcc/include-fixed/limits.h:194:61:
error: no include path in which to search for limits.h
 #include_next <limits.h>  /* recurse down to the real one */
                                                             ^
configure:3964: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU C Runtime Library"
| #define PACKAGE_TARNAME "libgcc"
| #define PACKAGE_VERSION "1.0"
| #define PACKAGE_STRING "GNU C Runtime Library 1.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL "http://www.gnu.org/software/libgcc/";
| /* end confdefs.h.  */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
|      Syntax error
configure:3964:  /home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/xgcc
-B/home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/
-L/home/os/opt/cross/x86_64-w64-mingw32/lib -L/home/os/opt/cross/mingw/lib
-isystem /home/os/opt/cross/x86_64-w64-mingw32/include -isystem
/home/os/opt/cross/mingw/include
-B/home/os/opt/cross/x86_64-w64-mingw32/bin/
-B/home/os/opt/cross/x86_64-w64-mingw32/lib/ -isystem
/home/os/opt/cross/x86_64-w64-mingw32/include -isystem
/home/os/opt/cross/x86_64-w64-mingw32/sys-include    -E  conftest.c
In file included from
/home/os/src/gcc-build-x86_64-w64-mingw32/gcc/include-fixed/syslimits.h:7,
                 from
/home/os/src/gcc-build-x86_64-w64-mingw32/gcc/include-fixed/limits.h:34,
                 from conftest.c:10:
/home/os/src/gcc-build-x86_64-w64-mingw32/gcc/include-fixed/limits.h:194:61:
error: no include path in which to search for limits.h
 #include_next <limits.h>  /* recurse down to the real one */
                                                             ^
configure:3964: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU C Runtime Library"
| #define PACKAGE_TARNAME "libgcc"
| #define PACKAGE_VERSION "1.0"
| #define PACKAGE_STRING "GNU C Runtime Library 1.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL "http://www.gnu.org/software/libgcc/";
| /* end confdefs.h.  */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
|      Syntax error
configure:3964:  /home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/xgcc
-B/home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/
-L/home/os/opt/cross/x86_64-w64-mingw32/lib -L/home/os/opt/cross/mingw/lib
-isystem /home/os/opt/cross/x86_64-w64-mingw32/include -isystem
/home/os/opt/cross/mingw/include
-B/home/os/opt/cross/x86_64-w64-mingw32/bin/
-B/home/os/opt/cross/x86_64-w64-mingw32/lib/ -isystem
/home/os/opt/cross/x86_64-w64-mingw32/include -isystem
/home/os/opt/cross/x86_64-w64-mingw32/sys-include    -E -traditional-cpp
conftest.c
conftest.c:13:2: fatal error: assert.h: No such file or directory
 #endif
  ^~~~~
compilation terminated.
configure:3964: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU C Runtime Library"
| #define PACKAGE_TARNAME "libgcc"
| #define PACKAGE_VERSION "1.0"
| #define PACKAGE_STRING "GNU C Runtime Library 1.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL "http://www.gnu.org/software/libgcc/";
| /* end confdefs.h.  */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
|      Syntax error
configure:3964:  /home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/xgcc
-B/home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/
-L/home/os/opt/cross/x86_64-w64-mingw32/lib -L/home/os/opt/cross/mingw/lib
-isystem /home/os/opt/cross/x86_64-w64-mingw32/include -isystem
/home/os/opt/cross/mingw/include
-B/home/os/opt/cross/x86_64-w64-mingw32/bin/
-B/home/os/opt/cross/x86_64-w64-mingw32/lib/ -isystem
/home/os/opt/cross/x86_64-w64-mingw32/include -isystem
/home/os/opt/cross/x86_64-w64-mingw32/sys-include    -E -traditional-cpp
conftest.c
conftest.c:13:2: fatal error: assert.h: No such file or directory
 #endif
  ^~~~~
compilation terminated.
configure:3964: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU C Runtime Library"
| #define PACKAGE_TARNAME "libgcc"
| #define PACKAGE_VERSION "1.0"
| #define PACKAGE_STRING "GNU C Runtime Library 1.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL "http://www.gnu.org/software/libgcc/";
| /* end confdefs.h.  */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
|      Syntax error
configure:3964: /lib/cpp  conftest.c
/home/os/src/gcc/libgcc/configure: line 1486: /lib/cpp: No such file or
directory
configure:3964: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU C Runtime Library"
| #define PACKAGE_TARNAME "libgcc"
| #define PACKAGE_VERSION "1.0"
| #define PACKAGE_STRING "GNU C Runtime Library 1.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL "http://www.gnu.org/software/libgcc/";
| /* end confdefs.h.  */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
|      Syntax error
configure:3964: /lib/cpp  conftest.c
/home/os/src/gcc/libgcc/configure: line 1486: /lib/cpp: No such file or
directory
configure:3964: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU C Runtime Library"
| #define PACKAGE_TARNAME "libgcc"
| #define PACKAGE_VERSION "1.0"
| #define PACKAGE_STRING "GNU C Runtime Library 1.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL "http://www.gnu.org/software/libgcc/";
| /* end confdefs.h.  */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
|      Syntax error
configure:4003: result: /lib/cpp
configure:4023: /lib/cpp  conftest.c
/home/os/src/gcc/libgcc/configure: line 1486: /lib/cpp: No such file or
directory
configure:4023: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU C Runtime Library"
| #define PACKAGE_TARNAME "libgcc"
| #define PACKAGE_VERSION "1.0"
| #define PACKAGE_STRING "GNU C Runtime Library 1.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL "http://www.gnu.org/software/libgcc/";
| /* end confdefs.h.  */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
|      Syntax error
configure:4023: /lib/cpp  conftest.c
/home/os/src/gcc/libgcc/configure: line 1486: /lib/cpp: No such file or
directory
configure:4023: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU C Runtime Library"
| #define PACKAGE_TARNAME "libgcc"
| #define PACKAGE_VERSION "1.0"
| #define PACKAGE_STRING "GNU C Runtime Library 1.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL "http://www.gnu.org/software/libgcc/";
| /* end confdefs.h.  */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
|      Syntax error
configure:4053: error: in
`/home/os/src/gcc-build-x86_64-w64-mingw32/x86_64-w64-mingw32/libgcc':
configure:4056: error: C preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details.

///---***---///

After these there are a few more sections in the log. Cache variables and
output variables. Included for completeness:

///---***---///

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-pc-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_env_CC_set=set
ac_cv_env_CC_value=' /home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/xgcc
-B/home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/
-L/home/os/opt/cross/x86_64-w64-mingw32/lib -L/home/os/opt/cross/mingw/lib
-isystem /home/os/opt/cross/x86_64-w64-mingw32/include -isystem
/home/os/opt/cross/mingw/include
-B/home/os/opt/cross/x86_64-w64-mingw32/bin/
-B/home/os/opt/cross/x86_64-w64-mingw32/lib/ -isystem
/home/os/opt/cross/x86_64-w64-mingw32/include -isystem
/home/os/opt/cross/x86_64-w64-mingw32/sys-include   '
ac_cv_env_CFLAGS_set=set
ac_cv_env_CFLAGS_value='-g -O2'
ac_cv_env_CPPFLAGS_set=set
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_LDFLAGS_set=set
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_build_alias_set=set
ac_cv_env_build_alias_value=x86_64-pc-linux-gnu
ac_cv_env_host_alias_set=set
ac_cv_env_host_alias_value=x86_64-w64-mingw32
ac_cv_env_target_alias_set=set
ac_cv_env_target_alias_value=x86_64-w64-mingw32
ac_cv_host=x86_64-w64-mingw32
ac_cv_objext=o
ac_cv_path_install='/usr/bin/install -c'
ac_cv_prog_AR=/home/os/opt/cross/x86_64-w64-mingw32/bin/ar
ac_cv_prog_AWK=gawk
ac_cv_prog_CC=' /home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/xgcc
-B/home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/
-L/home/os/opt/cross/x86_64-w64-mingw32/lib -L/home/os/opt/cross/mingw/lib
-isystem /home/os/opt/cross/x86_64-w64-mingw32/include -isystem
/home/os/opt/cross/mingw/include
-B/home/os/opt/cross/x86_64-w64-mingw32/bin/
-B/home/os/opt/cross/x86_64-w64-mingw32/lib/ -isystem
/home/os/opt/cross/x86_64-w64-mingw32/include -isystem
/home/os/opt/cross/x86_64-w64-mingw32/sys-include   '
ac_cv_prog_CPP=/lib/cpp
ac_cv_prog_LIPO=x86_64-w64-mingw32-lipo
ac_cv_prog_NM=/home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/nm
ac_cv_prog_RANLIB=/home/os/opt/cross/x86_64-w64-mingw32/bin/ranlib
ac_cv_prog_STRIP=/home/os/opt/cross/x86_64-w64-mingw32/bin/strip
ac_cv_prog_cc_c89=no
ac_cv_prog_cc_g=yes

## ----------------- ##
## Output variables. ##
## ----------------- ##

AR='/home/os/opt/cross/x86_64-w64-mingw32/bin/ar'
AWK='gawk'
CC=' /home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/xgcc
-B/home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/
-L/home/os/opt/cross/x86_64-w64-mingw32/lib -L/home/os/opt/cross/mingw/lib
-isystem /home/os/opt/cross/x86_64-w64-mingw32/include -isystem
/home/os/opt/cross/mingw/include
-B/home/os/opt/cross/x86_64-w64-mingw32/bin/
-B/home/os/opt/cross/x86_64-w64-mingw32/lib/ -isystem
/home/os/opt/cross/x86_64-w64-mingw32/include -isystem
/home/os/opt/cross/x86_64-w64-mingw32/sys-include   '
CET_FLAGS=''
CFLAGS='-g -O2'
CPP='/lib/cpp'
CPPFLAGS=''
DEFS=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP=''
EXEEXT=''
GREP=''
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LIPO='x86_64-w64-mingw32-lipo'
LN_S='ln -s'
LTLIBOBJS=''
MAINT='#'
NM='/home/os/src/gcc-build-x86_64-w64-mingw32/./gcc/nm'
OBJEXT='o'
PACKAGE_BUGREPORT=''
PACKAGE_NAME='GNU C Runtime Library'
PACKAGE_STRING='GNU C Runtime Library 1.0'
PACKAGE_TARNAME='libgcc'
PACKAGE_URL='http://www.gnu.org/software/libgcc/'
PACKAGE_VERSION='1.0'
PATH_SEPARATOR=':'
PICFLAG=''
RANLIB='/home/os/opt/cross/x86_64-w64-mingw32/bin/ranlib'
SHELL='/bin/sh'
STRIP='/home/os/opt/cross/x86_64-w64-mingw32/bin/strip'
ac_ct_CC=''
accel_dir_suffix=''
asm_hidden_op=''
bindir='${exec_prefix}/bin'
build='x86_64-pc-linux-gnu'
build_alias='x86_64-pc-linux-gnu'
build_cpu='x86_64'
build_libsubdir='build-x86_64-pc-linux-gnu'
build_os='linux-gnu'
build_subdir='build-x86_64-pc-linux-gnu'
build_vendor='pc'
cpu_type=''
datadir='${datarootdir}'
datarootdir='${prefix}/share'
decimal_float=''
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
double_type_size=''
dvidir='${docdir}'
enable_decimal_float=''
enable_execute_stack=''
enable_shared='yes'
enable_vtable_verify='no'
exec_prefix='NONE'
extra_parts=''
fixed_point=''
force_explicit_eh_registry=''
get_gcc_base_ver=''
host='x86_64-w64-mingw32'
host_alias='x86_64-w64-mingw32'
host_cpu='x86_64'
host_noncanonical='x86_64-w64-mingw32'
host_os='mingw32'
host_subdir='.'
host_vendor='w64'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
libgcc_topdir='../../../gcc/libgcc/..'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
long_double_type_size=''
mandir='${datarootdir}/man'
md_unwind_header=''
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/home/os/opt/cross'
program_transform_name='s&^&x86_64-w64-mingw32-&'
psdir='${docdir}'
real_host_noncanonical=''
sbindir='${exec_prefix}/sbin'
set_have_cc_tls=''
set_use_emutls=''
sfp_machine_header=''
sharedstatedir='${prefix}/com'
slibdir='$(exec_prefix)/$(host_noncanonical)/lib'
sysconfdir='${prefix}/etc'
target_alias='x86_64-w64-mingw32'
target_noncanonical='x86_64-w64-mingw32'
target_subdir='x86_64-w64-mingw32'
thread_header=''
tm_defines=''
tm_file=''
tmake_file=''
toolexecdir='$(exec_prefix)/$(target_noncanonical)'
toolexeclibdir='$(toolexecdir)/lib/../lib'
unwind_header=''
vis_hide=''
with_aix_soname='aix'

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "GNU C Runtime Library"
#define PACKAGE_TARNAME "libgcc"
#define PACKAGE_VERSION "1.0"
#define PACKAGE_STRING "GNU C Runtime Library 1.0"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL "http://www.gnu.org/software/libgcc/";

configure: exit 1

///---***---///

Anyway, been trying to toy with options and such, but no change in results.
Not sure what to make of this. I would appreciate any help anyone could
provide.

Regards,
Juan Pablo



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux