diff options
Diffstat (limited to 'strata/build-essential/stage1-binutils.morph')
-rw-r--r-- | strata/build-essential/stage1-binutils.morph | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/strata/build-essential/stage1-binutils.morph b/strata/build-essential/stage1-binutils.morph index b6670d5c..69a79d14 100644 --- a/strata/build-essential/stage1-binutils.morph +++ b/strata/build-essential/stage1-binutils.morph @@ -3,15 +3,21 @@ kind: chunk build-system: autotools configure-commands: -# We set the sysroot location dynamically at runtime by passing -B to GCC, -# so we configure with sysroot=/. Setting the lib path is vital to avoid -# the tools we build linking to the libraries on the host system; the '=' -# makes the path we give relative to the sysroot, which we can then set -# at runtime by passing -Wl,--sysroot to GCC. +# We set the sysroot location dynamically at runtime by passing +# `--sysroot` to GCC, so we need to build a linker with sysroot support. +# We set it to a non-existent directory as a safety net to avoid looking +# at the host dirs in case we forget to set the sysroot. Setting the +# lib path is vital to avoid the tools we build linking to the libraries +# on the host system; the '=' makes the path we give relative to the +# sysroot, which we can then set at runtime by passing -Wl,--sysroot to +# GCC. Although nothing should be installed on /lib64, we configure the +# linker to look at that directory as well to make things more robust +# (currently GCC installs libraries to this directory at least on +# x86_64). - | ./configure --prefix="$PREFIX" --disable-nls --disable-werror \ --build=$(sh config.guess) \ --host=$(sh config.guess) \ --target=$TARGET_STAGE1 \ - --with-sysroot="/" --with-lib-path="=$PREFIX/lib" + --with-sysroot=/nonexistentdir --with-lib-path="=$PREFIX/lib:=$PREFIX/lib64" |