mirror of https://github.com/Nonannet/copapy.git
ci and build scripts updated for armv7
This commit is contained in:
parent
4c4e83a18e
commit
8db2c41e1b
|
|
@ -61,5 +61,34 @@ jobs:
|
|||
run: echo "IMAGE_NAME=ghcr.io/${GITHUB_REPOSITORY_OWNER,,}/arm64_test:1" >> $GITHUB_ENV
|
||||
|
||||
- name: Build & Push Docker image
|
||||
run: docker buildx build --platform linux/arm64 --push -t $IMAGE_NAME tools/arm64_test/
|
||||
run: docker buildx build --platform linux/arm64 --push -t $IMAGE_NAME tools/qemu_test/
|
||||
|
||||
docker-build-armv7:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Log in to GitHub Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
with:
|
||||
platforms: arm
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Set image name
|
||||
run: echo "IMAGE_NAME=ghcr.io/${GITHUB_REPOSITORY_OWNER,,}/armv7_test:1" >> $GITHUB_ENV
|
||||
|
||||
- name: Build & Push Docker image
|
||||
run: docker buildx build --platform linux/arm/v7 --push -t $IMAGE_NAME tools/qemu_test/
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@ name: CI Pipeline
|
|||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
branches: [main, dev]
|
||||
pull_request:
|
||||
branches: [main]
|
||||
branches: [main, dev]
|
||||
|
||||
jobs:
|
||||
build_stencils:
|
||||
|
|
@ -149,6 +149,34 @@ jobs:
|
|||
name: runner-linux-arm64
|
||||
path: build/runner/*
|
||||
|
||||
build-armv7:
|
||||
needs: [build_stencils]
|
||||
runs-on: ubuntu-latest
|
||||
continue-on-error: true
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: stencil-object-files
|
||||
path: src/copapy/obj
|
||||
- name: Set up QEMU for ARMv7
|
||||
uses: docker/setup-qemu-action@v3
|
||||
with:
|
||||
platforms: linux/arm/v7
|
||||
- name: Use ARMv7 container
|
||||
run: |
|
||||
docker run --rm -v $PWD:/app -w /app --platform linux/arm/v7 ghcr.io/nonannet/armv7_test:1 \
|
||||
bash -lc "pip install . && \
|
||||
mkdir -p build/runner && \
|
||||
gcc -O3 -DENABLE_LOGGING -o build/runner/coparun src/coparun/runmem.c \
|
||||
src/coparun/coparun.c src/coparun/mem_man.c && \
|
||||
pytest"
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: runner-linux-armv7
|
||||
path: build/runner/*
|
||||
|
||||
build-windows:
|
||||
needs: [build_stencils]
|
||||
runs-on: windows-latest
|
||||
|
|
@ -204,7 +232,7 @@ jobs:
|
|||
path: build/runner/*
|
||||
|
||||
release-stencils:
|
||||
needs: [build_stencils, build-ubuntu, build-windows, build-arm64]
|
||||
needs: [build_stencils, build-ubuntu, build-windows, build-arm64, build-armv7]
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'push'
|
||||
permissions:
|
||||
|
|
@ -236,7 +264,8 @@ jobs:
|
|||
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/
|
||||
cp tmp/runner-linux-arm64/coparun release/coparun-aarch64
|
||||
cp tmp/runner-linux-armv7/coparun release/coparun-armv7
|
||||
cp tmp/runner-win/coparun*.exe release/
|
||||
|
||||
TAG="${{ steps.version.outputs.version }}"
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ wsl arm-none-eabi-ld -r build/stencils/stencils.o build/musl/musl_objects_armv6.
|
|||
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
|
||||
REM wsl arm-linux-gnueabihf-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
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,20 +1,28 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
set -v
|
||||
mkdir -p bin
|
||||
|
||||
mkdir -p build/stencils
|
||||
mkdir -p build/runner
|
||||
|
||||
SRC=build/stencils/stencils.c
|
||||
DEST=src/copapy/obj
|
||||
python3 stencils/generate_stencils.py $SRC
|
||||
mkdir -p $DEST
|
||||
gcc --version
|
||||
#gcc -fno-pic -c $SRC -O0 -o $DEST/stencils_x86_64_O0.o
|
||||
#gcc -fno-pic -c $SRC -O1 -o $DEST/stencils_x86_64_O1.o
|
||||
#gcc -fno-pic -c $SRC -O2 -o $DEST/stencils_x86_64_O2.o
|
||||
gcc -fno-pic -c $SRC -O3 -o $DEST/stencils_x86_64_O3.o
|
||||
|
||||
gcc -fno-pic -ffunction-sections -c $SRC -O3 -o build/stencils/stencils.o
|
||||
ld -r build/stencils/stencils.o build/musl/musl_objects_x86_64.o -o $DEST/stencils_x86_64_O3.o
|
||||
objdump -d -x $DEST/stencils_x86_64_O3.o > build/stencils/stencils_x86_64_O3.asm
|
||||
|
||||
mkdir bin -p
|
||||
gcc -Wall -Wextra -Wconversion -Wsign-conversion \
|
||||
-Wshadow -Wstrict-overflow -Werror -g -O3 \
|
||||
-DENABLE_LOGGING
|
||||
-DENABLE_LOGGING \
|
||||
src/coparun/runmem.c src/coparun/coparun.c src/coparun/mem_man.c -o build/runner/coparun
|
||||
#x86_64-w64-mingw32-gcc -Wall -Wextra -Wconversion -Wsign-conversion -Wshadow -Wstrict-overflow -Werror src/runner/runmem2.c -Wall -O3 -o bin/runmem2.exe
|
||||
|
||||
|
||||
echo "--------------arm-v7 32 bit----------------"
|
||||
arm-none-eabi-gcc -fno-pic -ffunction-sections -march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -marm -c $SRC -O3 -o build/stencils/stencils.o
|
||||
arm-none-eabi-ld -r build/stencils/stencils.o build/musl/musl_objects_armv7.o -o $DEST/stencils_armv7_O3.o
|
||||
arm-none-eabi-objdump -d -x $DEST/stencils_armv7_O3.o > build/stencils/stencils_armv7_O3.asm
|
||||
arm-linux-gnueabihf-gcc -march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -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
|
||||
|
|
|
|||
|
|
@ -16,9 +16,9 @@ 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_armv6.o "-march=armv6 -mfpu=vfp -mfloat-abi=hard -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 arm-none-eabi-gcc-13 arm-none-eabi-ld /object_files/musl_objects_armv7.o "-march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -marm"
|
||||
|
||||
#sh ../packobjs.sh mips mips-linux-gnu-gcc-13 mips-linux-gnu-ld
|
||||
|
||||
|
|
|
|||
|
|
@ -32,11 +32,11 @@ 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
|
||||
|
||||
# ARMv6 hardware fp
|
||||
arm-none-eabi-gcc-13 -march=armv6 -mfpu=vfp -marm $FLAGS -$OPT -c $SRC -o $STMP
|
||||
arm-none-eabi-gcc-13 -march=armv6 -mfpu=vfp -mfloat-abi=hard -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-gcc-13 -march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -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
|
||||
|
|
|
|||
|
|
@ -1,9 +1,16 @@
|
|||
#!/bin/bash
|
||||
|
||||
source tools/build.sh
|
||||
set -e
|
||||
set -v
|
||||
|
||||
objdump -d -j .text src/copapy/obj/stencils_x86_64_O3.o > build/stencils/stencils_x86_64_O3.asm
|
||||
sh tools/build.sh
|
||||
|
||||
#objdump -d -j .text src/copapy/obj/stencils_x86_64_O3.o > build/stencils/stencils_x86_64_O3.asm
|
||||
|
||||
python3 tools/make_example.py
|
||||
python3 tools/extract_code.py "build/runner/test.copapy" "build/runner/test.copapy.bin"
|
||||
|
||||
build/runner/coparun build/runner/test.copapy build/runner/test.copapy.bin
|
||||
objdump -D -b binary -m i386:x86-64 --adjust-vma=0x1000 build/runner/test.copapy.bin > build/runner/test.copapy.asm
|
||||
|
||||
build/runner/coparun-armv7 build/runner/test-armv7.copapy build/runner/test.copapy-armv7.bin
|
||||
arm-none-eabi-objdump -D -b binary -marm --adjust-vma=0x50000 build/runner/test.copapy-armv7.bin > build/runner/test.copapy-armv7.asm
|
||||
|
|
|
|||
Loading…
Reference in New Issue