From 274d6185bdb5f8df53bd02df46bad2e5f170fb21 Mon Sep 17 00:00:00 2001 From: Jaromir Capik Date: Wed, 24 Jun 2015 13:15:28 +0200 Subject: [PATCH] STAGE1-*: Moving config args to recipes & fixing FTBFS This commit moves the *GCC_CONFIGARGS from the stage1 script to the *gcc* recipes so that the args can be tweaked by the gcc maintainers in the future. This adds a bit of redundancy, but still worthy. This commit also disables gcc bootstrap in stage1 and splits the build dir for gcc-host, gcc-libgcc and gcc so that it is clean prior starting each build. It resolves strange config issues that appear just under some combinations of build and target arch. --- STAGE1-gcc | 23 ++++++++++++++++++++++- STAGE1-gcc-host | 21 +++++++++++++++++++-- STAGE1-gcc-libgcc | 25 +++++++++++++++++++++++-- STAGE1-t-gcc | 19 ++++++++++++++++++- 4 files changed, 82 insertions(+), 6 deletions(-) diff --git a/STAGE1-gcc b/STAGE1-gcc index cc10f06..11744b8 100644 --- a/STAGE1-gcc +++ b/STAGE1-gcc @@ -1,11 +1,32 @@ srpm gcc mcd $BUILDDIR/gcc +# These are for gcc cross-tools (politics sometime result in slightly +# different arch names) +GCC_CONFIGARGS="--prefix=$PREFIX + --libdir=$PREFIX/lib${SUFFIX} + --target=$TARGET + ${GCC_CONFIG_EXTRA} + --enable-languages=c,c++ + --with-sysroot=$ROOTFS + --with-build-sysroot=$ROOTFS + --cache-file=config.cache + --disable-bootstrap + --enable-threads=posix + --enable-64-bit-bfd + --disable-lto + $WITHPPL +" + # prefill gcc cache echo 'lt_cv_shlibpath_overrides_runpath=no' > config.cache echo 'gcc_cv_libc_provides_ssp=yes' >> config.cache -$SRC/gcc-*/configure $GCC_CONFIGARGS --with-headers=$ROOTFS/usr/include --cache-file=config.cache +if [ ! "$BUILDER_ARCH" = "$TARGET_ARCH" ]; then + WITH_HEADERS="--with-headers=$ROOTFS/usr/include" +fi + +$SRC/gcc-*/configure $GCC_CONFIGARGS $WITH_HEADERS notparallel make $J make $J install diff --git a/STAGE1-gcc-host b/STAGE1-gcc-host index a9fe747..514a58f 100644 --- a/STAGE1-gcc-host +++ b/STAGE1-gcc-host @@ -1,5 +1,22 @@ srpm gcc -mcd $BUILDDIR/gcc +mcd $BUILDDIR/gcc-host + +# These are for gcc cross-tools (politics sometime result in slightly +# different arch names) +GCC_CONFIGARGS="--prefix=$PREFIX + --libdir=$PREFIX/lib${SUFFIX} + --target=$TARGET + ${GCC_CONFIG_EXTRA} + --enable-languages=c,c++ + --with-sysroot=$ROOTFS + --with-build-sysroot=$ROOTFS + --cache-file=config.cache + --disable-bootstrap + --enable-threads=posix + --enable-64-bit-bfd + --disable-lto + $WITHPPL +" # prefill gcc cache echo 'lt_cv_shlibpath_overrides_runpath=no' > config.cache @@ -9,7 +26,7 @@ if [ ! "$BUILDER_ARCH" = "$TARGET_ARCH" ]; then WITH_HEADERS="--with-headers=$ROOTFS/usr/include" fi -$SRC/gcc-*/configure $GCC_CONFIGARGS $WITH_HEADERS --cache-file=config.cache +$SRC/gcc-*/configure $GCC_CONFIGARGS $WITH_HEADERS notparallel # Pass gcc_cv_libc_provides_ssp down, because the config.cache diff --git a/STAGE1-gcc-libgcc b/STAGE1-gcc-libgcc index a73e524..2600172 100644 --- a/STAGE1-gcc-libgcc +++ b/STAGE1-gcc-libgcc @@ -1,11 +1,32 @@ srpm gcc -mcd $BUILDDIR/gcc +mcd $BUILDDIR/gcc-libgcc + +# These are for gcc cross-tools (politics sometime result in slightly +# different arch names) +GCC_CONFIGARGS="--prefix=$PREFIX + --libdir=$PREFIX/lib${SUFFIX} + --target=$TARGET + ${GCC_CONFIG_EXTRA} + --enable-languages=c,c++ + --with-sysroot=$ROOTFS + --with-build-sysroot=$ROOTFS + --cache-file=config.cache + --disable-bootstrap + --enable-threads=posix + --enable-64-bit-bfd + --disable-lto + $WITHPPL +" # prefill gcc cache echo 'lt_cv_shlibpath_overrides_runpath=no' > config.cache echo 'gcc_cv_libc_provides_ssp=yes' >> config.cache -$SRC/gcc-*/configure $GCC_CONFIGARGS --with-headers=$ROOTFS/usr/include --cache-file=config.cache +if [ ! "$BUILDER_ARCH" = "$TARGET_ARCH" ]; then + WITH_HEADERS="--with-headers=$ROOTFS/usr/include" +fi + +$SRC/gcc-*/configure $GCC_CONFIGARGS $WITH_HEADERS notparallel # Pass gcc_cv_libc_provides_ssp down, because the config.cache # version is not passed down to the gcc subdir. diff --git a/STAGE1-t-gcc b/STAGE1-t-gcc index fa5eaca..ed20101 100644 --- a/STAGE1-t-gcc +++ b/STAGE1-t-gcc @@ -1,6 +1,23 @@ srpm gcc mcd $BUILDDIR/t-gcc -$SRC/gcc-*/configure $GCC_TCONFIGARGS --enable-linker-build-id + +GCC_TCONFIGARGS="--prefix=/usr + --libdir=/usr/lib${SUFFIX} + --with-sysroot=/ + --with-build-sysroot=$ROOTFS + --build=$BUILD + --host=$TARGET + --target=$TARGET + --disable-bootstrap + --enable-werror=no + --enable-cxx + ${GCC_CONFIG_EXTRA} + --enable-languages=c,c++ + --enable-threads=posix + --enable-linker-build-id +" + +$SRC/gcc-*/configure $GCC_TCONFIGARGS notparallel make $J make $J install DESTDIR=${ROOTFS}