From a93cdd4b8156f4da99b91b7897e698496d8d707d Mon Sep 17 00:00:00 2001 From: Nicolas Date: Mon, 17 Nov 2025 09:03:27 +0100 Subject: [PATCH] ci and build scripts updated to build arm v6 and v7 --- tools/build.bat | 26 ++++++++++++++++++++++--- tools/cross_compiler_unix/Dockerfile | 2 +- tools/cross_compiler_unix/build_musl.sh | 4 ++++ tools/crosscompile.sh | 10 +++++++--- 4 files changed, 35 insertions(+), 7 deletions(-) diff --git a/tools/build.bat b/tools/build.bat index d93eda4..bd7c053 100644 --- a/tools/build.bat +++ b/tools/build.bat @@ -29,18 +29,38 @@ echo - Build runner for linux x86 32 bit... wsl i686-linux-gnu-gcc-12 -static -Wall -Wextra -Wconversion -Wsign-conversion -Wshadow -Wstrict-overflow -O3 -DENABLE_LOGGING src/coparun/runmem.c src/coparun/coparun.c src/coparun/mem_man.c -o build/runner/coparun-x86 echo - Build stencils x86 32 bit... -REM sh ../copapy/tools/cross_compiler_unix/packobjs.sh i686-linux-gnu-gcc-12 i686-linux-gnu-ld ../copapy/build/musl/musl_objects_x86.o +REM sh ../copapy/tools/cross_compiler_unix/packobjs.sh i686-linux-gnu-gcc-12 i686-linux-gnu-ld ../copapy/build/musl/musl_objects_x86.o -fno-pic wsl i686-linux-gnu-gcc-12 -fno-pic -ffunction-sections -c build/stencils/stencils.c -O3 -o build/stencils/stencils.o wsl i686-linux-gnu-ld -r build/stencils/stencils.o build/musl/musl_objects_x86.o -o src/copapy/obj/stencils_x86_O3.o wsl i686-linux-gnu-objdump -d -x src/copapy/obj/stencils_x86_O3.o > build/stencils/stencils_x86_O3.asm echo --------------arm64 64 bit---------------- -echo - Build stencils for aarch64... wsl aarch64-linux-gnu-gcc-12 -fno-pic -ffunction-sections -c build/stencils/stencils.c -O3 -o build/stencils/stencils.o wsl aarch64-linux-gnu-ld -r build/stencils/stencils.o build/musl/musl_objects_arm64.o -o src/copapy/obj/stencils_arm64_O3.o wsl aarch64-linux-gnu-objdump -d -x src/copapy/obj/stencils_arm64_O3.o > build/stencils/stencils_arm64_O3.asm - echo ------------------------------ echo - Build runner for Aarch64... wsl aarch64-linux-gnu-gcc-12 -static -Wall -Wextra -Wconversion -Wsign-conversion -Wshadow -Wstrict-overflow -O3 -DENABLE_LOGGING src/coparun/runmem.c src/coparun/coparun.c src/coparun/mem_man.c -o build/runner/coparun-aarch64 + + +echo --------------arm-v6 32 bit---------------- +REM sh ../copapy/tools/cross_compiler_unix/packobjs.sh arm-none-eabi-gcc arm-none-eabi-ld ../copapy/build/musl/musl_objects_armv6.o "-march=armv6 -mfpu=vfp -marm" +wsl arm-none-eabi-gcc -fno-pic -ffunction-sections -march=armv6 -mfpu=vfp -marm -c build/stencils/stencils.c -O3 -o build/stencils/stencils.o +wsl arm-none-eabi-ld -r build/stencils/stencils.o build/musl/musl_objects_armv6.o -o src/copapy/obj/stencils_armv6_O3.o +wsl arm-none-eabi-objdump -d -x src/copapy/obj/stencils_armv6_O3.o > build/stencils/stencils_armv6_O3.asm +echo ------------------------------ +REM echo - Build runner +REM wsl arm-none-eabi-gcc -march=armv6 -mfpu=vfp -marm -static -Wall -Wextra -Wconversion -Wsign-conversion -Wshadow -Wstrict-overflow -O3 -DENABLE_LOGGING src/coparun/runmem.c src/coparun/coparun.c src/coparun/mem_man.c -o build/runner/coparun-armv6 + + + +echo --------------arm-v7 32 bit---------------- +REM sh ../copapy/tools/cross_compiler_unix/packobjs.sh arm-none-eabi-gcc arm-none-eabi-ld ../copapy/build/musl/musl_objects_armv7.o "-march=armv7-a -mfpu=neon-vfpv3 -marm" +wsl arm-none-eabi-gcc -fno-pic -ffunction-sections -march=armv7-a -mfpu=neon-vfpv3 -marm -c build/stencils/stencils.c -O3 -o build/stencils/stencils.o +wsl arm-none-eabi-ld -r build/stencils/stencils.o build/musl/musl_objects_armv7.o -o src/copapy/obj/stencils_armv7_O3.o +wsl arm-none-eabi-objdump -d -x src/copapy/obj/stencils_armv7_O3.o > build/stencils/stencils_armv7_O3.asm +echo ------------------------------ +echo - Build runner +wsl arm-linux-gnueabihf-gcc -march=armv7-a -mfpu=neon-vfpv3 -marm -static -Wall -Wextra -Wconversion -Wsign-conversion -Wshadow -Wstrict-overflow -O3 -DENABLE_LOGGING src/coparun/runmem.c src/coparun/coparun.c src/coparun/mem_man.c -o build/runner/coparun-armv7 + diff --git a/tools/cross_compiler_unix/Dockerfile b/tools/cross_compiler_unix/Dockerfile index acfd78c..7ba23ae 100644 --- a/tools/cross_compiler_unix/Dockerfile +++ b/tools/cross_compiler_unix/Dockerfile @@ -6,7 +6,7 @@ RUN apt-get update && apt-get install -y \ build-essential \ gcc-13 \ gcc-13-i686-linux-gnu \ - gcc-13-arm-linux-gnueabihf \ + gcc-13-arm-none-eabi \ gcc-13-mips-linux-gnu \ gcc-13-mipsel-linux-gnu \ gcc-13-riscv64-linux-gnu \ diff --git a/tools/cross_compiler_unix/build_musl.sh b/tools/cross_compiler_unix/build_musl.sh index 8c66202..3727284 100644 --- a/tools/cross_compiler_unix/build_musl.sh +++ b/tools/cross_compiler_unix/build_musl.sh @@ -16,6 +16,10 @@ sh ../packobjs.sh i686-linux-gnu-gcc-13 i686-linux-gnu-ld /object_files/musl_obj sh ../packobjs.sh aarch64-linux-gnu-gcc-13 aarch64-linux-gnu-ld /object_files/musl_objects_arm64.o +sh ../packobjs.sh arm-none-eabi-gcc-13 arm-none-eabi-ld /object_files/musl_objects_armv6.o "-march=armv6 -mfpu=vfp -marm" + +sh ../packobjs.sh arm-none-eabi-gcc-13 arm-none-eabi-ld /object_files/musl_objects_armv7.o "-march=armv7-a -mfpu=neon-vfpv3 -marm" + #sh ../packobjs.sh mips mips-linux-gnu-gcc-13 mips-linux-gnu-ld #sh ../packobjs.sh riscv64 riscv64-linux-gnu-gcc-13 riscv64-linux-gnu-ld diff --git a/tools/crosscompile.sh b/tools/crosscompile.sh index 9b634bc..10d81d6 100644 --- a/tools/crosscompile.sh +++ b/tools/crosscompile.sh @@ -31,9 +31,13 @@ i686-linux-gnu-ld -r $STMP /object_files/musl_objects_x86.o -o $DEST/stencils_x8 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 $STMP -#arm-linux-gnu-ld -r $STMP /object_files/musl_objects_arm.o -o $DEST/stencils_arm_$OPT.o +# ARMv6 hardware fp +arm-none-eabi-gcc-13 -march=armv6 -mfpu=vfp -marm $FLAGS -$OPT -c $SRC -o $STMP +arm-none-eabi-ld -r $STMP /object_files/musl_objects_armv6.o -o $DEST/stencils_armv6_$OPT.o + +# ARMv7 hardware fp +arm-none-eabi-gcc-13 -march=armv7-a -mfpu=neon-vfpv3 -marm $FLAGS -$OPT -c $SRC -o $STMP +arm-none-eabi-ld -r $STMP /object_files/musl_objects_armv7.o -o $DEST/stencils_armv7_$OPT.o # PowerPC64LE # powerpc64le-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_ppc64le_$OPT.o