diff options
Diffstat (limited to 'elements')
-rw-r--r-- | elements/bsp-generic.bst | 14 | ||||
-rw-r--r-- | elements/gnu-toolchain/base.bst | 14 | ||||
-rw-r--r-- | elements/gnu-toolchain/fhs-dirs.bst | 37 | ||||
-rw-r--r-- | elements/gnu-toolchain/gcc.bst | 59 | ||||
-rw-r--r-- | elements/gnu-toolchain/glibc.bst | 15 | ||||
-rw-r--r-- | elements/gnu-toolchain/linux-api-headers.bst | 45 | ||||
-rw-r--r-- | elements/gnu-toolchain/stage1-gcc.bst | 57 | ||||
-rw-r--r-- | elements/gnu-toolchain/stage2-fhs-dirs.bst | 37 | ||||
-rw-r--r-- | elements/gnu-toolchain/stage2-gcc.bst | 74 | ||||
-rw-r--r-- | elements/gnu-toolchain/stage2-glibc.bst | 78 | ||||
-rw-r--r-- | elements/gnu-toolchain/stage2-linux-api-headers.bst | 46 |
11 files changed, 217 insertions, 259 deletions
diff --git a/elements/bsp-generic.bst b/elements/bsp-generic.bst index 7c16a328..47eb1871 100644 --- a/elements/bsp-generic.bst +++ b/elements/bsp-generic.bst @@ -5,12 +5,8 @@ description: | depends: - bsp-generic/linux.bst -arches: - x86_32: - depends: - - bsp-x86_64-generic/nasm.bst - - bsp-x86_64-generic/syslinux.bst - x86_64: - depends: - - bsp-x86_64-generic/nasm.bst - - bsp-x86_64-generic/syslinux.bst +(?): + - arch in ["x86_32", "x86_64"]: + depends: + - bsp-x86_64-generic/nasm.bst + - bsp-x86_64-generic/syslinux.bst diff --git a/elements/gnu-toolchain/base.bst b/elements/gnu-toolchain/base.bst index 9b364fca..50f01240 100644 --- a/elements/gnu-toolchain/base.bst +++ b/elements/gnu-toolchain/base.bst @@ -6,10 +6,10 @@ public: bst: integration-commands: - /usr/bin/ldconfig -host-arches: - x86_64: - sources: - - kind: ostree - url: https://ostree.baserock.org/releases/ - track: stage3-sysroot/x86_64 - ref: a9a66b162cb158078cb67e1ba94a8947d1076463f2e5e429caa416f311ac0a01 +(?): + - build_arch == "x86_64": + sources: + - kind: ostree + url: https://ostree.baserock.org/releases/ + track: stage3-sysroot/x86_64 + ref: a9a66b162cb158078cb67e1ba94a8947d1076463f2e5e429caa416f311ac0a01 diff --git a/elements/gnu-toolchain/fhs-dirs.bst b/elements/gnu-toolchain/fhs-dirs.bst index 7d9702db..260351b9 100644 --- a/elements/gnu-toolchain/fhs-dirs.bst +++ b/elements/gnu-toolchain/fhs-dirs.bst @@ -25,39 +25,14 @@ config: - install -m 644 protocols "%{install-root}/etc/protocols" - echo baserock > "%{install-root}/etc/hostname" -arches: # Most 64 bit architectures need a /lib64 symlink as well as /lib. # FIXME: the create-fhs-dirs script should probably handle this... - armv8b64: - config: - install-commands: - (>): - - mkdir -p "%{install-root}/usr/lib64" - - ln -s "./usr/lib64" "%{install-root}/lib64" - armv8l64: - config: - install-commands: - (>): - - mkdir -p "%{install-root}/usr/lib64" - - ln -s "./usr/lib64" "%{install-root}/lib64" - x86_64: - config: - install-commands: - (>): - - mkdir -p "%{install-root}/usr/lib64" - - ln -s "./usr/lib64" "%{install-root}/lib64" - ppc64l: - config: - install-commands: - (>): - - mkdir -p "%{install-root}/usr/lib64" - - ln -s "./usr/lib64" "%{install-root}/lib64" - ppc64b: - config: - install-commands: - (>): - - mkdir -p "%{install-root}/usr/lib64" - - ln -s "./usr/lib64" "%{install-root}/lib64" + (?): + - arch in ["armv8b64", "armv8l64", "ppc64l", "ppc64b", "x86_64"]: + install-commands: + (>): + - mkdir -p "%{install-root}/usr/lib64" + - ln -s "./usr/lib64" "%{install-root}/lib64" strip-commands: - | diff --git a/elements/gnu-toolchain/gcc.bst b/elements/gnu-toolchain/gcc.bst index 5c43ca24..6bf6e639 100644 --- a/elements/gnu-toolchain/gcc.bst +++ b/elements/gnu-toolchain/gcc.bst @@ -1,5 +1,8 @@ kind: manual +description: + Full featured native compiler which builds everything after gnu-toolchain.bst + sources: - kind: git url: upstream:gcc-tarball @@ -15,6 +18,23 @@ depends: - gnu-toolchain/zlib.bst - gnu-toolchain/m4-tarball.bst +variables: + gcc-arch-flags: '' + + (?): + # ARM platforms vary a lot even within a single architecture revision, + # and require tweaks such as this to produce a useful compiler. + # This is a default configuration that has worked for some targets. + - arch in ["armv7b", "armv7l"]: + gcc-arch-flags: --with-arch=armv7-a + - arch in ["armv7blhf", "armv7lhf"]: + gcc-arch-flags: > + --with-arch=armv7-a + --with-cpu=cortex-a9 + --with-tune=cortex-a9 + --with-fpu=vfpv3-d16 + --with-float=hard + environment: PATH: /usr/bin:/bin:/usr/sbin:/sbin:/tools/bin:/tools/sbin @@ -30,17 +50,7 @@ config: # 2. Avoid having more than one copy of ZLib in use on the system # 3. Multilib does not make sense in Baserock. - | - case "%{bst-target-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 \ + cd o && ../configure %{gcc-arch-flags} \ --prefix="%{prefix}" \ `# [1]` --libdir=%{prefix}/lib \ --disable-bootstrap \ @@ -49,14 +59,7 @@ config: --enable-languages=c,c++,fortran build-commands: - - | - case "%{bst-target-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 + - cd o && make install-commands: - cd o && make DESTDIR="%{install-root}" install @@ -69,3 +72,21 @@ config: strip-commands: - | %{stage3-strip-binaries} + + (?): + # 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. + - arch.startswith("armv5"): + build-commands: + (<): + - sed -i "s/--host=none/--host=armv5/" o/Makefile + - sed -i "s/--target=none/--target=armv5/" o/Makefile + - arch.startswith("armv7"): + build-commands: + (<): + - sed -i "s/--host=none/--host=armv7a/" o/Makefile + - sed -i "s/--target=none/--target=armv7a/" o/Makefile diff --git a/elements/gnu-toolchain/glibc.bst b/elements/gnu-toolchain/glibc.bst index a541a771..01c1971f 100644 --- a/elements/gnu-toolchain/glibc.bst +++ b/elements/gnu-toolchain/glibc.bst @@ -12,6 +12,13 @@ depends: - gnu-toolchain/fhs-dirs.bst - gnu-toolchain/linux-api-headers.bst +variables: + glibc-arch-flags: '' + + (?): + - arch.startswith("armv7"): + glibc-arch-flags: --without-fp + environment: PATH: /usr/bin:/bin:/usr/sbin:/sbin:/tools/bin:/tools/sbin @@ -21,14 +28,8 @@ config: - mkdir o - | - case "%{bst-arch}" in - armv7*) - ARCH_FLAGS="--without-fp" ;; - esac - export CFLAGS="-O2 $CFLAGS"; - cd o && ../configure \ - $ARCH_FLAGS \ + cd o && ../configure %{glibc-arch-flags} \ --prefix="%{prefix}" \ --disable-profile \ --enable-kernel=3.0.0 \ diff --git a/elements/gnu-toolchain/linux-api-headers.bst b/elements/gnu-toolchain/linux-api-headers.bst index a8096b31..aefe8a5b 100644 --- a/elements/gnu-toolchain/linux-api-headers.bst +++ b/elements/gnu-toolchain/linux-api-headers.bst @@ -13,38 +13,17 @@ depends: variables: kernel-arch: unsupported - -arches: - armv5: - variables: - kernel-arch: arm - armv7b: - variables: - kernel-arch: arm - armv7l: - variables: - kernel-arch: arm - armv7lhf: - variables: - kernel-arch: arm - armv8l64: - variables: - kernel-arch: arm64 - armv8b64: - variables: - kernel-arch: arm64 - ppc64b: - variables: - kernel-arch: powerpc - ppc64l: - variables: - kernel-arch: powerpc - x86_32: - variables: - kernel-arch: i386 - x86_64: - variables: - kernel-arch: x86_64 + (?): + - arch in ["armv5", "armv7b", "armv7l", "armv7lhf"]: + kernel-arch: arm + - arch in ["armv8b64", "armv8l64"]: + kernel-arch: arm64 + - arch in ["ppc64b", "ppc64l"]: + kernel-arch: powerpc + - arch == "x86_32": + kernel-arch: i386 + - arch == "x86_64": + kernel-arch: x86_64 environment: PATH: /usr/bin:/bin:/usr/sbin:/sbin:/tools/bin:/tools/sbin @@ -53,7 +32,7 @@ config: install-commands: - | if [ '%{kernel-arch}' == 'unsupported' ]; then - echo "Error: unsupported architecture: %{bst-target-arch}" >&2 + echo "Error: unsupported architecture: %{arch}" >&2 exit 1 fi ARCH=%{kernel-arch} make INSTALL_HDR_PATH=dest headers_install diff --git a/elements/gnu-toolchain/stage1-gcc.bst b/elements/gnu-toolchain/stage1-gcc.bst index 4df5fde7..75c65990 100644 --- a/elements/gnu-toolchain/stage1-gcc.bst +++ b/elements/gnu-toolchain/stage1-gcc.bst @@ -1,5 +1,8 @@ kind: autotools +description: + Simple cross compiler which is used to build all of stage2. + sources: - kind: git url: upstream:gcc-tarball @@ -12,10 +15,26 @@ depends: variables: prefix: /tools + gcc-arch-flags: '' + + (?): + # ARM platforms vary a lot even within a single architecture revision, + # and require tweaks such as this to produce a useful compiler. + # This is a default configuration that has worked for some targets. + - arch in ["armv7b", "armv7l"]: + gcc-arch-flags: --with-arch=armv7-a + - arch in ["armv7blhf", "armv7lhf"]: + gcc-arch-flags: > + --with-arch=armv7-a + --with-cpu=cortex-a9 + --with-tune=cortex-a9 + --with-fpu=vfpv3-d16 + --with-float=hard environment: PATH: /tools/bin:/tools/sbin:/usr/bin:/bin:/usr/sbin:/sbin + config: configure-commands: # Workaround from LFS due GCC not detecting stack protection correctly @@ -42,17 +61,8 @@ config: # without an existing libc, and generally try to keep this build as # simple as possible. - | - case "%{bst-target-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 \ + cd o && ../configure %{gcc-arch-flags} \ --build=$(sh ../config.guess) \ --host=$(sh ../config.guess) \ --target=%{target-stage1} \ @@ -81,20 +91,25 @@ config: --enable-languages=c,c++ build-commands: - - | + - cd o && make + + install-commands: + - cd o && make DESTDIR="%{install-root}" install + + (?): # 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-target-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 + - arch.startswith("armv5"): + build-commands: + (<): + - sed -i "s/--host=none/--host=armv5/" o/Makefile; + - sed -i "s/--target=none/--target=armv5/" o/Makefile + - arch.startswith("armv7"): + build-commands: + (<): + - sed -i "s/--host=none/--host=armv7a/" o/Makefile + - sed -i "s/--target=none/--target=armv7a/" o/Makefile diff --git a/elements/gnu-toolchain/stage2-fhs-dirs.bst b/elements/gnu-toolchain/stage2-fhs-dirs.bst index ba420cb0..128f2f6c 100644 --- a/elements/gnu-toolchain/stage2-fhs-dirs.bst +++ b/elements/gnu-toolchain/stage2-fhs-dirs.bst @@ -30,36 +30,11 @@ config: - install -m 644 protocols "%{install-root}/etc/protocols" - echo baserock > "%{install-root}/etc/hostname" -arches: # Most 64 bit architectures need a /lib64 symlink as well as /lib. # FIXME: the create-fhs-dirs script should probably handle this... - armv8b64: - config: - install-commands: - (>): - - mkdir -p "%{install-root}/usr/lib64" - - ln -s "./usr/lib64" "%{install-root}/lib64" - armv8l64: - config: - install-commands: - (>): - - mkdir -p "%{install-root}/usr/lib64" - - ln -s "./usr/lib64" "%{install-root}/lib64" - x86_64: - config: - install-commands: - (>): - - mkdir -p "%{install-root}/usr/lib64" - - ln -s "./usr/lib64" "%{install-root}/lib64" - ppc64l: - config: - install-commands: - (>): - - mkdir -p "%{install-root}/usr/lib64" - - ln -s "./usr/lib64" "%{install-root}/lib64" - ppc64b: - config: - install-commands: - (>): - - mkdir -p "%{install-root}/usr/lib64" - - ln -s "./usr/lib64" "%{install-root}/lib64" + (?): + - arch in ["armv8b64", "armv8l64", "ppc64l", "ppc64b", "x86_64"]: + install-commands: + (>): + - mkdir -p "%{install-root}/usr/lib64" + - ln -s "./usr/lib64" "%{install-root}/lib64" diff --git a/elements/gnu-toolchain/stage2-gcc.bst b/elements/gnu-toolchain/stage2-gcc.bst index 25dbc65d..a7c879e3 100644 --- a/elements/gnu-toolchain/stage2-gcc.bst +++ b/elements/gnu-toolchain/stage2-gcc.bst @@ -1,5 +1,8 @@ kind: manual +description: + Simple native compiler which is used to build all of stage 3. + sources: - kind: git url: upstream:gcc-tarball @@ -16,6 +19,27 @@ depends: variables: prefix: /tools + gcc-arch-flags: '' + gcc-libdir: lib + + (?): + # ARM platforms vary a lot even within a single architecture revision, + # and require tweaks such as this to produce a useful compiler. + # This is a default configuration that has worked for some targets. + - arch in ["armv7b", "armv7l"]: + gcc-arch-flags: --with-arch=armv7-a + - arch in ["armv7blhf", "armv7lhf"]: + gcc-arch-flags: > + --with-arch=armv7-a + --with-cpu=cortex-a9 + --with-tune=cortex-a9 + --with-fpu=vfpv3-d16 + --with-float=hard + + # GCC is hardwired to support 32-bit and 64-bit in parallel on these + # platforms, so 64-bit libraries end up in `lib64` rather than `lib`. + - arch in ["armv8b64", "armv8l64", "x86_64"]: + gcc-libdir: lib64 environment: PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin @@ -40,21 +64,12 @@ config: # 4. This flag causes the correct --sysroot flag to be passed when # calling stage 1 GCC. - | - case "%{bst-target-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 \ + cd o && ../configure %{gcc-arch-flags} \ --build=$(sh ../config.guess) \ `# [1]` --host=%{target-stage1} \ `# [1]` --target=%{target-stage1} \ @@ -71,12 +86,6 @@ config: build-commands: - | - case "%{bst-target-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 @@ -85,22 +94,29 @@ config: # 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. - | - case "$(echo %{target} | cut -c -6)" in - x86_64) libdir=lib64;; - armv8*64) libdir=lib64;; - *) libdir=lib - esac - install -d "%{install-root}/usr/lib" - ln -s "%{prefix}/$libdir/libgcc_s.so" "%{install-root}/usr/lib/" - ln -s "%{prefix}/$libdir/libgcc_s.so.1" "%{install-root}/usr/lib/" + ln -s "%{prefix}/%{gcc-libdir}/libgcc_s.so" "%{install-root}/usr/lib/" + ln -s "%{prefix}/%{gcc-libdir}/libgcc_s.so.1" "%{install-root}/usr/lib/" strip-commands: - | %{stage2-strip-binaries} + + (?): + # 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. + - arch.startswith("armv5"): + build-commands: + (<): + - sed -i "s/--host=none/--host=armv5/" o/Makefile + - sed -i "s/--target=none/--target=armv5/" o/Makefile + - arch.startswith("armv7"): + build-commands: + (<): + - sed -i "s/--host=none/--host=armv7a/" o/Makefile + - sed -i "s/--target=none/--target=armv7a/" o/Makefile diff --git a/elements/gnu-toolchain/stage2-glibc.bst b/elements/gnu-toolchain/stage2-glibc.bst index e3f13c35..296fdcf6 100644 --- a/elements/gnu-toolchain/stage2-glibc.bst +++ b/elements/gnu-toolchain/stage2-glibc.bst @@ -16,6 +16,29 @@ depends: variables: prefix: /tools + glibc-arch-flags: '' + glibc-ld-so-name: 'autodetect' + glibc-ld-so-libdir: 'lib' + + (?): + - arch.startswith("armv7"): + glibc-arch-flags: --without-fp + + - arch in ["armv8b64", "armv8l64"]: + glibc-ld-so-name: ld-linux-aarch64.so.1 + + - arch == "ppc64b": + glibc-ld-so-name: ld64.so.1 + glibc-ld-so-libdir: lib64 + + - arch == "ppc64l": + glibc-ld-so-name: ld64.so.2 + glibc-ld-so-libdir: lib64 + + - arch == "x86_64": + glibc-ld-so-name: ld-linux-x86-64.so.2 + glibc-ld-so-libdir: lib64 + environment: PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin @@ -33,14 +56,8 @@ config: # 5. Force configuration values of certain things that can't be detected # in a cross-compile. - | - case "%{bst-target-arch}" in - armv7*) - ARCH_FLAGS="--without-fp" ;; - esac - export CFLAGS="-O2 $CFLAGS"; export CXX=false; \ - cd o && ../configure \ - $ARCH_FLAGS \ + cd o && ../configure %{glibc-arch-flags} \ --build=$(../scripts/config.guess) --host=%{target-stage1} \ --prefix="%{prefix}" \ `# [1]` --libdir="%{prefix}/lib" \ @@ -104,42 +121,25 @@ config: # 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. - # - # The name of the dynamic loader is hardcoded in GCC during its 'configure' - # stage, but the file is actually provided by the libc (usually GLIBC). It - # would be better if we could ask GCC or GLIBC what the expected name of the - # ld.so is for the given platform rather than figuring it out - - install -d %{install-root}/lib - | - case "%{bst-target-arch}" in - x86_64) - install -d "%{install-root}/usr/lib64" - ln -s "/usr/lib64" "%{install-root}/lib64" - ln -s "%{prefix}/lib/ld-linux-x86-64.so.2" \ - "%{install-root}/usr/lib64/ld-linux-x86-64.so.2" ;; - armv8*64) - install -d "%{install-root}/usr/lib" - ln -s "/usr/lib64" "%{install-root}/lib64" - ln -s "%{prefix}/lib/ld-linux-aarch64.so.1" \ - "%{install-root}/usr/lib/ld-linux-aarch64.so.1" ;; - ppc64l) - install -d "%{install-root}/usr/lib64" - ln -s "/usr/lib64" "%{install-root}/lib64" - ln -s "%{prefix}/lib/ld64.so.2" \ - "%{install-root}/usr/lib64/ld64.so.2" ;; - ppc64b) - install -d "%{install-root}/usr/lib64" - ln -s "/usr/lib64" "%{install-root}/lib64" - ln -s "%{prefix}/lib/ld64.so.1" \ - "%{install-root}/usr/lib64/ld64.so.1" ;; - *) + # 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. + # + # The name of the dynamic loader is hardcoded in GCC during its 'configure' + # stage, but the file is actually provided by the libc (usually GLIBC). It + # would be better if we could ask GCC or GLIBC what the expected name of the + # ld.so is for the given platform rather than hardcoding it again here. + loader="%{glibc-ld-so-name}" + + if [ "$loader" == "autodetect" ]; then 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 + fi + + install -d "%{install-root}/usr/%{glibc-ld-so-libdir}" + ln -s "/usr/%{glibc-ld-so-libdir}" "%{install-root}/%{glibc-ld-so-libdir}" + ln -s "%{prefix}/lib/$loader" "%{install-root}/usr/%{glibc-ld-so-libdir}/$loader" strip-commands: - | diff --git a/elements/gnu-toolchain/stage2-linux-api-headers.bst b/elements/gnu-toolchain/stage2-linux-api-headers.bst index 67596871..0016cef8 100644 --- a/elements/gnu-toolchain/stage2-linux-api-headers.bst +++ b/elements/gnu-toolchain/stage2-linux-api-headers.bst @@ -12,39 +12,19 @@ depends: variables: prefix: /tools - kernel-arch: unsupported -arches: - armv5: - variables: - kernel-arch: arm - armv7b: - variables: - kernel-arch: arm - armv7l: - variables: - kernel-arch: arm - armv7lhf: - variables: - kernel-arch: arm - armv8l64: - variables: - kernel-arch: arm64 - armv8b64: - variables: - kernel-arch: arm64 - ppc64b: - variables: - kernel-arch: powerpc - ppc64l: - variables: - kernel-arch: powerpc - x86_32: - variables: - kernel-arch: i386 - x86_64: - variables: - kernel-arch: x86_64 + kernel-arch: unsupported + (?): + - arch in ["armv5", "armv7b", "armv7l", "armv7lhf"]: + kernel-arch: arm + - arch in ["armv8b64", "armv8l64"]: + kernel-arch: arm64 + - arch in ["ppc64b", "ppc64l"]: + kernel-arch: powerpc + - arch == "x86_32": + kernel-arch: i386 + - arch == "x86_64": + kernel-arch: x86_64 environment: PATH: /tools/bin:/usr/bin:/bin:/usr/sbin:/sbin @@ -53,7 +33,7 @@ config: install-commands: - | if [ '%{kernel-arch}' == 'unsupported' ]; then - echo "Error: unsupported architecture: %{bst-target-arch}" >&2 + echo "Error: unsupported architecture: %{arch}" >&2 exit 1 fi ARCH=%{kernel-arch} make INSTALL_HDR_PATH=dest headers_install |