summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2021-09-15 22:26:06 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2021-09-15 22:26:06 +0200
commit10053ef3faf73bc58aca38435c1d134603f8feaf (patch)
treef1beb1b27ce0c5aaac8ff75f6f0e4df62ed889a5 /examples
parent23e538cbadec1ef7ad40377108c7f50705c1cb89 (diff)
downloadrebel-10053ef3faf73bc58aca38435c1d134603f8feaf.tar
rebel-10053ef3faf73bc58aca38435c1d134603f8feaf.zip
examples: fix a few configuration issues, build initial libgcc
Diffstat (limited to 'examples')
-rw-r--r--examples/binutils.yml4
-rw-r--r--examples/gcc.yml56
2 files changed, 52 insertions, 8 deletions
diff --git a/examples/binutils.yml b/examples/binutils.yml
index c5b78ed..8266943 100644
--- a/examples/binutils.yml
+++ b/examples/binutils.yml
@@ -19,8 +19,8 @@ tasks:
--build="${BUILD}" \
--host="${HOST}" \
--target="${TARGET}" \
- --prefix="${PREFIX}" \
- --with-sysroot="${PREFIX}/${TARGET}" \
+ --prefix="${BUILD_PREFIX}" \
+ --with-sysroot="${SYSROOT}${PREFIX}" \
--enable-libssp \
--enable-deterministic-archives \
--enable-plugins \
diff --git a/examples/gcc.yml b/examples/gcc.yml
index b91c6da..e74195a 100644
--- a/examples/gcc.yml
+++ b/examples/gcc.yml
@@ -8,12 +8,13 @@ tasks:
stubs:
run: |
- export TARGET=aarch64-linux-gnu
- mkdir -p "${DESTDIR}${PREFIX}/${TARGET}/include"
+ mkdir -p "${DESTDIR}${PREFIX}/include"
configure:
inherit:
task: 'gcc:unpack'
+ build_depends:
+ - task: 'binutils:install'
run: |
export BUILD=x86_64-linux-gnu
export HOST=x86_64-linux-gnu
@@ -25,11 +26,12 @@ tasks:
--build="${BUILD}" \
--host="${HOST}" \
--target=${TARGET} \
- --prefix="${PREFIX}" \
- --libdir=${PREFIX}/lib \
- --libexecdir=${PREFIX}/lib \
- --with-sysroot="${SYSROOT}${PREFIX}/${TARGET}" \
+ --prefix="${BUILD_PREFIX}" \
+ --libdir=${BUILD_PREFIX}/lib \
+ --libexecdir=${BUILD_PREFIX}/lib \
+ --with-sysroot="${SYSROOT}${PREFIX}" \
--with-native-system-header-dir=/include \
+ --with-build-time-tools="${BUILD_PREFIX}/${TARGET}/bin" \
--with-gnu-ld \
--enable-shared \
--enable-languages=c,c++ \
@@ -62,6 +64,8 @@ tasks:
compile:
inherit:
task: 'gcc:configure'
+ build_depends:
+ - task: 'binutils:install'
target_depends:
- task: 'gcc:stubs'
run: |
@@ -74,3 +78,43 @@ tasks:
run: |
cd gcc-build
make DESTDIR="$DESTDIR" install-host
+
+ configure-libgcc-initial:
+ inherit:
+ task: 'gcc:compile'
+ build_depends:
+ - task: 'binutils:install'
+ run: |
+ export TARGET=aarch64-linux-gnu
+
+ cd gcc-build
+ make configure-target-libgcc
+
+ # A hack borrowed from OpenEmbedded:
+ # We can build an initial libgcc without having to rebuild the whole gcc
+ # afterwards by manipulating the Makefile
+ sed -i -r \
+ -e 's@^(INHIBIT_LIBC_CFLAGS =).*@\1 -Dinhibit_libc@' \
+ gcc/libgcc.mvars
+ sed -i -r \
+ -e 's@^(thread_header =).*@\1 gthr-single.h@' \
+ -e 's@^(enable_shared =).*@\1 no@' \
+ "${TARGET}/libgcc/Makefile"
+
+ compile-libgcc-initial:
+ inherit:
+ task: 'gcc:configure-libgcc-initial'
+ build_depends:
+ - task: 'binutils:install'
+ run: |
+ cd gcc-build
+ make -j8 all-target-libgcc
+
+ install-libgcc-initial:
+ inherit:
+ task: 'gcc:compile-libgcc-initial'
+ build_depends:
+ - task: 'binutils:install'
+ run: |
+ cd gcc-build
+ make DESTDIR="$DESTDIR" install-target-libgcc