build script for local stencil builds updated for ARM64, ARM-Thumb and ARM-CortexM-Thumb

This commit is contained in:
Nicolas 2026-03-02 21:32:12 +01:00
parent accb03f042
commit d2069d5d07
1 changed files with 38 additions and 7 deletions

View File

@ -4,10 +4,10 @@ set -eu
ARCH=${1:-x86_64} ARCH=${1:-x86_64}
case "$ARCH" in case "$ARCH" in
(x86_64|arm-v6|arm-v7|arm-v7-thumb|arm-v7m-thumb|all) (x86_64|arm64|arm-v6|arm-v7|arm-v7-thumb|arm-v7m-thumb|all)
;; ;;
(*) (*)
echo "Usage: $0 [x86_64|arm-v6|arm-v7|arm-v6-thumb|arm-v7m-thumb|all]" echo "Usage: $0 [x86_64|arm64|arm-v6|arm-v7|arm-v6-thumb|arm-v7m-thumb|all]"
exit 1 exit 1
;; ;;
esac esac
@ -42,13 +42,44 @@ if [[ "$ARCH" == "x86_64" || "$ARCH" == "all" ]]; then
-o build/runner/coparun -o build/runner/coparun
fi fi
#######################################
# ARM 64
#######################################
if [[ "$ARCH" == "arm64" || "$ARCH" == "all" ]]; then
echo "--------------arm64----------------"
LIBGCC=$(aarch64-linux-gnu-gcc -print-libgcc-file-name)
aarch64-linux-gnu-gcc -fno-pic -ffunction-sections \
-c $SRC -O3 -o build/stencils/stencils.o
aarch64-linux-gnu-ld -r \
build/stencils/stencils.o \
build/musl/musl_objects_arm64.o \
$LIBGCC \
-o $DEST/stencils_arm64_O3.o
aarch64-linux-gnu-objdump -d -x \
$DEST/stencils_arm64_O3.o \
> build/stencils/stencils_arm64_O3.asm
aarch64-linux-gnu-gcc \
-Wall -Wextra -Wconversion -Wsign-conversion -static \
-Wshadow -Wstrict-overflow -O3 \
-DENABLE_LOGGING \
src/coparun/runmem.c \
src/coparun/coparun.c \
src/coparun/mem_man.c \
-o build/runner/coparun-arm64
fi
####################################### #######################################
# ARM v6 # ARM v6
####################################### #######################################
if [[ "$ARCH" == "arm-v6" || "$ARCH" == "all" ]]; then if [[ "$ARCH" == "arm-v6" || "$ARCH" == "all" ]]; then
echo "--------------arm-v6 32 bit----------------" echo "--------------arm-v6 32 bit----------------"
LIBGCC=$(arm-none-eabi-gcc -print-libgcc-file-name) LIBGCC=$(arm-none-eabi-gcc -march=armv6 -mfpu=vfp -mfloat-abi=hard -marm -print-libgcc-file-name)
arm-none-eabi-gcc -fno-pic -ffunction-sections \ arm-none-eabi-gcc -fno-pic -ffunction-sections \
-march=armv6 -mfpu=vfp -mfloat-abi=hard -marm \ -march=armv6 -mfpu=vfp -mfloat-abi=hard -marm \
@ -81,7 +112,7 @@ fi
if [[ "$ARCH" == "arm-v7" || "$ARCH" == "all" ]]; then if [[ "$ARCH" == "arm-v7" || "$ARCH" == "all" ]]; then
echo "--------------arm-v7 32 bit----------------" echo "--------------arm-v7 32 bit----------------"
LIBGCC=$(arm-none-eabi-gcc -print-libgcc-file-name) LIBGCC=$(arm-none-eabi-gcc -march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -marm -print-libgcc-file-name)
arm-none-eabi-gcc -fno-pic -ffunction-sections \ arm-none-eabi-gcc -fno-pic -ffunction-sections \
-march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -marm \ -march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -marm \
@ -114,7 +145,7 @@ fi
if [[ "$ARCH" == "arm-v7-thumb" || "$ARCH" == "all" ]]; then if [[ "$ARCH" == "arm-v7-thumb" || "$ARCH" == "all" ]]; then
echo "--------------arm-v7a-thumb 32 bit----------------" echo "--------------arm-v7a-thumb 32 bit----------------"
LIBGCC=$(arm-none-eabi-gcc -print-libgcc-file-name) LIBGCC=$(arm-none-eabi-gcc -march=armv7 -mfpu=vfp3 -mthumb -print-libgcc-file-name)
arm-none-eabi-gcc -fno-pic -ffunction-sections \ arm-none-eabi-gcc -fno-pic -ffunction-sections \
-march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -mthumb \ -march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -mthumb \
@ -122,7 +153,7 @@ if [[ "$ARCH" == "arm-v7-thumb" || "$ARCH" == "all" ]]; then
arm-none-eabi-ld -r \ arm-none-eabi-ld -r \
build/stencils/stencils.o \ build/stencils/stencils.o \
build/musl/musl_objects_armv7.o \ build/musl/musl_objects_armv7thumb.o \
$LIBGCC \ $LIBGCC \
-o $DEST/stencils_armv7thumb_O3.o -o $DEST/stencils_armv7thumb_O3.o
@ -147,7 +178,7 @@ fi
if [[ "$ARCH" == "arm-v7m-thumb" || "$ARCH" == "all" ]]; then if [[ "$ARCH" == "arm-v7m-thumb" || "$ARCH" == "all" ]]; then
echo "--------------arm-v7m-thumb 32 bit----------------" echo "--------------arm-v7m-thumb 32 bit----------------"
LIBGCC=$(arm-none-eabi-gcc -print-libgcc-file-name) LIBGCC=$(arm-none-eabi-gcc -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -print-libgcc-file-name)
arm-none-eabi-gcc -fno-pic -ffunction-sections \ arm-none-eabi-gcc -fno-pic -ffunction-sections \
-march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb \ -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb \