ci: cross compilation updated to use musl objs

This commit is contained in:
Nicolas 2025-11-13 10:10:20 +01:00 committed by Nicolas Kruse
parent bc62d486ab
commit da58fbf613
5 changed files with 24 additions and 24 deletions

View File

@ -25,6 +25,11 @@ jobs:
name: stencil-object-files name: stencil-object-files
path: src/copapy/obj/*.o 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 - uses: actions/upload-artifact@v4
with: with:
name: cross-runner name: cross-runner
@ -227,7 +232,8 @@ jobs:
run: | run: |
set -v set -v
mkdir -p release 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/cross-runner/coparun-* release/
cp tmp/runner-linux/coparun release/ cp tmp/runner-linux/coparun release/
cp tmp/runner-linux-arm64/coparun release/ cp tmp/runner-linux-arm64/coparun release/

View File

@ -1,19 +1,9 @@
#include "aux_functions.c" #include "aux_functions.c"
#include "trigonometry.c"
int main() { int main() {
// Test aux functions // Test aux functions
float a = 16.0f; float a = 16.0f;
float sqrt_a = aux_sqrt(100000.0f);
float div_result = (float)floor_div(-7.0f, 3.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); float g42 = aux_get_42(0.0f);
return 0; return 0;
} }

View File

@ -22,5 +22,3 @@ sh ../packobjs.sh arm64 aarch64-linux-gnu-gcc-13 aarch64-linux-gnu-ld
echo "- clean up..." echo "- clean up..."
rm -r ./* rm -r ./*
cd .. cd ..

View File

@ -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 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" 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 ./* rm ./*
cd ../../musl cd ../../musl

View File

@ -5,27 +5,35 @@ set -v
mkdir -p build/stencils mkdir -p build/stencils
SRC=build/stencils/stencils.c SRC=build/stencils/stencils.c
STMP=build/stencils/stencils.o
DEST=src/copapy/obj DEST=src/copapy/obj
OPT=O3 OPT=O3
FLAGS="-fno-pic" FLAGS="-fno-pic"
mkdir -p $DEST mkdir -p $DEST
echo "Precompiled objects:"
ls /object_files/
# -------------- Compile stencils -------------- # -------------- Compile stencils --------------
python3 stencils/generate_stencils.py $SRC python3 stencils/generate_stencils.py $SRC
# x86_64 # 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 # 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) # 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 # 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
# powerpc64le-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_ppc64le_$OPT.o # 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 # s390x-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_s390x_$OPT.o
# Mips (Big Endian) # 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) # 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 # RISCV 32 Bit
# riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -march=rv32imac -mabi=ilp32 -c $SRC -o $DEST/stencils_riscv_$OPT.o # riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -march=rv32imac -mabi=ilp32 -c $SRC -o $DEST/stencils_riscv_$OPT.o
# RISCV 64 Bit # 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 -------------- # -------------- Cross compile runner --------------
@ -51,6 +59,3 @@ mkdir -p build/runner
# Aarch64 # 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 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