From 705421ebb11b94586e0edf3df0bc27c1f547b586 Mon Sep 17 00:00:00 2001 From: Nicolas Date: Thu, 13 Nov 2025 10:10:20 +0100 Subject: [PATCH] ci: cross compilation updated to use musl objs --- .github/workflows/ci.yml | 8 +++++++- stencils/test.c | 10 ---------- tools/cross_compiler_unix/build_musl.sh | 2 -- tools/cross_compiler_unix/packobjs.sh | 3 ++- tools/crosscompile.sh | 25 +++++++++++++++---------- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 021eafb..00096c6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,6 +25,11 @@ jobs: name: stencil-object-files path: src/copapy/obj/*.o + - uses: actions/upload-artifact@v4 + with: + name: musl-object-files + path: /object_files/musl_objects_*.o + - uses: actions/upload-artifact@v4 with: name: cross-runner @@ -227,7 +232,8 @@ jobs: run: | set -v mkdir -p release - cp tmp/stencil-object-files/*.o release/ + cp tmp/stencil-object-files/* release/ + cp tmp/musl-object-files/* release/ cp tmp/cross-runner/coparun-* release/ cp tmp/runner-linux/coparun release/ cp tmp/runner-linux-arm64/coparun release/ diff --git a/stencils/test.c b/stencils/test.c index ec90a20..43284cf 100644 --- a/stencils/test.c +++ b/stencils/test.c @@ -1,19 +1,9 @@ #include "aux_functions.c" -#include "trigonometry.c" int main() { // Test aux functions float a = 16.0f; - float sqrt_a = aux_sqrt(100000.0f); float div_result = (float)floor_div(-7.0f, 3.0f); - float sin_30 = aux_sin(30.0f); - float cos_60 = aux_cos(60.0f); - float tan_45 = aux_tan(45.0f); - float atan_15 = aux_atan(1.5f); - float asin_15 = aux_asin(1.5f); - float atan2_15 = aux_atan2(1.5f, 1.5f); - float exp_5 = aux_exp(5.0); - float log_5 = aux_log(5.0); float g42 = aux_get_42(0.0f); return 0; } diff --git a/tools/cross_compiler_unix/build_musl.sh b/tools/cross_compiler_unix/build_musl.sh index caf6da2..f107c1d 100644 --- a/tools/cross_compiler_unix/build_musl.sh +++ b/tools/cross_compiler_unix/build_musl.sh @@ -22,5 +22,3 @@ sh ../packobjs.sh arm64 aarch64-linux-gnu-gcc-13 aarch64-linux-gnu-ld echo "- clean up..." rm -r ./* cd .. - - diff --git a/tools/cross_compiler_unix/packobjs.sh b/tools/cross_compiler_unix/packobjs.sh index 6eb51e4..0e53873 100644 --- a/tools/cross_compiler_unix/packobjs.sh +++ b/tools/cross_compiler_unix/packobjs.sh @@ -25,7 +25,8 @@ ar x ../../musl/lib/libc.a fabsf.lo scalbn.lo floor.lo exp2f_data.lo powf.lo pow ar x ../../musl/lib/libc.a __rem_pio2f.lo __math_invalidf.lo __stack_chk_fail.lo __math_divzerof.lo __math_oflowf.lo __rem_pio2_large.lo __math_uflowf.lo __math_xflowf.lo echo "- Merge objects" -$LD_NAME -r *.lo -o ../musl_objects_$ARCH.o +mkdir -p /object_files +$LD_NAME -r *.lo -o /object_files/musl_objects_$ARCH.o rm ./* cd ../../musl \ No newline at end of file diff --git a/tools/crosscompile.sh b/tools/crosscompile.sh index a959b22..669faf3 100644 --- a/tools/crosscompile.sh +++ b/tools/crosscompile.sh @@ -5,27 +5,35 @@ set -v mkdir -p build/stencils SRC=build/stencils/stencils.c +STMP=build/stencils/stencils.o DEST=src/copapy/obj OPT=O3 FLAGS="-fno-pic" mkdir -p $DEST +echo "Precompiled objects:" +ls /object_files/ + # -------------- Compile stencils -------------- python3 stencils/generate_stencils.py $SRC # x86_64 -gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_x86_64_$OPT.o +gcc-13 $FLAGS -$OPT -c $SRC -o $STMP +ld -r $STMP /object_files/musl_objects_x86_64.o -o $DEST/stencils_x86_64_$OPT.o # x86 - 32 bit -gcc-13 $FLAGS -m32 -$OPT -c $SRC -o $DEST/stencils_x86_$OPT.o +i686-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $STMP +i686-linux-gnu-ld -r $STMP /object_files/musl_objects_x86.o -o $DEST/stencils_x86_$OPT.o # ARM64 linux (aarch64) -aarch64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_arm64_$OPT.o +aarch64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $STMP +aarch64-linux-gnu-ld -r $STMP /object_files/musl_objects_arm64.o -o $DEST/stencils_arm64_$OPT.o # ARMv7 -arm-linux-gnueabihf-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_arm_$OPT.o +#arm-linux-gnueabihf-gcc-13 $FLAGS -$OPT -c $SRC -o $STMP +#arm-linux-gnu-ld -r $STMP /object_files/musl_objects_arm.o -o $DEST/stencils_arm_$OPT.o # PowerPC64LE # powerpc64le-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_ppc64le_$OPT.o @@ -34,16 +42,16 @@ arm-linux-gnueabihf-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_arm_$OPT.o # s390x-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_s390x_$OPT.o # Mips (Big Endian) -mips-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_mips_$OPT.o +#mips-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_mips_$OPT.o # Mips (Little Endian) -mipsel-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_mipsel_$OPT.o +#mipsel-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_mipsel_$OPT.o # RISCV 32 Bit # riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -march=rv32imac -mabi=ilp32 -c $SRC -o $DEST/stencils_riscv_$OPT.o # RISCV 64 Bit -riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_riscv64_$OPT.o +#riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_riscv64_$OPT.o # -------------- Cross compile runner -------------- @@ -51,6 +59,3 @@ mkdir -p build/runner # Aarch64 aarch64-linux-gnu-gcc-13 -static -O3 -DENABLE_LOGGING -o build/runner/coparun-aarch64 src/coparun/runmem.c src/coparun/coparun.c src/coparun/mem_man.c - - -