From 517876037d7e65853e4748a054445a13384a171a Mon Sep 17 00:00:00 2001 From: Nicolas Date: Fri, 14 Nov 2025 10:35:52 +0100 Subject: [PATCH] ci musl: use -fno-pic flag only for x86 --- .github/workflows/ci.yml | 2 +- tools/cross_compiler_unix/build_musl.sh | 2 +- tools/cross_compiler_unix/packobjs.sh | 14 ++++++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 00096c6..6274454 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,7 +28,7 @@ jobs: - uses: actions/upload-artifact@v4 with: name: musl-object-files - path: /object_files/musl_objects_*.o + path: /object_files/musl_objects_*.*o - uses: actions/upload-artifact@v4 with: diff --git a/tools/cross_compiler_unix/build_musl.sh b/tools/cross_compiler_unix/build_musl.sh index 2601994..8c66202 100644 --- a/tools/cross_compiler_unix/build_musl.sh +++ b/tools/cross_compiler_unix/build_musl.sh @@ -12,7 +12,7 @@ cd musl sh ../packobjs.sh gcc ld /object_files/musl_objects_x86_64.o -sh ../packobjs.sh i686-linux-gnu-gcc-13 i686-linux-gnu-ld /object_files/musl_objects_x86.o +sh ../packobjs.sh i686-linux-gnu-gcc-13 i686-linux-gnu-ld /object_files/musl_objects_x86.o -fno-pic sh ../packobjs.sh aarch64-linux-gnu-gcc-13 aarch64-linux-gnu-ld /object_files/musl_objects_arm64.o diff --git a/tools/cross_compiler_unix/packobjs.sh b/tools/cross_compiler_unix/packobjs.sh index ad177f6..af79b81 100644 --- a/tools/cross_compiler_unix/packobjs.sh +++ b/tools/cross_compiler_unix/packobjs.sh @@ -6,9 +6,10 @@ set -v CC_NAME=$1 LD_NAME=$2 DEST_FILE=$3 +OPT_FLAGS=$4 echo "- Config musl" -./configure CFLAGS="-O2 -fno-stack-protector" CC=$CC_NAME +./configure CFLAGS="-O2 -fno-stack-protector $OPT_FLAGS" CC=$CC_NAME echo "- Build musl" make clean @@ -18,6 +19,15 @@ mkdir -p ../build/stencil_objs echo "- Extracting required objects" cd ../build/stencil_objs + +# Check out .o (non PIC) +ar x ../../musl/lib/libc.a sinf.o cosf.o tanf.o asinf.o acosf.o atanf.o atan2f.o +ar x ../../musl/lib/libc.a sqrtf.o logf.o expf.o sqrt.o +ar x ../../musl/lib/libc.a logf_data.o __tandf.o __cosdf.o __sindf.o +ar x ../../musl/lib/libc.a fabsf.o scalbn.o floor.o exp2f_data.o powf.o powf_data.o +ar x ../../musl/lib/libc.a __rem_pio2f.o __math_invalidf.o __stack_chk_fail.o __math_divzerof.o __math_oflowf.o __rem_pio2_large.o __math_uflowf.o __math_xflowf.o + +# Check out .lo (PIC) ar x ../../musl/lib/libc.a sinf.lo cosf.lo tanf.lo asinf.lo acosf.lo atanf.lo atan2f.lo ar x ../../musl/lib/libc.a sqrtf.lo logf.lo expf.lo sqrt.lo ar x ../../musl/lib/libc.a logf_data.lo __tandf.lo __cosdf.lo __sindf.lo @@ -27,6 +37,6 @@ ar x ../../musl/lib/libc.a __rem_pio2f.lo __math_invalidf.lo __stack_chk_fail.lo cd ../../musl echo "- Merge objects" -$LD_NAME -r ../build/stencil_objs/*.lo -o $DEST_FILE +$LD_NAME -r ../build/stencil_objs/* -o $DEST_FILE rm ../build/stencil_objs/*