summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2021-09-16 21:29:28 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2021-09-16 21:29:28 +0200
commit442864b4e97dcd671eaaa6ac8684b4b937ee8cd1 (patch)
tree79b9165092a834b1a51d587959d6ef6816837762 /examples
parentd1f10611e90f09074c45de474d927e6026315086 (diff)
downloadrebel-442864b4e97dcd671eaaa6ac8684b4b937ee8cd1.tar
rebel-442864b4e97dcd671eaaa6ac8684b4b937ee8cd1.zip
examples: more toolchain stuff
Diffstat (limited to 'examples')
-rw-r--r--examples/binutils.yml2
-rw-r--r--examples/gcc-libs.yml24
-rw-r--r--examples/gcc.yml4
-rw-r--r--examples/glibc.yml79
-rw-r--r--examples/libgcc-initial.yml1
-rw-r--r--examples/linux-uapi-headers.yml17
6 files changed, 124 insertions, 3 deletions
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
+