Hello! Trying to use --with-build-sysroot configure option, the build failed with "error: no include path in which to search for ..." error.
This problem come down to the fact, that -isysroot is ignored when crosscompiling: $ more in.c #include <time.h> Native compiler compiles this without problems: $ ~/gcc-build/gcc/xgcc -B ~/gcc-build/gcc -isysroot /home/uros/sys-root -quiet -v in.c Target: x86_64-unknown-linux-gnu Configured with: ../gcc-svn/trunk/configure --enable-languages=c,c++,fortran Thread model: posix gcc version 4.6.0 20101015 (experimental) [trunk revision 165513] (GCC) COLLECT_GCC_OPTIONS='-B' '/home/uros/gcc-build/gcc' '-isysroot' '/home/uros/sys-root' '-v' '-mtune=generic' '-march=x86-64' /home/uros/gcc-build/gcc/cc1 -quiet -v -iprefix /home/uros/gcc-build/gcc/../lib/gcc/x86_64-unknown-linux-gnu/4.6.0/ -isystem /home/uros/gcc-build/gcc/include -isystem /home/uros/gcc-build/gcc/include-fixed -isysroot /home/uros/sys-root in.c -quiet -dumpbase in.c -mtune=generic -march=x86-64 -auxbase in -version -o /tmp/ccyTmHfz.s GNU C (GCC) version 4.6.0 20101015 (experimental) [trunk revision 165513] (x86_64-unknown-linux-gnu) compiled by GNU C version 4.6.0 20101015 (experimental) [trunk revision 165513], GMP version 4.3.1, MPFR version 2.4.2, MPC version 0.8.1 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 ignoring nonexistent directory "/home/uros/gcc-build/gcc/../lib/gcc/x86_64-unknown-linux-gnu/4.6.0/include" ignoring nonexistent directory "/home/uros/gcc-build/gcc/../lib/gcc/x86_64-unknown-linux-gnu/4.6.0/include-fixed" ignoring nonexistent directory "/home/uros/gcc-build/gcc/../lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../x86_64-unknown-linux-gnu/include" ignoring nonexistent directory "/home/uros/gcc-build/gcc/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.6.0/include" ignoring nonexistent directory "/home/uros/sys-root/usr/local/include" ignoring nonexistent directory "/home/uros/gcc-build/gcc/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.6.0/include-fixed" ignoring nonexistent directory "/home/uros/gcc-build/gcc/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../x86_64-unknown-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /home/uros/gcc-build/gcc/include /home/uros/gcc-build/gcc/include-fixed /home/uros/sys-root/usr/include End of search list. Crosscompiler does not handle -isysroot correctly: $ ~/gcc-build-alpha/gcc/xgcc -B ~/gcc-build-alpha/gcc -isysroot /home/uros/sys-root -quiet -v in.c Target: alphaev68-pc-linux-gnu Configured with: ../gcc-svn/trunk/configure --target=alphaev68-pc-linux-gnu --enable-languages=c Thread model: posix gcc version 4.6.0 20101009 (experimental) [trunk revision 165234] (GCC) COLLECT_GCC_OPTIONS='-B' '/home/uros/gcc-build-alpha/gcc' '-isysroot' '/home/uros/sys-root' '-v' '-mcpu=ev67' /home/uros/gcc-build-alpha/gcc/cc1 -quiet -v -iprefix /home/uros/gcc-build-alpha/gcc/../lib/gcc/alphaev68-pc-linux-gnu/4.6.0/ -isystem /home/uros/gcc-build-alpha/gcc/include -isystem /home/uros/gcc-build-alpha/gcc/include-fixed -isysroot /home/uros/sys-root in.c -quiet -dumpbase in.c -mcpu=ev67 -auxbase in -version -o /tmp/cc9QXyzH.s GNU C (GCC) version 4.6.0 20101009 (experimental) [trunk revision 165234] (alphaev68-pc-linux-gnu) compiled by GNU C version 4.4.4 20100630 (Red Hat 4.4.4-10), GMP version 4.3.1, MPFR version 2.4.2, MPC version 0.8.1 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 ignoring nonexistent directory "/home/uros/gcc-build-alpha/gcc/../lib/gcc/alphaev68-pc-linux-gnu/4.6.0/include" ignoring nonexistent directory "/home/uros/gcc-build-alpha/gcc/../lib/gcc/alphaev68-pc-linux-gnu/4.6.0/include-fixed" ignoring nonexistent directory "/home/uros/gcc-build-alpha/gcc/../lib/gcc/alphaev68-pc-linux-gnu/4.6.0/../../../../alphaev68-pc-linux-gnu/sys-include" ignoring nonexistent directory "/home/uros/gcc-build-alpha/gcc/../lib/gcc/alphaev68-pc-linux-gnu/4.6.0/../../../../alphaev68-pc-linux-gnu/include" ignoring nonexistent directory "/home/uros/gcc-build-alpha/gcc/../lib/gcc/../../lib/gcc/alphaev68-pc-linux-gnu/4.6.0/include" ignoring nonexistent directory "/home/uros/gcc-build-alpha/gcc/../lib/gcc/../../lib/gcc/alphaev68-pc-linux-gnu/4.6.0/include-fixed" ignoring nonexistent directory "/home/uros/gcc-build-alpha/gcc/../lib/gcc/../../lib/gcc/alphaev68-pc-linux-gnu/4.6.0/../../../../alphaev68-pc-linux-gnu/sys-include" ignoring nonexistent directory "/home/uros/gcc-build-alpha/gcc/../lib/gcc/../../lib/gcc/alphaev68-pc-linux-gnu/4.6.0/../../../../alphaev68-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /home/uros/gcc-build-alpha/gcc/include /home/uros/gcc-build-alpha/gcc/include-fixed End of search list. Please note that /home/uros/sys-root/usr/include include directory is missing at the end. The difference happens in gcc/cppdefault.c: #if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT) # undef LOCAL_INCLUDE_DIR # undef SYSTEM_INCLUDE_DIR # undef STANDARD_INCLUDE_DIR #else # undef CROSS_INCLUDE_DIR #endif Commenting out #undef STANDARD_INCLUDE_DIR fixes the problem. Uros.