From 442864b4e97dcd671eaaa6ac8684b4b937ee8cd1 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Thu, 16 Sep 2021 21:29:28 +0200 Subject: examples: more toolchain stuff --- examples/binutils.yml | 2 +- examples/gcc-libs.yml | 24 +++++++++++++ examples/gcc.yml | 4 +-- examples/glibc.yml | 79 +++++++++++++++++++++++++++++++++++++++++ examples/libgcc-initial.yml | 1 + examples/linux-uapi-headers.yml | 17 +++++++++ 6 files changed, 124 insertions(+), 3 deletions(-) create mode 100644 examples/gcc-libs.yml create mode 100644 examples/glibc.yml create mode 100644 examples/linux-uapi-headers.yml (limited to 'examples') diff --git a/examples/binutils.yml b/examples/binutils.yml index 1e74bed..56342f7 100644 --- a/examples/binutils.yml +++ b/examples/binutils.yml @@ -20,7 +20,7 @@ tasks: --host="${HOST}" \ --target="${TARGET}" \ --prefix="${BUILD_PREFIX}" \ - --with-sysroot="${SYSROOT}${PREFIX}" \ + --with-sysroot="${SYSROOT}" \ --enable-libssp \ --enable-deterministic-archives \ --enable-plugins \ diff --git a/examples/gcc-libs.yml b/examples/gcc-libs.yml new file mode 100644 index 0000000..ccd6ebf --- /dev/null +++ b/examples/gcc-libs.yml @@ -0,0 +1,24 @@ +tasks: + compile: + inherit: + task: 'gcc:compile' + build_depends: + - task: 'binutils:install' + target_depends: + - task: 'linux-uapi-headers:install' + - task: 'glibc:install' + run: | + cd gcc-build + make -j8 all-target-libgcc all-target-libstdc++-v3 all-target-libgomp all-target-libquadmath all-target-libatomic + + install: + inherit: + task: 'gcc-libs:compile' + build_depends: + - task: 'binutils:install' + target_depends: + - task: 'linux-uapi-headers:install' + - task: 'glibc:install' + run: | + cd gcc-build + make DESTDIR="$DESTDIR" install-target-libgcc install-target-libstdc++-v3 install-target-libgomp install-target-libquadmath install-target-libatomic diff --git a/examples/gcc.yml b/examples/gcc.yml index 9efea15..f06eb27 100644 --- a/examples/gcc.yml +++ b/examples/gcc.yml @@ -32,8 +32,8 @@ tasks: --prefix="${BUILD_PREFIX}" \ --libdir=${BUILD_PREFIX}/lib \ --libexecdir=${BUILD_PREFIX}/lib \ - --with-sysroot="${SYSROOT}${PREFIX}" \ - --with-native-system-header-dir=/include \ + --with-sysroot="${SYSROOT}" \ + --with-native-system-header-dir=${PREFIX}/include \ --with-build-time-tools="${BUILD_PREFIX}/${TARGET}/bin" \ --with-gnu-ld \ --enable-shared \ diff --git a/examples/glibc.yml b/examples/glibc.yml new file mode 100644 index 0000000..21641a9 --- /dev/null +++ b/examples/glibc.yml @@ -0,0 +1,79 @@ +tasks: + unpack: + fetch: + - name: 'glibc-2.34.tar.xz' + sha256: '44d26a1fe20b8853a48f470ead01e4279e869ac149b195dda4e44a195d981ab2' + run: | + tar xf "${DLDIR}/glibc-2.34.tar.xz" + + configure: + inherit: + task: 'glibc:unpack' + build_depends: + - task: 'binutils:install' + - task: 'gcc:install' + - task: 'libgcc-initial:install' + target_depends: + - task: 'linux-uapi-headers:install' + run: | + BUILD=x86_64-linux-gnu + HOST=aarch64-linux-gnu + + CROSS_COMPILE=${BUILD_PREFIX}/bin/${HOST}- + + export BUILD_CC=gcc + export CC=${CROSS_COMPILE}gcc + export CXX=${CROSS_COMPILE}g++ + export AR=${CROSS_COMPILE}ar + export NM=${CROSS_COMPILE}nm + export RANLIB=${CROSS_COMPILE}ranlib + export READELF=${CROSS_COMPILE}readelf + + mkdir glibc-build + cd glibc-build + ../glibc-2.34/configure \ + --build="${BUILD}" \ + --host=${HOST} \ + --prefix="${PREFIX}" \ + --includedir="${PREFIX}/include" \ + --libdir="${PREFIX}/lib" \ + --libexecdir="${PREFIX}/lib" \ + --enable-add-ons \ + --enable-obsolete-rpc \ + --enable-kernel=2.6.32 \ + --enable-bind-now \ + --disable-profile \ + --enable-stackguard-randomization \ + --enable-lock-elision \ + --disable-werror + + echo 'slibdir=/usr/lib' >> configparms + echo 'rtlddir=/usr/lib' >> configparms + echo 'sbindir=/usr/bin' >> configparms + echo 'rootsbindir=/usr/bin' >> configparms + + compile: + inherit: + task: 'glibc:configure' + build_depends: + - task: 'binutils:install' + - task: 'gcc:install' + - task: 'libgcc-initial:install' + target_depends: + - task: 'linux-uapi-headers:install' + run: | + cd glibc-build + make -j8 + + install: + inherit: + task: 'glibc:compile' + build_depends: + - task: 'binutils:install' + - task: 'gcc:install' + - task: 'libgcc-initial:install' + target_depends: + - task: 'linux-uapi-headers:install' + run: | + cd glibc-build + make install_root="${DESTDIR}" install diff --git a/examples/libgcc-initial.yml b/examples/libgcc-initial.yml index 989b593..35f1bd5 100644 --- a/examples/libgcc-initial.yml +++ b/examples/libgcc-initial.yml @@ -42,3 +42,4 @@ tasks: run: | cd gcc-build make DESTDIR="$DESTDIR" install-target-libgcc + ln -s libgcc.a "${DESTDIR}${BUILD_PREFIX}/lib/gcc/aarch64-linux-gnu/11.2.0/libgcc_eh.a" diff --git a/examples/linux-uapi-headers.yml b/examples/linux-uapi-headers.yml new file mode 100644 index 0000000..02b58b3 --- /dev/null +++ b/examples/linux-uapi-headers.yml @@ -0,0 +1,17 @@ +tasks: + unpack: + fetch: + - name: 'linux-5.10.66.tar.xz' + sha256: '5dfa06bbbbd164b9ea669ec637b1e6d05fb5fea8ef3aeb6729f2cbcd0dfcc8a7' + run: | + tar xf "${DLDIR}/linux-5.10.66.tar.xz" + + install: + inherit: + task: 'linux-uapi-headers:unpack' + run: | + TARGET_ARCH=arm64 + + cd linux-5.10.66 + make INSTALL_HDR_PATH="${DESTDIR}${PREFIX}" ARCH="${TARGET_ARCH}" headers_install + -- cgit v1.2.3