diff options
Diffstat (limited to 'strata/build-essential/stage1-gcc.morph')
-rw-r--r-- | strata/build-essential/stage1-gcc.morph | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/strata/build-essential/stage1-gcc.morph b/strata/build-essential/stage1-gcc.morph index 0e0c2d81..0cb03568 100644 --- a/strata/build-essential/stage1-gcc.morph +++ b/strata/build-essential/stage1-gcc.morph @@ -1,7 +1,19 @@ name: stage1-gcc kind: chunk + configure-commands: - mkdir o + +# Configure flag notes: +# 1. Standard flags. See gcc.morph. +# 2. Disable searching /usr/local/include for headers +# 3. The pass 1 compiler needs to find the libraries we build in pass 2. +# Include path must be set explicility, because it defaults to +# $SYSROOT/usr/include rather than $SYSROOT/include. +# FIXME: this flag is not present until GCC 4.6.3! +# 4. Disable stuff that doesn't work when building a cross compiler +# without an existing libc, and generally try to keep this build as +# simple as possible. - | cd o && ../configure \ @@ -21,10 +33,16 @@ configure-commands: --disable-shared --disable-threads --disable-target-libiberty \ --disable-target-zlib --without-headers --with-newlib \ --with-system-zlib + build-commands: - cd o && make + install-commands: - cd o && make DESTDIR="$DESTDIR" install + +# The file libgcc_eh is required during eglibc's build, but is not created +# because we built GCC with --disable-shared. This is a workaround for +# eglibc's build system being slightly broken. - | libgcc_filename=$($DESTDIR$PREFIX/bin/$TARGET_STAGE1-gcc -print-libgcc-file-name) ln -sv libgcc.a $(echo $libgcc_filename | sed 's/libgcc/&_eh/') |