Hello, I found from the emails that you referenced earlier that there is a open source project for building cross compilers: crosstools-ng. I used it to build a toolchain with the --with-sysroot option, and here is the result: $ arm-linux-gnueabihf-gcc -v Using built-in specs. COLLECT_GCC=arm-linux-gnueabihf-gcc COLLECT_LTO_WRAPPER=/home/david/pi/arm-linux-gnueabihf/bin/../libexec/gcc/arm-linux- gnueabihf/9.2.0/lto-wrapper Target: arm-linux-gnueabihf Configured with: /home/david/cross-gcc/crosstool-ng/.build/arm-linux-gnueabihf/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/home/david/x-tools/arm-linux-gnueabihf --with-sysroot=/home/david/x-tools/arm-linux- gnueabihf/arm-linux-gnueabihf/sysroot --enable-languages=c,c++ --with-float=hard --with- pkgversion='crosstool-NG 1.24.0.55-7bd6bb0' --disable-sjlj-exceptions --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath- support --disable-libsanitizer --disable-libmpx --with-gmp=/home/david/cross-gcc/crosstool- ng/.build/arm-linux-gnueabihf/buildtools --with-mpfr=/home/david/cross-gcc/crosstool-ng/.build /arm-linux-gnueabihf/buildtools --with-mpc=/home/david/cross-gcc/crosstool-ng/.build/arm-linux- gnueabihf/buildtools --with-isl=/home/david/cross-gcc/crosstool-ng/.build/arm-linux-gnueabihf /buildtools --disable-lto --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++ -lm' --enable- threads=posix --enable-target-optspace --disable-plugin --disable-nls --disable-multilib --with-local- prefix=/home/david/x-tools/arm-linux-gnueabihf/arm-linux-gnueabihf/sysroot --enable-long-long Thread model: posix gcc version 9.2.0 (crosstool-NG 1.24.0.55-7bd6bb0) As you can see, it uses a subdirectory of the prefix, $PREFIX/arm-linux-gnueabihf/sysroot. Thank you for all of your help, Tadeus, David ________________________________ From: Tadeus Prastowo <tadeus.prastowo@xxxxxxxx> Sent: Sunday, January 12, 2020 6:54 AM To: DAVID STUMPH <DSTUMPH1144@xxxxxxxxxxxxx> Cc: gcc-help@xxxxxxxxxxx <gcc-help@xxxxxxxxxxx> Subject: Re: GCC fails to build. Hello, On Sun, Jan 12, 2020 at 1:21 AM DAVID STUMPH <DSTUMPH1144@xxxxxxxxxxxxx> wrote: > > Hello, > > Here is the output of gcc -v: > $ gcc -v > Using built-in specs. > COLLECT_GCC=gcc > COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/8/lto-wrapper > OFFLOAD_TARGET_NAMES=nvptx-none > OFFLOAD_TARGET_DEFAULT=1 > Target: x86_64-linux-gnu > Configured with: ../src/configure -v --with-pkgversion='Debian 8.3.0-6' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=x86_64-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-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu > Thread model: posix > gcc version 8.3.0 (Debian 8.3.0-6) Thanks. Now I see that the system compiler of Ubuntu 16.04 LTS is older than that of Debian 10, which you use as I learned from your initial post. > > Could you confirm whether --with-sysroot=$HOME/cross-gcc/install is > > really what you used? It is not > > --with-sysroot=$HOME/cross-gcc/install/arm-linux-gnueabihf? > > I definitely used $HOME/cross-gcc/install/ as a sysroot and not > $HOME/cross-gcc/install/arm-linux-gnueabihf. I had previously tried to build MinGW-w64, > and it used the prefix that as the sysroot. Interesting. I think that might be a special case for MinGW-w64, considering that it deals with a non-unix-like OS. > I didn't think that it made sense to set the sysroot as > a subdirectory of the prefix either. I think it makes sense that the sysroot is a subdirectory of the prefix; to quote https://gcc.gnu.org/install/configure.html#Cross-Compiler-Specific-Options: --with-sysroot --with-sysroot=dir [...] The default value, in case --with-sysroot is not given an argument, is ${gcc_tooldir}/sys-root. If the specified directory is a subdirectory of ${exec_prefix}, then it will be found relative to the GCC binaries if the installation tree is moved. [...] End quote. > Here's what the MinGW-w64 building instructions says: > > If using a sysroot, add "--with-sysroot=/mypath --prefix=/mypath" to > your configure command, i.e., for multilib: > ../path/to/configure --target=x86_64-w64-mingw32 \ > --enable-targets=x86_64-w64-mingw32,i686-w64-mingw32 \ > --with-sysroot=/mypath --prefix=/mypath > > I'll try your suggestions for the --with-sysroot option, however, and I will share my results. Thanks. > David -- Best regards, Tadeus