diff options
-rw-r--r-- | elements/gnu-toolchain/stage2-binutils.bst | 4 | ||||
-rw-r--r-- | elements/gnu-toolchain/stage2-gawk.bst | 4 | ||||
-rw-r--r-- | elements/gnu-toolchain/stage2-gcc.bst | 4 | ||||
-rw-r--r-- | elements/gnu-toolchain/stage2-glibc.bst | 4 | ||||
-rw-r--r-- | elements/gnu-toolchain/stage2-libstdcxx.bst | 4 | ||||
-rw-r--r-- | elements/gnu-toolchain/stage2-make.bst | 4 | ||||
-rw-r--r-- | project.conf | 20 |
7 files changed, 44 insertions, 0 deletions
diff --git a/elements/gnu-toolchain/stage2-binutils.bst b/elements/gnu-toolchain/stage2-binutils.bst index e3ef2eaa..612b31b6 100644 --- a/elements/gnu-toolchain/stage2-binutils.bst +++ b/elements/gnu-toolchain/stage2-binutils.bst @@ -38,3 +38,7 @@ config: - | export STAGE2_SYSROOT="$(dirname $(dirname $(pwd)))" make + + strip-commands: + - | + %{stage2-strip-binaries} diff --git a/elements/gnu-toolchain/stage2-gawk.bst b/elements/gnu-toolchain/stage2-gawk.bst index 1c15d53a..aa80f829 100644 --- a/elements/gnu-toolchain/stage2-gawk.bst +++ b/elements/gnu-toolchain/stage2-gawk.bst @@ -28,3 +28,7 @@ config: --build=$(sh config.guess) --host=%{target-stage1} build-commands: - STAGE2_SYSROOT="$(dirname $(dirname $(pwd)))" make + + strip-commands: + - | + %{stage2-strip-binaries} diff --git a/elements/gnu-toolchain/stage2-gcc.bst b/elements/gnu-toolchain/stage2-gcc.bst index beaff58f..dffa4439 100644 --- a/elements/gnu-toolchain/stage2-gcc.bst +++ b/elements/gnu-toolchain/stage2-gcc.bst @@ -100,3 +100,7 @@ config: 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/" + + strip-commands: + - | + %{stage2-strip-binaries} diff --git a/elements/gnu-toolchain/stage2-glibc.bst b/elements/gnu-toolchain/stage2-glibc.bst index 8c75e788..fd2c9b88 100644 --- a/elements/gnu-toolchain/stage2-glibc.bst +++ b/elements/gnu-toolchain/stage2-glibc.bst @@ -129,3 +129,7 @@ config: [ -z $loader ] && ( echo "Bug in stage2-glibc ld.so symlinks" ; exit 1 ) ln -s "%{prefix}/lib/$loader" "%{install-root}/lib/$loader" esac + + strip-commands: + - | + %{stage2-strip-binaries} diff --git a/elements/gnu-toolchain/stage2-libstdcxx.bst b/elements/gnu-toolchain/stage2-libstdcxx.bst index 12ea73fa..58055e8b 100644 --- a/elements/gnu-toolchain/stage2-libstdcxx.bst +++ b/elements/gnu-toolchain/stage2-libstdcxx.bst @@ -53,3 +53,7 @@ config: install-commands: - cd o && make DESTDIR="%{install-root}" install + + strip-commands: + - | + %{stage2-strip-binaries} diff --git a/elements/gnu-toolchain/stage2-make.bst b/elements/gnu-toolchain/stage2-make.bst index 9c804f1b..0cb4cdb4 100644 --- a/elements/gnu-toolchain/stage2-make.bst +++ b/elements/gnu-toolchain/stage2-make.bst @@ -27,3 +27,7 @@ config: --build=$(sh config/config.guess) --host=%{target-stage1} build-commands: - STAGE2_SYSROOT="$(dirname $(dirname $(pwd)))" make + + strip-commands: + - | + %{stage2-strip-binaries} diff --git a/project.conf b/project.conf index 36da61d4..83a09073 100644 --- a/project.conf +++ b/project.conf @@ -14,6 +14,26 @@ variables: target-stage1: "%{cpu}-bootstrap-linux-%{abi}" target: "%{cpu}-baserock-linux-%{abi}" + # This should match the %{strip-binaries} variable in BuildStream's default + # project config. But when doing a cross-build of stage2.bst we need to force + # use the cross binutils; the native binutils from the base sysroot will + # ignore the non-native binaries and leave them unstripped. + stage2-strip-binaries: | + find "%{install-root}" -type f \ + '(' -perm -111 -o -name '*.so*' \ + -o -name '*.cmxs' -o -name '*.node' ')' \ + -exec sh -ec \ + 'read -n4 hdr <"$1" # check for elf header + if [ "$hdr" != "$(printf \\x7fELF)" ]; then + exit 0 + fi + debugfile="%{install-root}%{debugdir}/$(basename "$1")" + mkdir -p "$(dirname "$debugfile")" + %{target-stage1}-objcopy --only-keep-debug "$1" "$debugfile" + chmod 644 "$debugfile" + %{target-stage1}-strip --remove-section=.comment --remove-section=.note --strip-unneeded "$1" + %{target-stage1}-objcopy --add-gnu-debuglink "$debugfile" "$1"' - {} ';' + # Resolve the cpu and ABI portions of the host triple based # on architecture names. arches: |