summaryrefslogtreecommitdiff
path: root/elements/gnu-toolchain/stage2-busybox.bst
diff options
context:
space:
mode:
Diffstat (limited to 'elements/gnu-toolchain/stage2-busybox.bst')
-rw-r--r--elements/gnu-toolchain/stage2-busybox.bst101
1 files changed, 101 insertions, 0 deletions
diff --git a/elements/gnu-toolchain/stage2-busybox.bst b/elements/gnu-toolchain/stage2-busybox.bst
new file mode 100644
index 00000000..a1774abd
--- /dev/null
+++ b/elements/gnu-toolchain/stage2-busybox.bst
@@ -0,0 +1,101 @@
+kind: manual
+
+sources:
+- kind: git
+ url: upstream:busybox
+ track: 1_23_1
+ ref: 1ecfe811fe2f70380170ef7d820e8150054e88ca
+
+depends:
+- filename: gnu-toolchain/stage1.bst
+ type: build
+- filename: gnu-toolchain/stage2-fhs-dirs.bst
+ type: runtime
+- gnu-toolchain/stage2-linux-api-headers.bst
+- gnu-toolchain/stage2-glibc.bst
+
+variables:
+ prefix: /tools
+
+environment:
+ PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin
+
+config:
+
+ 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 $(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 $(dirname $(pwd)))"
+ export CPPFLAGS="--sysroot=$STAGE2_SYSROOT"
+ export LDFLAGS="--sysroot=$STAGE2_SYSROOT"
+ make CONFIG_PREFIX="%{install-root}%{prefix}" \
+ HOSTCC="/usr/bin/gcc" \
+ CROSS_COMPILE=%{target-stage1}- \
+ KCONFIG_NOTIMESTAMP=1 install &&
+ chmod 6755 "%{install-root}%{prefix}"/bin/busybox