diff options
Diffstat (limited to 'strata/build-essential')
25 files changed, 0 insertions, 939 deletions
diff --git a/strata/build-essential/binutils.morph b/strata/build-essential/binutils.morph deleted file mode 100644 index bab52672..00000000 --- a/strata/build-essential/binutils.morph +++ /dev/null @@ -1,8 +0,0 @@ -name: binutils -kind: chunk -build-system: autotools - -configure-commands: -- | - ./configure --prefix="$PREFIX" --disable-nls --disable-werror \ - --with-system-zlib diff --git a/strata/build-essential/busybox.morph b/strata/build-essential/busybox.morph deleted file mode 100644 index 1bbd97a6..00000000 --- a/strata/build-essential/busybox.morph +++ /dev/null @@ -1,89 +0,0 @@ -name: busybox -kind: chunk - -configure-commands: -# Busybox's default config has everything enabled. -- make defconfig KCONFIG_NOTIMESTAMP=1 - -- 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/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_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 -- sed -e 's/CONFIG_LOSETUP=y.*/# CONFIG_LOSETUP is not set/' -i .config -- sed -e 's/CONFIG_LSUSB=y.*/# CONFIG_LSUSB is not set/' -i .config -- sed -e 's/CONFIG_LSPCI=y.*/# CONFIG_LSPCI is not set/' -i .config -- sed -e 's/CONFIG_LZMA=y.*/# CONFIG_LZMA is not set/' -i .config -- sed -e 's/CONFIG_MKFS_EXT2=y.*/# CONFIG_MKFS_EXT2 is not set/' -i .config -- sed -e 's/CONFIG_MKFS_MINIX=y.*/# CONFIG_MKFS_MINIX is not set/' -i .config -- sed -e 's/CONFIG_STRINGS=y.*/# CONFIG_STRINGS is not set/' -i .config -- 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 - - -build-commands: -- make KCONFIG_NOTIMESTAMP=1 - -install-commands: -- | - if [ "$PREFIX" = /usr ]; then PREFIX=; fi && - make CONFIG_PREFIX="$DESTDIR$PREFIX" KCONFIG_NOTIMESTAMP=1 install && - chmod 6755 "$DESTDIR$PREFIX"/bin/busybox -# Set up man environment variables -- mkdir -p "$DESTDIR"/etc -- | - cat << EOF > "$DESTDIR/etc/man.conf" - # This file is used by man to provide a manpath for those without one by - # examining their PATH environment variable. - # - # Lines beginning with `#' are comments and are ignored. Any combination of - # tabs or spaces may be used as `whitespace' separators. - - MANDATORY_MANPATH /usr/man - MANDATORY_MANPATH /usr/share/man - MANDATORY_MANPATH /usr/local/share/man - EOF diff --git a/strata/build-essential/ccache.morph b/strata/build-essential/ccache.morph deleted file mode 100644 index 441344f9..00000000 --- a/strata/build-essential/ccache.morph +++ /dev/null @@ -1,14 +0,0 @@ -name: ccache -kind: chunk -build-system: autotools - -configure-commands: -- ./configure --prefix="$PREFIX" - -install-commands: -- make DESTDIR="$DESTDIR" install -- mkdir -p "$DESTDIR/$PREFIX/lib/ccache" -- for cc in gcc cc g++ c++; do ln -sf "$PREFIX/bin/ccache" "$DESTDIR/$PREFIX/lib/ccache/$cc"; - done -- for cc in gcc cc g++ c++; do ln -sf "$PREFIX/bin/ccache" "$DESTDIR/$PREFIX/lib/ccache/$TARGET-$cc"; - done diff --git a/strata/build-essential/fhs-dirs.morph b/strata/build-essential/fhs-dirs.morph deleted file mode 100644 index f4a1b1e9..00000000 --- a/strata/build-essential/fhs-dirs.morph +++ /dev/null @@ -1,49 +0,0 @@ -name: fhs-dirs -kind: chunk -description: create the FHS 2.3 directory hierarchy and the usual files -install-commands: -- sh ./create-fhs-dirs "$DESTDIR" -- install -m 644 passwd "$DESTDIR/etc/passwd" -- install -m 600 shadow "$DESTDIR/etc/shadow" -- install -m 644 interfaces "$DESTDIR/etc/network/interfaces" -- install -m 644 group "$DESTDIR/etc/group" -- install -m 644 issue "$DESTDIR/etc/issue" -- install -m 644 services "$DESTDIR/etc/services" -- install -m 644 protocols "$DESTDIR/etc/protocols" -- echo baserock > "$DESTDIR"/etc/hostname -devices: -- type: c - filename: /dev/console - gid: 0 - major: 5 - minor: 1 - permissions: '0600' - uid: 0 -- type: c - filename: /dev/full - gid: 0 - major: 1 - minor: 7 - permissions: '0666' - uid: 0 -- type: c - filename: /dev/null - gid: 0 - major: 1 - minor: 3 - permissions: '0666' - uid: 0 -- type: c - filename: /dev/urandom - gid: 0 - major: 1 - minor: 9 - permissions: '0666' - uid: 0 -- type: c - filename: /dev/zero - gid: 0 - major: 1 - minor: 5 - permissions: '0666' - uid: 0 diff --git a/strata/build-essential/gawk.morph b/strata/build-essential/gawk.morph deleted file mode 100644 index 1ad871c6..00000000 --- a/strata/build-essential/gawk.morph +++ /dev/null @@ -1,5 +0,0 @@ -name: gawk -kind: chunk -build-system: autotools -configure-commands: -- ./configure --prefix="$PREFIX" --disable-nls diff --git a/strata/build-essential/gcc.morph b/strata/build-essential/gcc.morph deleted file mode 100644 index 18459b73..00000000 --- a/strata/build-essential/gcc.morph +++ /dev/null @@ -1,62 +0,0 @@ -name: gcc -kind: chunk - -products: -- artifact: gcc-libs - include: - - (usr/)lib/lib.*\.so(\.\d+)*$ -- artifact: gcc-doc - include: - - (usr/)?share/doc/.* - - (usr/)?share/man/.* - - (usr/)?share/info/.* -- artifact: gcc-devel - # devel includes everything which isn't documentation or libs, since - # everything else gcc produces is required for compiling - # this is the -devel artifact instead of -misc, since it goes in -devel - # stratum artifacts by default - include: [.*] -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. Avoid having more than one copy of ZLib in use on the system -# 3. Multilib does not make sense in Baserock. -- | - case "$MORPH_ARCH" in - armv7lhf) ARCH_FLAGS="--with-arch=armv7-a \ - --with-tune=cortex-a9 \ - --with-fpu=vfpv3-d16 \ - --with-float=hard" ;; - armv7*) ARCH_FLAGS="--with-arch=armv7-a" ;; - esac - - cd o && ../configure \ - $ARCH_FLAGS \ - --prefix="$PREFIX" \ - `# [1]` --libdir=$PREFIX/lib \ - --disable-bootstrap \ - `# [2]` --with-system-zlib \ - `# [3]` --disable-multilib \ - --enable-languages=c,c++,fortran - -build-commands: -- | - case "$MORPH_ARCH" in - armv5*) sed -i "s/--host=none/--host=armv5/" o/Makefile - sed -i "s/--target=none/--target=armv5/" o/Makefile ;; - armv7*) sed -i "s/--host=none/--host=armv7a/" o/Makefile - sed -i "s/--target=none/--target=armv7a/" o/Makefile ;; - esac - 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 deleted file mode 100644 index 6c87c5d9..00000000 --- a/strata/build-essential/glibc.morph +++ /dev/null @@ -1,100 +0,0 @@ -name: glibc -kind: chunk -products: -- artifact: glibc-nss - include: - - etc/nsswitch.conf - - (usr/)?lib/libnss.* -- artifact: glibc-gconv - include: - - (usr/)?lib/gconv/.* -- artifact: glibc-libs - include: - - sbin/ldconfig - - lib(32|64)?/ld-.* - - (usr/)?lib(exec)?/pt_chown -- artifact: glibc-bins - include: - - (usr/)?s?bin/.* - - (usr/)?libexec/getconf/.* - - (usr/)?lib(32|64)?/libSegFault\.so(\.\d+)*$ -- artifact: glibc-libs - include: - # This is processed after bins, so bins can take libSegFault.so - - (usr/)?lib(32|64)?/lib[^/]*\.so(\.\d+)*$ - - etc/ld.so.conf - - etc/ld.so.conf.d -- artifact: glibc-devel - include: - - (usr/)?include/.* - - (usr/)?lib(32|64)?/lib.*\.a - - (usr/)?lib(32|64)?/lib.*\.la - - (usr/)?(lib(32|64)?|share)/pkgconfig/.*\.pc - - (usr/)?lib(32|64)?/.*\.o -- artifact: glibc-locale - include: - - (usr/)?lib/locale/.* - - (usr/)?share/locale/.* - - (usr/)?share/i18n/.* - - (usr/)?share/zoneinfo/.* -- artifact: glibc-misc - include: - - .* -configure-commands: -- mkdir o - -- | - case "$MORPH_ARCH" in - armv7*) - ARCH_FLAGS="--without-fp" ;; - esac - - # We override the PATH here to remove /tools/bin from it. - # Thanks to this glibc finds bash in /bin/bash through the /bin - # symlink. This is important because glibc changes the path to bash - # of the shebang in some scripts and these scripts will be broken if - # they point to bash in /tools/bin/bash. - export PATH="/usr/bin:/sbin:/bin"; - export CFLAGS="-O2 $CFLAGS"; - cd o && ../configure \ - $ARCH_FLAGS \ - --prefix="$PREFIX" \ - --disable-profile \ - --enable-kernel=3.0.0 \ - --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 -- cd o && make install_root="$DESTDIR" localtime=UTC localedata/install-locales -- mkdir -p "$DESTDIR/etc" -- mkdir -p "$DESTDIR/etc/ld.so.conf.d" -- | - cat <<EOF > nsswitch.conf - passwd: compat - group: compat - shadow: compat - - hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns mdns4 - networks: files - - protocols: db files - services: db files - ethers: db files - rpc: db files - - netgroup: nis - EOF -- install -m 644 -o root -g root nsswitch.conf "$DESTDIR/etc/nsswitch.conf" -- | - cat <<EOF > ld.so.conf - /lib - /usr/lib - /usr/local/lib - include /etc/ld.so.conf.d/*.conf - EOF -- install -m 644 -o root -g root ld.so.conf "$DESTDIR/etc/ld.so.conf" diff --git a/strata/build-essential/linux-api-headers.morph b/strata/build-essential/linux-api-headers.morph deleted file mode 100644 index 62aa22b8..00000000 --- a/strata/build-essential/linux-api-headers.morph +++ /dev/null @@ -1,24 +0,0 @@ -name: linux-api-headers -kind: chunk -install-commands: -- | - case "$MORPH_ARCH" in - armv5l) - ARCH="arm" ;; - armv7b|armv7l|armv7lhf) - ARCH="arm" ;; - armv8l64|armv8b64) - ARCH="arm64" ;; - x86_32) - ARCH="i386" ;; - x86_64) - ARCH="x86_64" ;; - ppc64) - ARCH="powerpc" ;; - *) - echo "Error: unsupported Morph architecture: $MORPH_ARCH" >&2 - exit 1 - esac - ARCH=$ARCH make INSTALL_HDR_PATH=dest headers_install -- install -d "$DESTDIR${PREFIX-/usr}/include" -- cp -r dest/include/* "$DESTDIR/${PREFIX-/usr}/include" diff --git a/strata/build-essential/m4-tarball.morph b/strata/build-essential/m4-tarball.morph deleted file mode 100644 index eb16726a..00000000 --- a/strata/build-essential/m4-tarball.morph +++ /dev/null @@ -1,5 +0,0 @@ -name: m4-tarball -kind: chunk -build-system: autotools -configure-commands: -- ./configure --prefix="$PREFIX" --disable-gcc-warnings diff --git a/strata/build-essential/make.morph b/strata/build-essential/make.morph deleted file mode 100644 index 1259b342..00000000 --- a/strata/build-essential/make.morph +++ /dev/null @@ -1,5 +0,0 @@ -name: make -kind: chunk -build-system: autotools -configure-commands: -- ./configure --prefix="$PREFIX" --disable-nls diff --git a/strata/build-essential/stage1-binutils.morph b/strata/build-essential/stage1-binutils.morph deleted file mode 100644 index 69a79d14..00000000 --- a/strata/build-essential/stage1-binutils.morph +++ /dev/null @@ -1,23 +0,0 @@ -name: stage1-binutils -kind: chunk -build-system: autotools - -configure-commands: -# 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=/nonexistentdir --with-lib-path="=$PREFIX/lib:=$PREFIX/lib64" diff --git a/strata/build-essential/stage1-gcc.morph b/strata/build-essential/stage1-gcc.morph deleted file mode 100644 index f5d828f7..00000000 --- a/strata/build-essential/stage1-gcc.morph +++ /dev/null @@ -1,83 +0,0 @@ -name: stage1-gcc -kind: chunk - -configure-commands: -# Workaround from LFS due GCC not detecting stack protection correctly -- | - sed -i -e '/k prot/a \ - gcc_cv_libc_provides_ssp=yes - ' gcc/configure - -- mkdir o - -# Configure flag notes: -# 1. See gcc.morph. -# 2. Although we will be setting a sysroot at runtime, giving a -# temporary one at configuration time seems necessary so that -# `--with-native-system-header-dir` produces effect and -# /tools/include is in the include path for the newly built GCC. We -# set it by default to a non-existent directory to avoid GCC looking -# at the host dirs, in case we forget to give it at runtime. -# 3. Disable searching /usr/local/include for headers -# 4. 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. -# 5. 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. -- | - case "$MORPH_ARCH" in - armv7lhf) ARCH_FLAGS="--with-arch=armv7-a \ - --with-tune=cortex-a9 \ - --with-fpu=vfpv3-d16 \ - --with-float=hard" ;; - armv7*) ARCH_FLAGS="--with-arch=armv7-a" ;; - esac - - cd o && CXX="g++ -std=gnu++98" ../configure \ - $ARCH_FLAGS \ - --build=$(sh ../config.guess) \ - --host=$(sh ../config.guess) \ - --target=$TARGET_STAGE1 \ - --prefix="$PREFIX" \ - `# [1]` --libdir="$PREFIX/lib" \ - `# [2]` --with-sysroot=/nonexistentdir \ - --with-newlib \ - `# [3]` --with-local-prefix="$PREFIX" \ - `# [4]` --with-native-system-header-dir="$PREFIX/include" \ - --without-headers \ - --disable-nls \ - --disable-shared \ - --disable-multilib \ - `# [5]` --disable-decimal-float \ - `# [5]` --disable-threads \ - `# [5]` --disable-libatomic \ - `# [5]` --disable-libgomp \ - `# [5]` --disable-libitm \ - `# [5]` --disable-libmpx \ - `# [5]` --disable-libquadmath \ - `# [5]` --disable-libsanitizer \ - `# [5]` --disable-libssp \ - `# [5]` --disable-libvtv \ - `# [5]` --disable-libcilkrts \ - `# [5]` --disable-libstdc++-v3 \ - --enable-languages=c,c++ - -build-commands: -- | - # GCC is not passing the correct host/target flags to GMP's configure - # script, which causes it to not use the machine-dependent code for - # the platform and use the generic one instead. However, the generic - # code results on an undefined reference to `__gmpn_invert_limb' in - # ARMv7. Fix the invocation of GMP's configure script so that GMP can - # use the machine-dependent code. - case "$MORPH_ARCH" in - armv5*) sed -i "s/--host=none/--host=armv5/" o/Makefile - sed -i "s/--target=none/--target=armv5/" o/Makefile ;; - armv7*) sed -i "s/--host=none/--host=armv7a/" o/Makefile - sed -i "s/--target=none/--target=armv7a/" o/Makefile ;; - esac - cd o && make - -install-commands: -- cd o && make DESTDIR="$DESTDIR" install diff --git a/strata/build-essential/stage2-binutils.morph b/strata/build-essential/stage2-binutils.morph deleted file mode 100644 index b07b56a4..00000000 --- a/strata/build-essential/stage2-binutils.morph +++ /dev/null @@ -1,21 +0,0 @@ -name: stage2-binutils -kind: chunk -build-system: autotools - -configure-commands: -- | - export STAGE2_SYSROOT="$(dirname $(pwd))" - export CXX="$TARGET_STAGE1-g++ --sysroot=$STAGE2_SYSROOT" - # binutils has its own embedded libtool, which is old and strips out - # `--sysroot`. Work around by modifying the compiler command to - # include the sysroot flag - export CC="$TARGET_STAGE1-gcc --sysroot=$STAGE2_SYSROOT" - ./configure --prefix="$PREFIX" --disable-nls --disable-werror \ - --build=$(sh config.guess) \ - --host=$TARGET_STAGE1 \ - --target=$TARGET_STAGE1 - -build-commands: -- | - export STAGE2_SYSROOT="$(dirname $(pwd))" - make diff --git a/strata/build-essential/stage2-busybox.morph b/strata/build-essential/stage2-busybox.morph deleted file mode 100644 index f271a40d..00000000 --- a/strata/build-essential/stage2-busybox.morph +++ /dev/null @@ -1,80 +0,0 @@ -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- KCONFIG_NOTIMESTAMP=1 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. -- 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_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_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 -- sed -e 's/CONFIG_INIT=y.*/# CONFIG_INIT is not set/' -i .config -- sed -e 's/CONFIG_INIT_TERMINAL_TYPE=y.*/CONFIG_INIT_TERMINAL_TYPE=""/' -i .config -- sed -e 's/CONFIG_LOSETUP=y.*/# CONFIG_LOSETUP is not set/' -i .config -- sed -e 's/CONFIG_LSUSB=y.*/# CONFIG_LSUSB is not set/' -i .config -- sed -e 's/CONFIG_LZMA=y.*/# CONFIG_LZMA is not set/' -i .config -- sed -e 's/CONFIG_MKFS_EXT2=y.*/# CONFIG_MKFS_EXT2 is not set/' -i .config -- sed -e 's/CONFIG_MKFS_MINIX=y.*/# CONFIG_MKFS_MINIX is not set/' -i .config -- sed -e 's/CONFIG_RUNLEVEL=y.*/# CONFIG_RUNLEVEL is not set/' -i .config -- sed -e 's/CONFIG_STRINGS=y.*/# CONFIG_STRINGS is not set/' -i .config -- 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="--sysroot=$STAGE2_SYSROOT" - make HOSTCC="/usr/bin/gcc" CROSS_COMPILE=$TARGET_STAGE1- KCONFIG_NOTIMESTAMP=1 - -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" - export LDFLAGS="--sysroot=$STAGE2_SYSROOT" - make CONFIG_PREFIX="$DESTDIR$PREFIX" \ - HOSTCC="/usr/bin/gcc" \ - CROSS_COMPILE=$TARGET_STAGE1- \ - KCONFIG_NOTIMESTAMP=1 install && - chmod 6755 "$DESTDIR$PREFIX"/bin/busybox diff --git a/strata/build-essential/stage2-fake-bash.morph b/strata/build-essential/stage2-fake-bash.morph deleted file mode 100644 index 021fd366..00000000 --- a/strata/build-essential/stage2-fake-bash.morph +++ /dev/null @@ -1,4 +0,0 @@ -name: stage2-fake-bash -kind: chunk -install-commands: -- printf '#!/bin/sh\nexec /bin/sh "$@"\n' | install -D /proc/self/fd/0 -m 755 "$DESTDIR$PREFIX/bin/bash" diff --git a/strata/build-essential/stage2-fhs-dirs.morph b/strata/build-essential/stage2-fhs-dirs.morph deleted file mode 100644 index 6f842403..00000000 --- a/strata/build-essential/stage2-fhs-dirs.morph +++ /dev/null @@ -1,51 +0,0 @@ -name: stage2-fhs-dirs -kind: chunk -description: create the FHS 2.3 directory hierarchy and the usual files -install-commands: -- sh ./create-fhs-dirs "$DESTDIR" -- rmdir "$DESTDIR/usr/bin" -- ln -s "$PREFIX/bin" "$DESTDIR/usr/bin" -- install -m 644 passwd "$DESTDIR/etc/passwd" -- install -m 600 shadow "$DESTDIR/etc/shadow" -- install -m 644 interfaces "$DESTDIR/etc/network/interfaces" -- install -m 644 group "$DESTDIR/etc/group" -- install -m 644 issue "$DESTDIR/etc/issue" -- install -m 644 services "$DESTDIR/etc/services" -- install -m 644 protocols "$DESTDIR/etc/protocols" -- echo baserock > "$DESTDIR"/etc/hostname -devices: -- type: c - filename: /dev/console - gid: 0 - major: 5 - minor: 1 - permissions: '0600' - uid: 0 -- type: c - filename: /dev/full - gid: 0 - major: 1 - minor: 7 - permissions: '0666' - uid: 0 -- type: c - filename: /dev/null - gid: 0 - major: 1 - minor: 3 - permissions: '0666' - uid: 0 -- type: c - filename: /dev/urandom - gid: 0 - major: 1 - minor: 9 - permissions: '0666' - uid: 0 -- type: c - filename: /dev/zero - gid: 0 - major: 1 - minor: 5 - permissions: '0666' - uid: 0 diff --git a/strata/build-essential/stage2-gawk.morph b/strata/build-essential/stage2-gawk.morph deleted file mode 100644 index 15c838b6..00000000 --- a/strata/build-essential/stage2-gawk.morph +++ /dev/null @@ -1,9 +0,0 @@ -name: stage2-gawk -kind: chunk -build-system: autotools -configure-commands: -- STAGE2_SYSROOT="$(dirname $(pwd))" CPPFLAGS="--sysroot=$STAGE2_SYSROOT" CXX=false - LDFLAGS="--sysroot=$STAGE2_SYSROOT" ./configure --prefix="$PREFIX" --disable-nls - --build=$(sh config.guess) --host=$TARGET_STAGE1 -build-commands: -- STAGE2_SYSROOT="$(dirname $(pwd))" make diff --git a/strata/build-essential/stage2-gcc-fixed-headers.morph b/strata/build-essential/stage2-gcc-fixed-headers.morph deleted file mode 100644 index 10794872..00000000 --- a/strata/build-essential/stage2-gcc-fixed-headers.morph +++ /dev/null @@ -1,19 +0,0 @@ -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)")" - target_libgcc_dir="${libgcc_dir#$sysroot}" - 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 deleted file mode 100644 index 6f211e83..00000000 --- a/strata/build-essential/stage2-gcc.morph +++ /dev/null @@ -1,81 +0,0 @@ -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 runs in the bootstrap machine, and -# targets the same machine (TARGET_STAGE1) so that the stage 1 GCC -# is used instead of the compiler of the build machine. -# 2. See gcc.morph. -# 3. Disable searching /usr/local/include for headers -# 4. This flag causes the correct --sysroot flag to be passed when -# calling stage 1 GCC. -- | - case "$MORPH_ARCH" in - armv7lhf) ARCH_FLAGS="--with-arch=armv7-a \ - --with-tune=cortex-a9 \ - --with-fpu=vfpv3-d16 \ - --with-float=hard" ;; - armv7*) ARCH_FLAGS="--with-arch=armv7-a" ;; - esac - export STAGE2_SYSROOT="$(dirname $(pwd))" - export CC="$TARGET_STAGE1-gcc --sysroot=$STAGE2_SYSROOT" - export CXX="$TARGET_STAGE1-g++ --sysroot=$STAGE2_SYSROOT" - export AR="$TARGET_STAGE1-ar" - export RANLIB="$TARGET_STAGE1-ranlib" - cd o && ../configure \ - $ARCH_FLAGS \ - --build=$(sh ../config.guess) \ - `# [1]` --host=$TARGET_STAGE1 \ - `# [1]` --target=$TARGET_STAGE1 \ - --prefix="$PREFIX" \ - `# [2]` --libdir=$PREFIX/lib \ - `# [3]` --with-local-prefix=$PREFIX \ - `# [4]` --with-build-sysroot="$STAGE2_SYSROOT" \ - --disable-bootstrap \ - --disable-nls \ - --disable-multilib \ - --disable-libgomp \ - --disable-libstdcxx-pch \ - --enable-languages=c,c++ - -build-commands: -- | - case "$MORPH_ARCH" in - armv5*) sed -i "s/--host=none/--host=armv5/" o/Makefile - sed -i "s/--target=none/--target=armv5/" o/Makefile ;; - armv7*) sed -i "s/--host=none/--host=armv7a/" o/Makefile - sed -i "s/--target=none/--target=armv7a/" o/Makefile ;; - esac - 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 - else - libdir=lib - fi - - install -d "$DESTDIR/lib" - ln -s "$PREFIX/$libdir/libgcc_s.so" "$DESTDIR/lib/" - ln -s "$PREFIX/$libdir/libgcc_s.so.1" "$DESTDIR/lib/" diff --git a/strata/build-essential/stage2-glibc.morph b/strata/build-essential/stage2-glibc.morph deleted file mode 100644 index d2ead6c6..00000000 --- a/strata/build-essential/stage2-glibc.morph +++ /dev/null @@ -1,108 +0,0 @@ -name: stage2-glibc -kind: chunk -build-system: manual - -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*) - ARCH_FLAGS="--without-fp" ;; - esac - - export CFLAGS="-O2 $CFLAGS"; export CXX=false; \ - cd o && ../configure \ - $ARCH_FLAGS \ - --build=$(../scripts/config.guess) --host=$TARGET_STAGE1 \ - --prefix="$PREFIX" \ - --enable-obsolete-rpc \ - `# [1]` --libdir="$PREFIX/lib" \ - `# [2]` --with-headers="$(pwd)/../../$PREFIX/include" \ - `# [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 -- mkdir -p "$DESTDIR/etc" -- mkdir -p "$DESTDIR/etc/ld.so.conf.d" -- | - cat <<EOF > ld.so.conf - /lib - /usr/lib - /usr/local/lib - include /etc/ld.so.conf.d/*.conf - EOF -- install -m 644 -o root -g root ld.so.conf "$DESTDIR/etc/ld.so.conf" -- | - # Fix up GCC to handle the sysroot containing glibc being in a different - # location for each chunk build. - # - # For headers, it's enough to pass -B in the CPPFLAGS. This would work for - # the startup files (crt*.o) as well, except where libtool is involved (in - # which case it strips -B out of your LDFLAGS before calling GCC). We get - # around this by making GCC locate them relative to the environment variable - # STAGE2_SYSROOT, which we can then set along with CPPFLAGS in each stage 2 - # chunk build. - # - # We also force the use of the program loader at PREFIX/lib/ld.so instead - # of its usual home in /lib or /lib64, which is necessary for the output of - # stage 2 to work as a chroot when building stage 3. - - sysroot="$(dirname "$(pwd)")" - specs_dir="$(dirname $($TARGET_STAGE1-gcc --print-libgcc-file-name))" - target_specs_dir="$DESTDIR/${specs_dir#$sysroot}" - mkdir -p "$target_specs_dir" - - $TARGET_STAGE1-gcc -dumpspecs | - sed -e "s@[gMS]\?crt[1in].o%s@%:getenv(STAGE2_SYSROOT $PREFIX/lib/&)@g" \ - -e "s@/lib\(64\)\?/ld@$PREFIX/lib/ld@g" \ - > "$target_specs_dir/specs-for-sysroot" - - # NASTY HACK # - # We create a symlink to the actual specs here, so that later the - # symlink can be replaced with a dangling link. - # - # This is necessary as we need to have gcc use its internal specs, - # which can differ to the specs generated by `gcc -dumpspecs`. - # - # The dangling symlink will not make it onto the final system, just - # like all other bootstrap only components. - ln -s specs-for-sysroot "$target_specs_dir/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 -- | - case "$MORPH_ARCH" in - x86_64) - install -d "$DESTDIR/lib64" - ln -s "$PREFIX/lib/ld-linux-x86-64.so.2" \ - "$DESTDIR/lib64/ld-linux-x86-64.so.2" ;; - ppc64l) - install -d "$DESTDIR/lib64" - ln -s "$PREFIX/lib/ld64.so.2" \ - "$DESTDIR/lib64/ld64.so.2" ;; - ppc64|ppc64b) - install -d "$DESTDIR/lib64" - ln -s "$PREFIX/lib/ld64.so.1" \ - "$DESTDIR/lib64/ld64.so.1" ;; - *) - loader=$(basename $(ls "$DESTDIR$PREFIX"/lib/ld-linux*)) - [ -z $loader ] && loader=$(basename $(ls "$DESTDIR$PREFIX"/lib/ld.so*)) - [ -z $loader ] && ( echo "Bug in stage2-glibc ld.so symlinks" ; exit 1 ) - ln -s "$PREFIX/lib/$loader" "$DESTDIR/lib/$loader" - esac diff --git a/strata/build-essential/stage2-libstdc++.morph b/strata/build-essential/stage2-libstdc++.morph deleted file mode 100644 index 79a40308..00000000 --- a/strata/build-essential/stage2-libstdc++.morph +++ /dev/null @@ -1,36 +0,0 @@ -name: stage2-libstdc++ -kind: chunk -configure-commands: -- mkdir o - -# Configure flag notes: -# 1. The thread C++ library cannot be built, as the thread C library -# was not build in stage1-gcc. -# 2. Prevents the installation of precompiled include files, which are -# not needed at this stage. -# 3. From LFS: the header location of C++ needs to be explicitly given -# as we are running the configure script from the top-level -# directory. -- | - export STAGE2_SYSROOT="$(dirname $(pwd))" - # -fPIC must be given, otherwise it will not be possible to create - # shared libraries linked to libstdc++ - export CPPFLAGS="--sysroot=$STAGE2_SYSROOT -fPIC" - export LDFLAGS="--sysroot=$STAGE2_SYSROOT" - cd o && ../libstdc++-v3/configure \ - --build=$(sh ../config.guess) \ - --host="$TARGET_STAGE1" \ - --target="$TARGET_STAGE1" \ - --prefix="$PREFIX" \ - --disable-nls \ - --disable-shared \ - --disable-multilib \ - `# [1]` --disable-libstdcxx-threads \ - `# [2]` --disable-libstdcxx-pch \ - `# [3]` --with-gxx-include-dir=/tools/"$TARGET_STAGE1"/include/c++/7.1.0 - -build-commands: -- cd o && make - -install-commands: -- cd o && make DESTDIR="$DESTDIR" install diff --git a/strata/build-essential/stage2-linux-api-headers.morph b/strata/build-essential/stage2-linux-api-headers.morph deleted file mode 100644 index 1da94ee9..00000000 --- a/strata/build-essential/stage2-linux-api-headers.morph +++ /dev/null @@ -1,24 +0,0 @@ -name: stage2-linux-api-headers -kind: chunk -install-commands: -- | - case "$MORPH_ARCH" in - armv5l) - ARCH="arm" ;; - armv7b|armv7l|armv7lhf) - ARCH="arm" ;; - armv8l64|armv8b64) - ARCH="arm64" ;; - x86_32) - ARCH="i386" ;; - x86_64) - ARCH="x86_64" ;; - ppc64) - ARCH="powerpc" ;; - *) - echo "Error: unsupported Morph architecture: $MORPH_ARCH" >&2 - exit 1 - esac - ARCH=$ARCH make INSTALL_HDR_PATH=dest headers_install -- install -d "$DESTDIR${PREFIX-/usr}/include" -- cp -r dest/include/* "$DESTDIR/${PREFIX-/usr}/include" diff --git a/strata/build-essential/stage2-make.morph b/strata/build-essential/stage2-make.morph deleted file mode 100644 index af5e5347..00000000 --- a/strata/build-essential/stage2-make.morph +++ /dev/null @@ -1,9 +0,0 @@ -name: stage2-make -kind: chunk -build-system: autotools -configure-commands: -- STAGE2_SYSROOT="$(dirname $(pwd))" CPPFLAGS="--sysroot=$STAGE2_SYSROOT" CXX=false - LDFLAGS="--sysroot=$STAGE2_SYSROOT" ./configure --prefix="$PREFIX" --disable-nls --without-guile - --build=$(sh config/config.guess) --host=$TARGET_STAGE1 -build-commands: -- STAGE2_SYSROOT="$(dirname $(pwd))" make diff --git a/strata/build-essential/stage2-reset-specs.morph b/strata/build-essential/stage2-reset-specs.morph deleted file mode 100644 index 8892f67c..00000000 --- a/strata/build-essential/stage2-reset-specs.morph +++ /dev/null @@ -1,21 +0,0 @@ -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)")" - specs_dir="$(dirname $($TARGET_STAGE1-gcc -print-libgcc-file-name))" - target_specs_dir="$DESTDIR/${specs_dir#$STAGE2_SYSROOT}" - mkdir -p "$target_specs_dir" - ln -s "temporary specs removed by baserock bootstrap" "$target_specs_dir/specs" diff --git a/strata/build-essential/zlib.morph b/strata/build-essential/zlib.morph deleted file mode 100644 index 900648b6..00000000 --- a/strata/build-essential/zlib.morph +++ /dev/null @@ -1,9 +0,0 @@ -name: zlib -kind: chunk -build-system: manual -configure-commands: -- ./configure --prefix="$PREFIX" -build-commands: -- make -install-commands: -- make DESTDIR="$DESTDIR" install |