summaryrefslogtreecommitdiff
path: root/strata/build-essential
diff options
context:
space:
mode:
authorAdam Coldrick <adam.coldrick@codethink.co.uk>2015-01-12 13:41:48 +0000
committerMorph (on behalf of Adam Coldrick) <adam.coldrick@codethink.co.uk>2015-01-12 13:41:48 +0000
commit5f2cbb6e03d58bd15cea22e3571e8ef3ec3c08df (patch)
tree70f02464e6e9e01e144a24322ba05effc8d446e5 /strata/build-essential
parentef8b6b3405005ae7ce7fb337d82cdbd237f1979a (diff)
downloaddefinitions-5f2cbb6e03d58bd15cea22e3571e8ef3ec3c08df.tar.gz
Morph build 6f334ffa50134b86aa1e3a669310e51e
System branch: master
Diffstat (limited to 'strata/build-essential')
-rw-r--r--strata/build-essential/binutils.morph1
-rw-r--r--strata/build-essential/busybox.morph55
-rw-r--r--strata/build-essential/gcc.morph16
-rw-r--r--strata/build-essential/glibc.morph3
-rw-r--r--strata/build-essential/stage1-binutils.morph7
-rw-r--r--strata/build-essential/stage1-gcc.morph18
-rw-r--r--strata/build-essential/stage2-binutils.morph5
-rw-r--r--strata/build-essential/stage2-busybox.morph43
-rw-r--r--strata/build-essential/stage2-gcc-fixed-headers.morph9
-rw-r--r--strata/build-essential/stage2-gcc.morph28
-rw-r--r--strata/build-essential/stage2-glibc.morph16
-rw-r--r--strata/build-essential/stage2-reset-specs.morph12
12 files changed, 35 insertions, 178 deletions
diff --git a/strata/build-essential/binutils.morph b/strata/build-essential/binutils.morph
index bab52672..81d4d6f7 100644
--- a/strata/build-essential/binutils.morph
+++ b/strata/build-essential/binutils.morph
@@ -1,7 +1,6 @@
name: binutils
kind: chunk
build-system: autotools
-
configure-commands:
- |
./configure --prefix="$PREFIX" --disable-nls --disable-werror \
diff --git a/strata/build-essential/busybox.morph b/strata/build-essential/busybox.morph
index 35f57357..77fc265f 100644
--- a/strata/build-essential/busybox.morph
+++ b/strata/build-essential/busybox.morph
@@ -1,41 +1,31 @@
name: busybox
kind: chunk
-
configure-commands:
-# Busybox's default config has everything enabled.
- make defconfig
-
-- sed -e 's|.*UDHCPC_DEFAULT_SCRIPT.*|CONFIG_UDHCPC_DEFAULT_SCRIPT="'"$PREFIX"/share/udhcpc/default.script'"|' -i .config
-- sed -e 's|.*IFUPDOWN_IFSTATE_PATH.*|CONFIG_IFUPDOWN_IFSTATE_PATH="/run/ifstate"|' -i .config
-
-# Avoid dividing applets between $PREFIX/[s]bin and $PREFIX/usr/[s]bin.
-- '[ "$PREFIX" = /usr ] || sed -e ''s/.*INSTALL_NO_USR.*/CONFIG_INSTALL_NO_USR=y/'' -i .config'
-
-# We have GAWK, but in GENIVI baseline we want to get rid of it
-# - sed -e 's/CONFIG_AWK=y.*/# CONFIG_AWK is not set/' -i .config
-
-# Depends on stuff that was removed since eglibc 2.14.
+- sed -e 's|.*UDHCPC_DEFAULT_SCRIPT.*|CONFIG_UDHCPC_DEFAULT_SCRIPT="'"$PREFIX"/share/udhcpc/default.script'"|'
+ -i .config
+- sed -e 's|.*IFUPDOWN_IFSTATE_PATH.*|CONFIG_IFUPDOWN_IFSTATE_PATH="/run/ifstate"|'
+ -i .config
+- '[ "$PREFIX" = /usr ] || sed -e ''s/.*INSTALL_NO_USR.*/CONFIG_INSTALL_NO_USR=y/''
+ -i .config'
- sed -e 's/CONFIG_INETD=y.*/# CONFIG_INETD is not set/' -i .config
-
-# Busybox Patch is incompatible enough with GNU Patch that it can't be
-# used for GNULib projects built from Git.
- sed -e 's/CONFIG_PATCH=y.*/# CONFIG_PATCH is not set/' -i .config
-
-# None of this is needed because we have kmod; and it actually breaks the
-# Linux build because depmod isn't compatible enough with util-linux's.
- sed -e 's/CONFIG_DEPMOD=y.*/# CONFIG_DEPMOD is not set/' -i .config
- sed -e 's/CONFIG_INSMOD=y.*/# CONFIG_INSMOD is not set/' -i .config
- sed -e 's/CONFIG_MODPROBE=y.*/# CONFIG_MODPROBE is not set/' -i .config
- sed -e 's/CONFIG_MODPROBE_SMALL=y.*/# CONFIG_MODPROBE_SMALL is not set/' -i .config
- sed -e 's/CONFIG_LSMOD=y.*/# CONFIG_LSMOD is not set/' -i .config
- sed -e 's/CONFIG_RMMOD=y.*/# CONFIG_RMMOD is not set/' -i .config
-
-# General features that we don't need.
-- sed -e 's/CONFIG_FEATURE_MOUNT_CIFS=y.*/# CONFIG_FEATURE_MOUNT_CIFS is not set/' -i .config
-- sed -e 's/CONFIG_FEATURE_EXTRA_QUIET=y.*/# CONFIG_FEATURE_EXTRA_QUIET is not set/' -i .config
-- sed -e 's/CONFIG_FEATURE_INIT_COREDUMPS=y.*/# CONFIG_FEATURE_INIT_COREDUMPS is not set/' -i .config
-- sed -e 's/CONFIG_FEATURE_INIT_SCTTY=y.*/# CONFIG_FEATURE_INIT_SCTTY is not set/' -i .config
-- sed -e 's/CONFIG_FEATURE_INIT_SYSLOG=y.*/# CONFIG_FEATURE_INIT_SYSLOG is not set/' -i .config
+- sed -e 's/CONFIG_FEATURE_MOUNT_CIFS=y.*/# CONFIG_FEATURE_MOUNT_CIFS is not set/'
+ -i .config
+- sed -e 's/CONFIG_FEATURE_EXTRA_QUIET=y.*/# CONFIG_FEATURE_EXTRA_QUIET is not set/'
+ -i .config
+- sed -e 's/CONFIG_FEATURE_INIT_COREDUMPS=y.*/# CONFIG_FEATURE_INIT_COREDUMPS is not
+ set/' -i .config
+- sed -e 's/CONFIG_FEATURE_INIT_SCTTY=y.*/# CONFIG_FEATURE_INIT_SCTTY is not set/'
+ -i .config
+- sed -e 's/CONFIG_FEATURE_INIT_SYSLOG=y.*/# CONFIG_FEATURE_INIT_SYSLOG is not set/'
+ -i .config
- sed -e 's/CONFIG_FEATURE_INITRD=y.*/# CONFIG_FEATURE_INITRD is not set/' -i .config
- sed -e 's/CONFIG_FEATURE_MINIX2=y.*/# CONFIG_FEATURE_MINIX2 is not set/' -i .config
- sed -e 's/CONFIG_FSCK_MINIX=y.*/# CONFIG_FSCK_MINIX is not set/' -i .config
@@ -48,23 +38,18 @@ configure-commands:
- sed -e 's/CONFIG_UNLZMA=y.*/# CONFIG_UNLZMA is not set/' -i .config
- sed -e 's/CONFIG_UNXZ=y.*/# CONFIG_UNXZ is not set/' -i .config
- sed -e 's/CONFIG_XZ=y.*/# CONFIG_XZ is not set/' -i .config
-
-# Now turn on some little bits we do need
- sed -e 's/# CONFIG_BBCONFIG is not set/CONFIG_BBCONFIG=y/' -i .config
-- sed -e 's/# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set/CONFIG_FEATURE_COMPRESS_BBCONFIG=y/' -i .config
-- sed -e 's/# CONFIG_FEATURE_MOUNT_HELPERS is not set/CONFIG_FEATURE_MOUNT_HELPERS=y/' -i .config
-
-
+- sed -e 's/# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set/CONFIG_FEATURE_COMPRESS_BBCONFIG=y/'
+ -i .config
+- sed -e 's/# CONFIG_FEATURE_MOUNT_HELPERS is not set/CONFIG_FEATURE_MOUNT_HELPERS=y/'
+ -i .config
build-commands:
- make
-
install-commands:
- |
if [ "$PREFIX" = /usr ]; then PREFIX=; fi &&
make CONFIG_PREFIX="$DESTDIR$PREFIX" install &&
chmod 6755 "$DESTDIR$PREFIX"/bin/busybox
-
-# Set up man environment variables
- mkdir -p "$DESTDIR"/etc
- |
cat << EOF > "$DESTDIR/etc/profile"
diff --git a/strata/build-essential/gcc.morph b/strata/build-essential/gcc.morph
index 50e2918c..c57edb61 100644
--- a/strata/build-essential/gcc.morph
+++ b/strata/build-essential/gcc.morph
@@ -1,19 +1,7 @@
name: gcc
kind: chunk
-
configure-commands:
- mkdir o
-
-# Configure flag notes:
-# 1. An attempt to stop anything going in $PREFIX/lib64 (which doesn't
-# fully work; we will need to hobble the multilib configuration in
-# config/i386/t-linux64 if we really want to kill /lib64).
-# 2. Multilib does not make sense in Baserock.
-# 3. Optimisation libraries which for now we do without.
-# 4. Recommended by Linux From Scratch; required for C++ ABI
-# compatibility with other Linux distributions.
-# 5. MPFR is built in the GCC tree, we need to locate it.
-# 6. Avoid having more than one copy of ZLib in use on the system
- |
cd o && \
../configure \
@@ -29,14 +17,12 @@ configure-commands:
`# [5]` --with-mpfr-include="$(pwd)/../mpfr/src" \
--with-mpfr-lib="$(pwd)/mpfr/src/.libs" \
`# [6]` --with-system-zlib
-
build-commands:
- cd o && make
-
install-commands:
- cd o && make DESTDIR="$DESTDIR" install
- ln -s gcc "$DESTDIR/$PREFIX/bin/cc"
-- >
+- |
for fortran_alias in f77 f90 f95; do
ln -s gfortran "$DESTDIR/$PREFIX/bin/$fortran_alias"
done
diff --git a/strata/build-essential/glibc.morph b/strata/build-essential/glibc.morph
index 789283eb..fedc9ca2 100644
--- a/strata/build-essential/glibc.morph
+++ b/strata/build-essential/glibc.morph
@@ -38,7 +38,6 @@ products:
- .*
configure-commands:
- mkdir o
-
- |
case "$MORPH_ARCH" in
armv7*)
@@ -60,10 +59,8 @@ configure-commands:
--without-cvs \
--without-selinux \
--enable-obsolete-rpc
-
build-commands:
- cd o && make localtime=UTC
-
install-commands:
- cd o && make install_root="$DESTDIR" localtime=UTC install
- mkdir -p "$DESTDIR/etc"
diff --git a/strata/build-essential/stage1-binutils.morph b/strata/build-essential/stage1-binutils.morph
index b6670d5c..d3e73a87 100644
--- a/strata/build-essential/stage1-binutils.morph
+++ b/strata/build-essential/stage1-binutils.morph
@@ -1,14 +1,7 @@
name: stage1-binutils
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.
-
- |
./configure --prefix="$PREFIX" --disable-nls --disable-werror \
--build=$(sh config.guess) \
diff --git a/strata/build-essential/stage1-gcc.morph b/strata/build-essential/stage1-gcc.morph
index 0cb03568..0e0c2d81 100644
--- a/strata/build-essential/stage1-gcc.morph
+++ b/strata/build-essential/stage1-gcc.morph
@@ -1,19 +1,7 @@
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 \
@@ -33,16 +21,10 @@ 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/')
diff --git a/strata/build-essential/stage2-binutils.morph b/strata/build-essential/stage2-binutils.morph
index bc0b18ac..a3701b2c 100644
--- a/strata/build-essential/stage2-binutils.morph
+++ b/strata/build-essential/stage2-binutils.morph
@@ -1,7 +1,6 @@
name: stage2-binutils
kind: chunk
build-system: autotools
-
configure-commands:
- |
export STAGE2_SYSROOT="$(dirname $(pwd))"
@@ -12,11 +11,7 @@ configure-commands:
--build=$(sh config.guess) \
--host=$TARGET_STAGE1 \
--target=$TARGET_STAGE1
-
build-commands:
-# Nested configure scripts require that we set CPPFLAGS here as well
-# (I don't think we should have to .. . at least in GCC, I think
-# TARGET_CPPFLAGS may be the answer)
- |
export STAGE2_SYSROOT="$(dirname $(pwd))"
export CPPFLAGS="--sysroot=$STAGE2_SYSROOT"
diff --git a/strata/build-essential/stage2-busybox.morph b/strata/build-essential/stage2-busybox.morph
index dc23d09b..7d17ea40 100644
--- a/strata/build-essential/stage2-busybox.morph
+++ b/strata/build-essential/stage2-busybox.morph
@@ -1,42 +1,31 @@
name: stage2-busybox
kind: chunk
-
configure-commands:
-# Explicitly setting HOSTCC is required because we have a 'gcc' earlier in
-# the PATH supplied by the stage2-gcc chunk, which can't execute outside of
-# the stage 3 staging area.
- make HOSTCC="/usr/bin/gcc" CROSS_COMPILE=$TARGET_STAGE1- defconfig
-
-# Avoid dividing applets between $PREFIX/[s]bin and $PREFIX/usr/[s]bin.
-- '[ "$PREFIX" = /usr ] || sed -e ''s/.*INSTALL_NO_USR.*/CONFIG_INSTALL_NO_USR=y/'' -i .config'
-
-# We have GAWK.
+- '[ "$PREFIX" = /usr ] || sed -e ''s/.*INSTALL_NO_USR.*/CONFIG_INSTALL_NO_USR=y/''
+ -i .config'
- sed -e 's/CONFIG_AWK=y.*/# CONFIG_AWK is not set/' -i .config
-
-# Depends on stuff that was removed since eglibc 2.14.
- sed -e 's/CONFIG_INETD=y.*/# CONFIG_INETD is not set/' -i .config
-
-# Busybox Patch is incompatible enough with GNU Patch that it can't be
-# used for GNULib projects built from Git.
- sed -e 's/CONFIG_PATCH=y.*/# CONFIG_PATCH is not set/' -i .config
-
-# None of this is needed because we have kmod; and it actually breaks the
-# Linux build because depmod isn't compatible enough with util-linux's.
- sed -e 's/CONFIG_DEPMOD=y.*/# CONFIG_DEPMOD is not set/' -i .config
- sed -e 's/CONFIG_INSMOD=y.*/# CONFIG_INSMOD is not set/' -i .config
- sed -e 's/CONFIG_MODPROBE=y.*/# CONFIG_MODPROBE is not set/' -i .config
- sed -e 's/CONFIG_MODPROBE_SMALL=y.*/# CONFIG_MODPROBE_SMALL is not set/' -i .config
- sed -e 's/CONFIG_LSMOD=y.*/# CONFIG_LSMOD is not set/' -i .config
- sed -e 's/CONFIG_RMMOD=y.*/# CONFIG_RMMOD is not set/' -i .config
-
-# General features that we don't need.
-- sed -e 's/CONFIG_FEATURE_MOUNT_CIFS=y.*/# CONFIG_FEATURE_MOUNT_CIFS is not set/' -i .config
-- sed -e 's/CONFIG_FEATURE_EXTRA_QUIET=y.*/# CONFIG_FEATURE_EXTRA_QUIET is not set/' -i .config
-- sed -e 's/CONFIG_FEATURE_INIT_COREDUMPS=y.*/# CONFIG_FEATURE_INIT_COREDUMPS is not set/' -i .config
-- sed -e 's/CONFIG_FEATURE_INIT_SCTTY=y.*/# CONFIG_FEATURE_INIT_SCTTY is not set/' -i .config
-- sed -e 's/CONFIG_FEATURE_INIT_SYSLOG=y.*/# CONFIG_FEATURE_INIT_SYSLOG is not set/' -i .config
+- sed -e 's/CONFIG_FEATURE_MOUNT_CIFS=y.*/# CONFIG_FEATURE_MOUNT_CIFS is not set/'
+ -i .config
+- sed -e 's/CONFIG_FEATURE_EXTRA_QUIET=y.*/# CONFIG_FEATURE_EXTRA_QUIET is not set/'
+ -i .config
+- sed -e 's/CONFIG_FEATURE_INIT_COREDUMPS=y.*/# CONFIG_FEATURE_INIT_COREDUMPS is not
+ set/' -i .config
+- sed -e 's/CONFIG_FEATURE_INIT_SCTTY=y.*/# CONFIG_FEATURE_INIT_SCTTY is not set/'
+ -i .config
+- sed -e 's/CONFIG_FEATURE_INIT_SYSLOG=y.*/# CONFIG_FEATURE_INIT_SYSLOG is not set/'
+ -i .config
- sed -e 's/CONFIG_FEATURE_INITRD=y.*/# CONFIG_FEATURE_INITRD is not set/' -i .config
-- sed -e 's/CONFIG_FEATURE_USE_INITTAB=y.*/# CONFIG_FEATURE_USE_INITTAB is not set/' -i .config
+- sed -e 's/CONFIG_FEATURE_USE_INITTAB=y.*/# CONFIG_FEATURE_USE_INITTAB is not set/'
+ -i .config
- sed -e 's/CONFIG_FEATURE_MINIX2=y.*/# CONFIG_FEATURE_MINIX2 is not set/' -i .config
- sed -e 's/CONFIG_FSCK_MINIX=y.*/# CONFIG_FSCK_MINIX is not set/' -i .config
- sed -e 's/CONFIG_HALT=y.*/# CONFIG_HALT is not set/' -i .config
@@ -52,17 +41,13 @@ configure-commands:
- sed -e 's/CONFIG_UNLZMA=y.*/# CONFIG_UNLZMA is not set/' -i .config
- sed -e 's/CONFIG_UNXZ=y.*/# CONFIG_UNXZ is not set/' -i .config
- sed -e 's/CONFIG_XZ=y.*/# CONFIG_XZ is not set/' -i .config
-
build-commands:
- |
export STAGE2_SYSROOT="$(dirname $(pwd))"
export CPPFLAGS="--sysroot=$STAGE2_SYSROOT"
export LDFLAGS="-Wl,--sysroot=$STAGE2_SYSROOT"
make HOSTCC="/usr/bin/gcc" CROSS_COMPILE=$TARGET_STAGE1-
-
install-commands:
-# We expect to be built with a non-standard prefix in stage 2 (i.e. not
-# /usr). The install will break if prefix is set to /usr.
- |
export STAGE2_SYSROOT="$(dirname $(pwd))"
export CPPFLAGS="--sysroot=$STAGE2_SYSROOT"
diff --git a/strata/build-essential/stage2-gcc-fixed-headers.morph b/strata/build-essential/stage2-gcc-fixed-headers.morph
index 10794872..2c4741ee 100644
--- a/strata/build-essential/stage2-gcc-fixed-headers.morph
+++ b/strata/build-essential/stage2-gcc-fixed-headers.morph
@@ -1,14 +1,6 @@
name: stage2-gcc-fixed-headers
kind: chunk
install-commands:
-# Stage 1 GCC's fixincludes process created a limits.h before there was
-# a real limits.h available for the target. This step (taken from Linux
-# Linux From Scratch) creates a better one so that stage 2 GCC can compile.
-#
-# THIS IS A FRAGILE HACK! We need to replace the headers. The only way to
-# overwrite files in a staging area is to install a new chunk.
-# This is undesired behaviour in the long term, as we want to never
-# have overlaps, so this functionality may go away.
- |
libgcc_dir=$(dirname $($TARGET_STAGE1-gcc -print-libgcc-file-name))
sysroot="$(dirname "$(pwd)")"
@@ -16,4 +8,3 @@ install-commands:
mkdir -p "$DESTDIR/$target_libgcc_dir/include-fixed"
cat "gcc/limitx.h" "gcc/glimits.h" "gcc/limity.h" \
>"$DESTDIR/$target_libgcc_dir/include-fixed/limits.h"
-
diff --git a/strata/build-essential/stage2-gcc.morph b/strata/build-essential/stage2-gcc.morph
index bf6378c1..e342d648 100644
--- a/strata/build-essential/stage2-gcc.morph
+++ b/strata/build-essential/stage2-gcc.morph
@@ -1,25 +1,7 @@
name: stage2-gcc
kind: chunk
-
configure-commands:
- mkdir o
-
-# In other projects we specify the sysroot location using CPPFLAGS. Here,
-# that breaks because GCC compiles stuff for the *build* machine, too ...
-# and this requires using the host's compiler, which cannot use the same
-# set of CPPFLAGS as the target. If we specify the sysroot using CC instead
-# then we don't interfere, because we are only specifying the *host* C
-# compiler.
-#
-# Configure flag notes:
-# 1. It's vital that this compiler targets the bootstrap machine
-# (TARGET_STAGE1) so that the stage 1 GCC is used instead of the
-# compiler of the build machine.
-# 2. Disable searching /usr/local/include for headers
-# 3. This flag causes the correct --sysroot flag to be passed when calling
-# stage 1 GCC.
-# 4. C++ is built in stage 3.
-# 5. Standard flags. See gcc.morph.
- |
export STAGE2_SYSROOT="$(dirname $(pwd))"
export CC="$TARGET_STAGE1-gcc --sysroot=$STAGE2_SYSROOT"
@@ -40,22 +22,12 @@ configure-commands:
--without-cloog --without-ppl \
--with-mpfr-include="$(pwd)/../mpfr/src" \
--with-mpfr-lib="$(pwd)/mpfr/src/.libs"
-
build-commands:
- |
export STAGE2_SYSROOT="$(dirname $(pwd))"
cd o && make
-
install-commands:
- cd o && make DESTDIR="$DESTDIR" install
-
-# Stage 3 builds need to link against this file in the location that
-# it will be in the final system, so we make a temporary link now.
-#
-# On x86_64 GCC resolutely installs its libraries into lib64. To fix this
-# would require hobbling the MULTILIB_OSDIRNAMES field in
-# gcc/config/i386/t-linux64 and this might break things, so for now we
-# tolerate the inconsistency.
- |
if [ "$(echo $TARGET | cut -c -6)" = "x86_64" ]; then
libdir=lib64
diff --git a/strata/build-essential/stage2-glibc.morph b/strata/build-essential/stage2-glibc.morph
index ffa0970b..1fe00e41 100644
--- a/strata/build-essential/stage2-glibc.morph
+++ b/strata/build-essential/stage2-glibc.morph
@@ -1,15 +1,7 @@
name: stage2-glibc
kind: chunk
-
configure-commands:
- mkdir o
-
-# Configure flag notes:
-# 1. Avoid installing to PREFIX/lib64 on x86_64.
-# 2. Location of linux-api-headers.
-# 3. Normal flags. See glibc.morph.
-# 4. Force configuration values of certain things that can't be detected
-# in a cross-compile.
- |
case "$MORPH_ARCH" in
armv7*)
@@ -26,19 +18,11 @@ configure-commands:
`# [3]` --disable-profile --enable-kernel=2.6.25 \
`# [4]` libc_cv_c_cleanup=yes libc_cv_ctors_header=yes \
libc_cv_forced_unwind=yes libc_cv_ssp=no
-
build-commands:
- cd o && make localtime=UTC
-
install-commands:
- cd o && make install_root="$DESTDIR" localtime=UTC install
- sh stage2-glibc-fix-specs
-
-# Install a symlink for the program interpreter (ld.so) so that binaries
-# built in stage 3 before the stage 3 glibc is built can use it.
-# FIXME: get a better way of finding the name of the loader. The lib64
-# path is hardcoded into glibc in the file
-# sysdeps/unix/sysv/linux/configure.
- install -d $DESTDIR/lib
- |
cpu=$(echo $TARGET | cut -d '-' -f 1)
diff --git a/strata/build-essential/stage2-reset-specs.morph b/strata/build-essential/stage2-reset-specs.morph
index 8892f67c..6495909c 100644
--- a/strata/build-essential/stage2-reset-specs.morph
+++ b/strata/build-essential/stage2-reset-specs.morph
@@ -1,17 +1,5 @@
name: stage2-reset-specs
kind: chunk
-
-# Nasty hack to get around being unable to reliably add configuration to gcc,
-# hence the gcc specs are modified, combined with Baserock's rootfs protection
-# preventing specs being modified before builds.
-# The limitation is overcome by installing files as part of a chunk, which
-# overwrites previous files.
-# New specs were added for the bootstrap builds, but after stage2 we start
-# having chrooted builds, so the old specs need to be replaced.
-# Unfortunately we can't just replace the specs with the ones gcc produces,
-# since gcc behaves differently without specs to with specs it produces!
-# So we use a **NASTY HACK** to replace the specs symlink with one that
-# points to a file that doesn't exist.
install-commands:
- |
STAGE2_SYSROOT="$(dirname "$(pwd)")"