summaryrefslogtreecommitdiff
path: root/build-essential
diff options
context:
space:
mode:
Diffstat (limited to 'build-essential')
-rw-r--r--build-essential/binutils.bst24
-rw-r--r--build-essential/busybox.bst104
-rw-r--r--build-essential/ccache.bst28
-rw-r--r--build-essential/fhs-dirs.bst26
-rw-r--r--build-essential/gawk.bst20
-rw-r--r--build-essential/gcc.bst67
-rw-r--r--build-essential/glibc.bst77
-rw-r--r--build-essential/gnome-platform.bst27
-rw-r--r--build-essential/gnome-sdk.bst20
-rw-r--r--build-essential/linux-api-headers.bst39
-rw-r--r--build-essential/m4-tarball.bst20
-rw-r--r--build-essential/make.bst21
-rw-r--r--build-essential/stage1-binutils.bst38
-rw-r--r--build-essential/stage1-gcc.bst100
-rw-r--r--build-essential/stage1.bst7
-rw-r--r--build-essential/stage2-binutils.bst40
-rw-r--r--build-essential/stage2-busybox.bst101
-rw-r--r--build-essential/stage2-fake-bash.bst17
-rw-r--r--build-essential/stage2-fhs-dirs.bst31
-rw-r--r--build-essential/stage2-gawk.bst30
-rw-r--r--build-essential/stage2-gcc-fixed-headers.bst37
-rw-r--r--build-essential/stage2-gcc.bst102
-rw-r--r--build-essential/stage2-glibc.bst122
-rw-r--r--build-essential/stage2-libstdcxx.bst55
-rw-r--r--build-essential/stage2-linux-api-headers.bst41
-rw-r--r--build-essential/stage2-make.bst29
-rw-r--r--build-essential/stage2-reset-specs.bst35
-rw-r--r--build-essential/stage2.bst22
-rw-r--r--build-essential/zlib.bst23
29 files changed, 0 insertions, 1303 deletions
diff --git a/build-essential/binutils.bst b/build-essential/binutils.bst
deleted file mode 100644
index a71a2e6b..00000000
--- a/build-essential/binutils.bst
+++ /dev/null
@@ -1,24 +0,0 @@
-kind: autotools
-
-sources:
-- kind: git
- url: upstream:binutils-tarball
- track: binutils-2.25
- ref: 5500a97a2ad1735db5b35bc51cfb825c1f4c38df
-
-depends:
-- filename: build-essential/stage2.bst
- type: build
-- build-essential/fhs-dirs.bst
-- build-essential/glibc.bst
-- build-essential/zlib.bst
-
-environment:
- PATH: /usr/bin:/bin:/usr/sbin:/sbin:/tools/bin:/tools/sbin
-
-config:
-
- configure-commands:
- - |
- ./configure --prefix="%{prefix}" --disable-nls --disable-werror \
- --with-system-zlib
diff --git a/build-essential/busybox.bst b/build-essential/busybox.bst
deleted file mode 100644
index 5029ce72..00000000
--- a/build-essential/busybox.bst
+++ /dev/null
@@ -1,104 +0,0 @@
-kind: manual
-
-sources:
-- kind: git
- url: upstream:busybox
- track: 1_23_1
- ref: 1ecfe811fe2f70380170ef7d820e8150054e88ca
-
-depends:
-- filename: build-essential/stage2.bst
- type: build
-- build-essential/fhs-dirs.bst
-- build-essential/glibc.bst
-
-environment:
- PATH: /usr/bin:/bin:/usr/sbin:/sbin:/tools/bin:/tools/sbin
-
-config:
- 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:
- - |
- # Note here we intentionally ignore '%{prefix}', this is going into '/'
- make CONFIG_PREFIX="%{install-root}" KCONFIG_NOTIMESTAMP=1 install &&
- chmod 6755 "%{install-root}/bin/busybox"
-
- # Set up man environment variables
- - mkdir -p "%{install-root}/etc"
- - |
- cat << EOF > "%{install-root}/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/build-essential/ccache.bst b/build-essential/ccache.bst
deleted file mode 100644
index 76111195..00000000
--- a/build-essential/ccache.bst
+++ /dev/null
@@ -1,28 +0,0 @@
-kind: autotools
-
-sources:
-- kind: git
- url: upstream:ccache
- track: baserock/build-essential
- ref: 567631456f0899cdf0c382f898d38aadc8901d32
-
-depends:
-- filename: build-essential/stage2.bst
- type: build
-- build-essential/fhs-dirs.bst
-- build-essential/glibc.bst
-- build-essential/zlib.bst
-
-environment:
- PATH: /usr/bin:/bin:/usr/sbin:/sbin:/tools/bin:/tools/sbin
-
-config:
- configure-commands:
- - ./configure --prefix="%{prefix}"
- install-commands:
- - make DESTDIR="%{install-root}" install
- - mkdir -p "%{install-root}%{prefix}/lib/ccache"
- - for cc in gcc cc g++ c++; do ln -sf "%{prefix}/bin/ccache" "%{install-root}%{prefix}/lib/ccache/$cc";
- done
- - for cc in gcc cc g++ c++; do ln -sf "%{prefix}/bin/ccache" "%{install-root}%{prefix}/lib/ccache/%{target}-$cc";
- done
diff --git a/build-essential/fhs-dirs.bst b/build-essential/fhs-dirs.bst
deleted file mode 100644
index 197d6e96..00000000
--- a/build-essential/fhs-dirs.bst
+++ /dev/null
@@ -1,26 +0,0 @@
-kind: manual
-
-sources:
-- kind: git
- url: baserock:baserock/fhs-dirs
- track: master
- ref: 9fafca436000bb57ddd5c498f8a75ea7b274f6c5
-
-depends:
-- filename: build-essential/stage2.bst
- type: build
-
-environment:
- PATH: /usr/bin:/bin:/usr/sbin:/sbin:/tools/bin:/tools/sbin
-
-config:
- install-commands:
- - sh ./create-fhs-dirs "%{install-root}"
- - install -m 644 passwd "%{install-root}/etc/passwd"
- - install -m 600 shadow "%{install-root}/etc/shadow"
- - install -m 644 interfaces "%{install-root}/etc/network/interfaces"
- - install -m 644 group "%{install-root}/etc/group"
- - install -m 644 issue "%{install-root}/etc/issue"
- - install -m 644 services "%{install-root}/etc/services"
- - install -m 644 protocols "%{install-root}/etc/protocols"
- - echo baserock > "%{install-root}/etc/hostname"
diff --git a/build-essential/gawk.bst b/build-essential/gawk.bst
deleted file mode 100644
index c6169d13..00000000
--- a/build-essential/gawk.bst
+++ /dev/null
@@ -1,20 +0,0 @@
-kind: autotools
-
-sources:
-- kind: git
- url: upstream:gawk
- track: gawk-4.1-stable
- ref: 925f9363c4b0a5bb9375298afcdcf404efb32587
-
-depends:
-- filename: build-essential/stage2.bst
- type: build
-- build-essential/fhs-dirs.bst
-- build-essential/glibc.bst
-
-environment:
- PATH: /usr/bin:/bin:/usr/sbin:/sbin:/tools/bin:/tools/sbin
-
-config:
- configure-commands:
- - ./configure --prefix="%{prefix}" --disable-nls
diff --git a/build-essential/gcc.bst b/build-essential/gcc.bst
deleted file mode 100644
index 7b1f1c4b..00000000
--- a/build-essential/gcc.bst
+++ /dev/null
@@ -1,67 +0,0 @@
-kind: manual
-
-sources:
-- kind: git
- url: upstream:gcc-tarball
- track: baserock/build-essential
- ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
-
-depends:
-- filename: build-essential/stage2.bst
- type: build
-- build-essential/fhs-dirs.bst
-- build-essential/linux-api-headers.bst
-- build-essential/glibc.bst
-- build-essential/zlib.bst
-- build-essential/m4-tarball.bst
-
-environment:
- PATH: /usr/bin:/bin:/usr/sbin:/sbin:/tools/bin:/tools/sbin
-
-config:
-
- 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 "%{bst-arch}" in
- armv7lhf) ARCH_FLAGS="--with-arch=armv7-a \
- --with-cpu=cortex-a9 \
- --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 "%{bst-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="%{install-root}" install
- - ln -s gcc "%{install-root}%{prefix}/bin/cc"
- - |
- for fortran_alias in f77 f90 f95; do
- ln -s gfortran "%{install-root}%{prefix}/bin/$fortran_alias"
- done
diff --git a/build-essential/glibc.bst b/build-essential/glibc.bst
deleted file mode 100644
index b1baf608..00000000
--- a/build-essential/glibc.bst
+++ /dev/null
@@ -1,77 +0,0 @@
-kind: manual
-
-sources:
-- kind: git
- url: upstream:glibc
- track: release/2.22/master
- ref: b995d95a5943785be3ab862b2d3276f3b4a22481
-
-depends:
-- filename: build-essential/stage2.bst
- type: build
-- build-essential/fhs-dirs.bst
-- build-essential/linux-api-headers.bst
-
-environment:
- PATH: /usr/bin:/bin:/usr/sbin:/sbin:/tools/bin:/tools/sbin
-
-config:
-
- configure-commands:
- - mkdir o
-
- - |
- case "%{bst-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="%{install-root}" localtime=UTC install
- - cd o && make install_root="%{install-root}" localtime=UTC localedata/install-locales
- - mkdir -p "%{install-root}/etc"
- - mkdir -p "%{install-root}/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 "%{install-root}/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 "%{install-root}/etc/ld.so.conf"
diff --git a/build-essential/gnome-platform.bst b/build-essential/gnome-platform.bst
deleted file mode 100644
index fd5efb6b..00000000
--- a/build-essential/gnome-platform.bst
+++ /dev/null
@@ -1,27 +0,0 @@
-kind: import
-description: Import the GNOME Platform
-config:
- source: files
-public:
- bst:
- integration-commands:
- - ldconfig
- - |
- if [ -d "/app/share/glib-2.0/schemas" ]; then
- glib-compile-schemas /app/share/glib-2.0/schemas
- fi
-arches:
- x86_64:
- sources:
- - kind: ostree
- url: gnomesdk:repo/
- track: runtime/org.gnome.Platform/x86_64/3.22
- gpg-key: keys/gnome-sdk.gpg
- ref: af7b50663d808bf5cc6eb7538a3481b29c34864d71b719562246071113a18327
- i386:
- sources:
- - kind: ostree
- url: gnomesdk:repo/
- track: runtime/org.gnome.Platform/i386/3.22
- gpg-key: keys/gnome-sdk.gpg
- ref: 8c86378e95d305097e64a7b04e23595773ab894ed5d216b49777a22819bff08f
diff --git a/build-essential/gnome-sdk.bst b/build-essential/gnome-sdk.bst
deleted file mode 100644
index 6b0f158f..00000000
--- a/build-essential/gnome-sdk.bst
+++ /dev/null
@@ -1,20 +0,0 @@
-kind: import
-description: Import the GNOME SDK
-config:
- source: files
- target: usr
-arches:
- x86_64:
- sources:
- - kind: ostree
- url: gnomesdk:repo/
- track: runtime/org.gnome.Sdk/x86_64/3.22
- gpg-key: keys/gnome-sdk.gpg
- ref: bc2d97521fa42ca824b4d28b1b7746e275820b26aa63c9ae08d6aa5eefcfee20
- i386:
- sources:
- - kind: ostree
- url: gnomesdk:repo/
- track: runtime/org.gnome.Sdk/i386/3.22
- gpg-key: keys/gnome-sdk.gpg
- ref: f5616d5b7257a81a8e8b08c34cd7ffcfe3b79c80439c969799dc8617fd9ac5c5
diff --git a/build-essential/linux-api-headers.bst b/build-essential/linux-api-headers.bst
deleted file mode 100644
index f05a6546..00000000
--- a/build-essential/linux-api-headers.bst
+++ /dev/null
@@ -1,39 +0,0 @@
-kind: manual
-
-sources:
-- kind: git
- url: upstream:linux
- track: v4.0
- ref: 39a8804455fb23f09157341d3ba7db6d7ae6ee76
-
-depends:
-- filename: build-essential/stage2.bst
- type: build
-- build-essential/fhs-dirs.bst
-
-environment:
- PATH: /usr/bin:/bin:/usr/sbin:/sbin:/tools/bin:/tools/sbin
-
-config:
- install-commands:
- - |
- case "%{bst-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: %{bst-arch}" >&2
- exit 1
- esac
- ARCH=$ARCH make INSTALL_HDR_PATH=dest headers_install
- - install -d "%{install-root}%{includedir}"
- - cp -r dest/include/* "%{install-root}%{includedir}"
diff --git a/build-essential/m4-tarball.bst b/build-essential/m4-tarball.bst
deleted file mode 100644
index 26d123ba..00000000
--- a/build-essential/m4-tarball.bst
+++ /dev/null
@@ -1,20 +0,0 @@
-kind: autotools
-
-sources:
-- kind: git
- url: upstream:m4-tarball
- track: m4-1.4.17
- ref: 23c11479b3ad787adc7a651ee0c4347839e47723
-
-depends:
-- filename: build-essential/stage2.bst
- type: build
-- build-essential/fhs-dirs.bst
-- build-essential/glibc.bst
-
-environment:
- PATH: /usr/bin:/bin:/usr/sbin:/sbin:/tools/bin:/tools/sbin
-
-config:
- configure-commands:
- - ./configure --prefix="%{prefix}" --disable-gcc-warnings
diff --git a/build-essential/make.bst b/build-essential/make.bst
deleted file mode 100644
index 9723a61f..00000000
--- a/build-essential/make.bst
+++ /dev/null
@@ -1,21 +0,0 @@
-kind: autotools
-
-sources:
-- kind: git
- url: upstream:make-tarball
- track: baserock/make-4.1-ttyname-segfault-fix
- ref: 4978d7129e42340ab9efeb0cb9cae4ad0fa052d4
-
-depends:
-- filename: build-essential/stage2.bst
- type: build
-- build-essential/fhs-dirs.bst
-- build-essential/glibc.bst
-
-environment:
- PATH: /usr/bin:/bin:/usr/sbin:/sbin:/tools/bin:/tools/sbin
-
-config:
-
- configure-commands:
- - ./configure --prefix="%{prefix}" --disable-nls
diff --git a/build-essential/stage1-binutils.bst b/build-essential/stage1-binutils.bst
deleted file mode 100644
index 8c89c7ce..00000000
--- a/build-essential/stage1-binutils.bst
+++ /dev/null
@@ -1,38 +0,0 @@
-kind: autotools
-
-sources:
-- kind: git
- url: upstream:binutils-tarball
- track: binutils-2.25
- ref: 5500a97a2ad1735db5b35bc51cfb825c1f4c38df
-
-depends:
-- build-essential/gnome-platform.bst
-- build-essential/gnome-sdk.bst
-
-variables:
- prefix: /tools
-
-environment:
- PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin
-
-config:
- 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} --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/build-essential/stage1-gcc.bst b/build-essential/stage1-gcc.bst
deleted file mode 100644
index 81c4d40a..00000000
--- a/build-essential/stage1-gcc.bst
+++ /dev/null
@@ -1,100 +0,0 @@
-kind: autotools
-
-sources:
-- kind: git
- url: upstream:gcc-tarball
- track: baserock/build-essential
- ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
-
-depends:
-- build-essential/gnome-platform.bst
-- build-essential/gnome-sdk.bst
-- build-essential/stage1-binutils.bst
-
-variables:
- prefix: /tools
-
-environment:
- PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin
-
-config:
- 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 "%{bst-arch}" in
- armv7lhf) ARCH_FLAGS="--with-arch=armv7-a \
- --with-cpu=cortex-a9 \
- --with-tune=cortex-a9 \
- --with-fpu=vfpv3-d16 \
- --with-float=hard" ;;
- armv7*) ARCH_FLAGS="--with-arch=armv7-a" ;;
- esac
-
- cd o && ../configure \
- $ARCH_FLAGS \
- --build=$(sh ../config.guess) \
- --host=$(sh ../config.guess) \
- --target=%{target-stage1} \
- --prefix="%{prefix}" \
- `# [1]` --libdir="%{libdir}" \
- `# [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-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 "%{bst-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="%{install-root}" install
diff --git a/build-essential/stage1.bst b/build-essential/stage1.bst
deleted file mode 100644
index 7304572a..00000000
--- a/build-essential/stage1.bst
+++ /dev/null
@@ -1,7 +0,0 @@
-kind: stack
-
-depends:
-- build-essential/gnome-platform.bst
-- build-essential/gnome-sdk.bst
-- build-essential/stage1-binutils.bst
-- build-essential/stage1-gcc.bst
diff --git a/build-essential/stage2-binutils.bst b/build-essential/stage2-binutils.bst
deleted file mode 100644
index f1a5f6f0..00000000
--- a/build-essential/stage2-binutils.bst
+++ /dev/null
@@ -1,40 +0,0 @@
-kind: autotools
-
-sources:
-- kind: git
- url: upstream:binutils-tarball
- track: binutils-2.25
- ref: 5500a97a2ad1735db5b35bc51cfb825c1f4c38df
-
-depends:
-- filename: build-essential/stage1.bst
- type: build
-- filename: build-essential/stage2-fhs-dirs.bst
- type: runtime
-- build-essential/stage2-linux-api-headers.bst
-- build-essential/stage2-glibc.bst
-
-variables:
- prefix: /tools
-
-environment:
- PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin
-
-config:
- configure-commands:
- - |
- export STAGE2_SYSROOT="$(dirname $(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 $(dirname $(pwd)))"
- make
diff --git a/build-essential/stage2-busybox.bst b/build-essential/stage2-busybox.bst
deleted file mode 100644
index 0b82ed46..00000000
--- a/build-essential/stage2-busybox.bst
+++ /dev/null
@@ -1,101 +0,0 @@
-kind: manual
-
-sources:
-- kind: git
- url: upstream:busybox
- track: 1_23_1
- ref: 1ecfe811fe2f70380170ef7d820e8150054e88ca
-
-depends:
-- filename: build-essential/stage1.bst
- type: build
-- filename: build-essential/stage2-fhs-dirs.bst
- type: runtime
-- build-essential/stage2-linux-api-headers.bst
-- build-essential/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
diff --git a/build-essential/stage2-fake-bash.bst b/build-essential/stage2-fake-bash.bst
deleted file mode 100644
index 2289fc8f..00000000
--- a/build-essential/stage2-fake-bash.bst
+++ /dev/null
@@ -1,17 +0,0 @@
-kind: manual
-
-depends:
-- filename: build-essential/stage1.bst
- type: build
-- filename: build-essential/stage2-fhs-dirs.bst
- type: runtime
-
-variables:
- prefix: /tools
-
-environment:
- PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin
-
-config:
- install-commands:
- - printf '#!/bin/sh\nexec /bin/sh "$@"\n' | install -D /proc/self/fd/0 -m 755 "%{install-root}%{prefix}/bin/bash"
diff --git a/build-essential/stage2-fhs-dirs.bst b/build-essential/stage2-fhs-dirs.bst
deleted file mode 100644
index 9d07d9a2..00000000
--- a/build-essential/stage2-fhs-dirs.bst
+++ /dev/null
@@ -1,31 +0,0 @@
-kind: manual
-
-sources:
-- kind: git
- url: baserock:baserock/fhs-dirs
- track: master
- ref: 9fafca436000bb57ddd5c498f8a75ea7b274f6c5
-
-depends:
-- filename: build-essential/stage1.bst
- type: build
-
-variables:
- prefix: /tools
-
-environment:
- PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin
-
-config:
- install-commands:
- - sh ./create-fhs-dirs "%{install-root}"
- - rmdir "%{install-root}/usr/bin"
- - ln -s "%{prefix}/bin" "%{install-root}/usr/bin"
- - install -m 644 passwd "%{install-root}/etc/passwd"
- - install -m 600 shadow "%{install-root}/etc/shadow"
- - install -m 644 interfaces "%{install-root}/etc/network/interfaces"
- - install -m 644 group "%{install-root}/etc/group"
- - install -m 644 issue "%{install-root}/etc/issue"
- - install -m 644 services "%{install-root}/etc/services"
- - install -m 644 protocols "%{install-root}/etc/protocols"
- - echo baserock > "%{install-root}/etc/hostname"
diff --git a/build-essential/stage2-gawk.bst b/build-essential/stage2-gawk.bst
deleted file mode 100644
index ca1936fb..00000000
--- a/build-essential/stage2-gawk.bst
+++ /dev/null
@@ -1,30 +0,0 @@
-kind: autotools
-
-sources:
-- kind: git
- url: upstream:gawk
- track: gawk-4.1-stable
- ref: 925f9363c4b0a5bb9375298afcdcf404efb32587
-
-depends:
-- filename: build-essential/stage1.bst
- type: build
-- filename: build-essential/stage2-fhs-dirs.bst
- type: runtime
-- build-essential/stage2-linux-api-headers.bst
-- build-essential/stage2-glibc.bst
-
-variables:
- prefix: /tools
-
-environment:
- PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin
-
-config:
-
- configure-commands:
- - STAGE2_SYSROOT="$(dirname $(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 $(dirname $(pwd)))" make
diff --git a/build-essential/stage2-gcc-fixed-headers.bst b/build-essential/stage2-gcc-fixed-headers.bst
deleted file mode 100644
index a83fca25..00000000
--- a/build-essential/stage2-gcc-fixed-headers.bst
+++ /dev/null
@@ -1,37 +0,0 @@
-kind: manual
-
-sources:
-- kind: git
- url: upstream:gcc-tarball
- track: baserock/build-essential
- ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
-
-depends:
-- filename: build-essential/stage1.bst
- type: build
-- build-essential/stage2-linux-api-headers.bst
-- build-essential/stage2-glibc.bst
-
-variables:
- prefix: /tools
-
-environment:
- PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin
-
-config:
- 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 $(dirname $(pwd)))"
- target_libgcc_dir="${libgcc_dir#$sysroot}"
- mkdir -p "%{install-root}/$target_libgcc_dir/include-fixed"
- cat "gcc/limitx.h" "gcc/glimits.h" "gcc/limity.h" \
- >"%{install-root}/$target_libgcc_dir/include-fixed/limits.h"
diff --git a/build-essential/stage2-gcc.bst b/build-essential/stage2-gcc.bst
deleted file mode 100644
index 445fe6f7..00000000
--- a/build-essential/stage2-gcc.bst
+++ /dev/null
@@ -1,102 +0,0 @@
-kind: manual
-
-sources:
-- kind: git
- url: upstream:gcc-tarball
- track: baserock/build-essential
- ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
-
-depends:
-- filename: build-essential/stage1.bst
- type: build
-- build-essential/stage2-linux-api-headers.bst
-- build-essential/stage2-glibc.bst
-- build-essential/stage2-gcc-fixed-headers.bst
-- build-essential/stage2-libstdcxx.bst
-
-variables:
- prefix: /tools
-
-environment:
- PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin
-
-config:
- 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 "%{bst-arch}" in
- armv7lhf) ARCH_FLAGS="--with-arch=armv7-a \
- --with-cpu=cortex-a9 \
- --with-tune=cortex-a9 \
- --with-fpu=vfpv3-d16 \
- --with-float=hard" ;;
- armv7*) ARCH_FLAGS="--with-arch=armv7-a" ;;
- esac
- export STAGE2_SYSROOT="$(dirname $(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 "%{bst-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 $(dirname $(pwd)))"
- cd o && make
-
- install-commands:
- - cd o && make DESTDIR="%{install-root}" 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 "%{install-root}/lib"
- ln -s "%{prefix}/$libdir/libgcc_s.so" "%{install-root}/lib/"
- ln -s "%{prefix}/$libdir/libgcc_s.so.1" "%{install-root}/lib/"
diff --git a/build-essential/stage2-glibc.bst b/build-essential/stage2-glibc.bst
deleted file mode 100644
index dcb11dee..00000000
--- a/build-essential/stage2-glibc.bst
+++ /dev/null
@@ -1,122 +0,0 @@
-kind: manual
-
-sources:
-- kind: git
- url: upstream:glibc
- track: release/2.22/master
- ref: b995d95a5943785be3ab862b2d3276f3b4a22481
-
-depends:
-- filename: build-essential/stage1.bst
- type: build
-- filename: build-essential/stage2-fhs-dirs.bst
- type: runtime
-- build-essential/stage2-linux-api-headers.bst
-
-variables:
- prefix: /tools
-
-environment:
- PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin
-
-config:
-
- 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 "%{bst-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}" \
- `# [1]` --libdir="%{prefix}/lib" \
- `# [2]` --with-headers="%{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="%{install-root}" localtime=UTC install
- - mkdir -p "%{install-root}/etc"
- - mkdir -p "%{install-root}/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 "%{install-root}/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 $(dirname $(pwd)))"
- specs_dir="$(dirname $(%{target-stage1}-gcc --print-libgcc-file-name))"
- target_specs_dir="%{install-root}/${specs_dir#$sysroot}"
- mkdir -p "$target_specs_dir"
-
- %{target-stage1}-gcc -dumpspecs |
- sed -e "s@[gMS]\?crt[1in].o%s@%:getenv(STAGE2_SYSROOT %{libdir}/&)@g" \
- -e "s@/lib\(64\)\?/ld@%{libdir}/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 %{install-root}/lib
- - |
- case "%{bst-arch}" in
- x86_64)
- install -d "%{install-root}/lib64"
- ln -s "%{prefix}/lib/ld-linux-x86-64.so.2" \
- "%{install-root}/lib64/ld-linux-x86-64.so.2" ;;
- ppc64)
- install -d "%{install-root}/lib64"
- ln -s "%{prefix}/lib/ld64.so.1" \
- "%{install-root}/lib64/ld64.so.1" ;;
- *)
- loader=$(basename $(ls "%{install-root}%{prefix}"/lib/ld-linux*))
- [ -z $loader ] && loader=$(basename $(ls "%{install-root}%{prefix}"/lib/ld.so*))
- [ -z $loader ] && ( echo "Bug in stage2-glibc ld.so symlinks" ; exit 1 )
- ln -s "%{prefix}/lib/$loader" "%{install-root}/lib/$loader"
- esac
diff --git a/build-essential/stage2-libstdcxx.bst b/build-essential/stage2-libstdcxx.bst
deleted file mode 100644
index f8a75a23..00000000
--- a/build-essential/stage2-libstdcxx.bst
+++ /dev/null
@@ -1,55 +0,0 @@
-kind: manual
-
-sources:
-- kind: git
- url: upstream:gcc-tarball
- track: baserock/build-essential
- ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
-
-depends:
-- filename: build-essential/stage1.bst
- type: build
-- build-essential/stage2-linux-api-headers.bst
-- build-essential/stage2-glibc.bst
-
-variables:
- prefix: /tools
-
-environment:
- PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin
-
-config:
- 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 $(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++/4.9.2
-
- build-commands:
- - cd o && make
-
- install-commands:
- - cd o && make DESTDIR="%{install-root}" install
diff --git a/build-essential/stage2-linux-api-headers.bst b/build-essential/stage2-linux-api-headers.bst
deleted file mode 100644
index d72106c0..00000000
--- a/build-essential/stage2-linux-api-headers.bst
+++ /dev/null
@@ -1,41 +0,0 @@
-kind: manual
-
-sources:
-- kind: git
- url: upstream:linux
- track: v4.0
- ref: 39a8804455fb23f09157341d3ba7db6d7ae6ee76
-
-depends:
-- filename: build-essential/stage1.bst
- type: build
-
-variables:
- prefix: /tools
-
-environment:
- PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin
-
-config:
- install-commands:
- - |
- case "%{bst-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: %{bst-arch}" >&2
- exit 1
- esac
- ARCH=$ARCH make INSTALL_HDR_PATH=dest headers_install
- - install -d "%{install-root}%{includedir}"
- - cp -r dest/include/* "%{install-root}%{includedir}"
diff --git a/build-essential/stage2-make.bst b/build-essential/stage2-make.bst
deleted file mode 100644
index 3549d626..00000000
--- a/build-essential/stage2-make.bst
+++ /dev/null
@@ -1,29 +0,0 @@
-kind: autotools
-
-sources:
-- kind: git
- url: upstream:make-tarball
- track: baserock/make-4.1-ttyname-segfault-fix
- ref: 4978d7129e42340ab9efeb0cb9cae4ad0fa052d4
-
-depends:
-- filename: build-essential/stage1.bst
- type: build
-- filename: build-essential/stage2-fhs-dirs.bst
- type: runtime
-- build-essential/stage2-linux-api-headers.bst
-- build-essential/stage2-glibc.bst
-
-variables:
- prefix: /tools
-
-environment:
- PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin
-
-config:
- configure-commands:
- - STAGE2_SYSROOT="$(dirname $(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 $(dirname $(pwd)))" make
diff --git a/build-essential/stage2-reset-specs.bst b/build-essential/stage2-reset-specs.bst
deleted file mode 100644
index 5ea3d044..00000000
--- a/build-essential/stage2-reset-specs.bst
+++ /dev/null
@@ -1,35 +0,0 @@
-kind: manual
-
-depends:
-- filename: build-essential/stage1.bst
- type: build
-- filename: build-essential/stage2-fhs-dirs.bst
- type: runtime
-- build-essential/stage2-linux-api-headers.bst
-- build-essential/stage2-glibc.bst
-
-variables:
- prefix: /tools
-
-environment:
- PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin
-
-config:
- # 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 $(dirname $(pwd)))"
- specs_dir="$(dirname $(%{target-stage1}-gcc -print-libgcc-file-name))"
- target_specs_dir="%{install-root}/${specs_dir#$STAGE2_SYSROOT}"
- mkdir -p "$target_specs_dir"
- ln -s "temporary specs removed by baserock bootstrap" "$target_specs_dir/specs"
diff --git a/build-essential/stage2.bst b/build-essential/stage2.bst
deleted file mode 100644
index bfbe3376..00000000
--- a/build-essential/stage2.bst
+++ /dev/null
@@ -1,22 +0,0 @@
-kind: stack
-
-depends:
-- build-essential/stage2-binutils.bst
-- build-essential/stage2-busybox.bst
-- build-essential/stage2-fhs-dirs.bst
-- build-essential/stage2-glibc.bst
-- build-essential/stage2-gawk.bst
-- build-essential/stage2-gcc.bst
-- build-essential/stage2-linux-api-headers.bst
-- build-essential/stage2-make.bst
-- build-essential/stage2-fake-bash.bst
-- build-essential/stage2-reset-specs.bst
-
-# Stage 2 is a minimal base used to build the
-# base runtime, must ldconfig when building on stage2
-public:
- bst:
- integration-commands:
- - |
- # In this stage, it may be that ld.so.conf doesnt exist yet
- ldconfig || exit 0
diff --git a/build-essential/zlib.bst b/build-essential/zlib.bst
deleted file mode 100644
index f64eeb43..00000000
--- a/build-essential/zlib.bst
+++ /dev/null
@@ -1,23 +0,0 @@
-kind: manual
-
-sources:
-- kind: git
- url: upstream:zlib
- track: v1.2.8
- ref: 50893291621658f355bc5b4d450a8d06a563053d
-
-depends:
-- filename: build-essential/stage2.bst
- type: build
-- build-essential/glibc.bst
-
-environment:
- PATH: /usr/bin:/bin:/usr/sbin:/sbin:/tools/bin:/tools/sbin
-
-config:
- configure-commands:
- - ./configure --prefix="%{prefix}"
- build-commands:
- - make
- install-commands:
- - make DESTDIR="%{install-root}" install