Compress base.img using FastLZ library

This commit is contained in:
2025-11-09 21:38:27 +01:00
parent e4a5c07b3d
commit 02d60129b1
58 changed files with 3676 additions and 10 deletions

View File

@ -0,0 +1,32 @@
name: amd64_linux_clang
on: [push, pull_request]
jobs:
amd64_linux_clang:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: clang
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt install -y make clang
- run: clang --version
- run: cd tests && make roundtrip
name: Perform round-trip tests
- name: 'Build examples: 6pack and 6unpack'
run: cd examples && make
- name: 'Run examples: 6pack and 6unpack'
run: |
cd examples
./6pack -v
./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
./6unpack -v
./6unpack archive.6pk

View File

@ -0,0 +1,32 @@
name: amd64_linux_gcc
on: [push, pull_request]
jobs:
amd64_linux_gcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt install -y make gcc
- run: gcc --version
- run: cd tests && make roundtrip
name: Perform round-trip tests
- name: 'Build examples: 6pack and 6unpack'
run: cd examples && make
- name: 'Run examples: 6pack and 6unpack'
run: |
cd examples
./6pack -v
./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
./6unpack -v
./6unpack archive.6pk

View File

@ -0,0 +1,32 @@
name: amd64_linux_tcc
on: [push, pull_request]
jobs:
amd64_linux_tcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: tcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt install -y make tcc
- run: tcc -v
- run: cd tests && make roundtrip
name: Perform round-trip tests
- name: 'Build examples: 6pack and 6unpack'
run: cd examples && make
- name: 'Run examples: 6pack and 6unpack'
run: |
cd examples
./6pack -v
./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
./6unpack -v
./6unpack archive.6pk

View File

@ -0,0 +1,29 @@
name: amd64_macos_clang
on: [push, pull_request]
jobs:
amd64_macos_clang:
runs-on: macos-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: cc --version
- run: cd tests && make roundtrip
name: Perform round-trip tests
- name: 'Build examples: 6pack and 6unpack'
run: cd examples && make
- name: 'Run examples: 6pack and 6unpack'
run: |
cd examples
./6pack -v
./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
./6unpack -v
./6unpack archive.6pk

View File

@ -0,0 +1,32 @@
name: amd64_macos_gcc
on: [push, pull_request]
jobs:
amd64_macos_gcc:
runs-on: macos-12
timeout-minutes: 10
env:
CC: gcc-9
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: brew install gcc@9
- run: gcc-9 --version
- run: cd tests && make roundtrip
name: Perform round-trip tests
- name: 'Build examples: 6pack and 6unpack'
run: cd examples && make
- name: 'Run examples: 6pack and 6unpack'
run: |
cd examples
./6pack -v
./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
./6unpack -v
./6unpack archive.6pk

View File

@ -0,0 +1,34 @@
name: amd64_windows_clang
on: [push, pull_request]
jobs:
amd64_windows_clang:
runs-on: windows-2019
timeout-minutes: 10
env:
CC: clang
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- uses: msys2/setup-msys2@v2
with:
install: make mingw-w64-x86_64-clang
- run: clang --version
- run: cd tests && make roundtrip
name: Perform round-trip tests
- name: 'Build examples: 6pack and 6unpack'
run: cd examples && make
- name: 'Run examples: 6pack and 6unpack'
run: |
cd examples
./6pack -v
./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
./6unpack -v
./6unpack archive.6pk

View File

@ -0,0 +1,34 @@
name: amd64_windows_gcc
on: [push, pull_request]
jobs:
amd64_windows_gcc:
runs-on: windows-2019
timeout-minutes: 10
env:
CC: gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- uses: msys2/setup-msys2@v2
with:
install: gcc make
- run: gcc --version
- run: cd tests && make roundtrip
name: Perform round-trip tests
- name: 'Build examples: 6pack and 6unpack'
run: cd examples && make
- name: 'Run examples: 6pack and 6unpack'
run: |
cd examples
./6pack -v
./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
./6unpack -v
./6unpack archive.6pk

View File

@ -0,0 +1,35 @@
name: amd64_windows_tcc
on: [push, pull_request]
jobs:
amd64_windows_tcc:
runs-on: windows-2019
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- name: Install tcc
run: |
echo "5a3979bd5044b795547a4948a5625a12 tcc.zip" > checksum.md5
dos2unix checksum.md5
curl -L -o tcc.zip https://archive.org/download/tinyccompiler/tcc-0.9.27-win32-bin.zip
md5sum -c checksum.md5 && unzip -q tcc.zip
- run: tcc\x86_64-win32-tcc.exe -v
- run: cd tests && make roundtrip CC=..\tcc\x86_64-win32-tcc.exe
name: Perform round-trip tests
- name: 'Build examples: 6pack and 6unpack'
run: cd examples && make CC=..\tcc\x86_64-win32-tcc.exe
- name: 'Run examples: 6pack and 6unpack'
run: |
cd examples
./6pack -v
./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
./6unpack -v
./6unpack archive.6pk

View File

@ -0,0 +1,30 @@
name: amd64_windows_vs2019
on: [push, pull_request]
jobs:
amd64_windows_vs2019:
runs-on: windows-2019
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- uses: ilammy/msvc-dev-cmd@v1
- run: cl
- run: cd tests && mingw32-make -f Makefile.win roundtrip
name: Perform round-trip tests
- name: 'Build examples: 6pack and 6unpack'
run: cd examples && make -f Makefile.win
- name: 'Run examples: 6pack and 6unpack'
run: |
cd examples
./6pack -v
./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
./6unpack -v
./6unpack archive.6pk

View File

@ -0,0 +1,41 @@
name: arm64_linux_gcc
on: [push, pull_request]
jobs:
arm64_linux_gcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: /opt/aarch64-linux-musl-cross/bin/aarch64-linux-musl-gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- run: sudo apt install -y qemu-user
- name: Prepare cross-compiler
run: |
curl -O http://musl.cc/aarch64-linux-musl-cross.tgz
tar xzf aarch64-linux-musl-cross.tgz -C /opt
- name: Verify compiler version
run: /opt/aarch64-linux-musl-cross/bin/aarch64-linux-musl-gcc --version
- name: Perform round-trip tests
run: |
cd tests
make test_roundtrip CFLAGS=-static
file ./test_roundtrip
qemu-aarch64 ./test_roundtrip
- name: 'Build and run example: 6pack and 6unpack'
run: |
cd examples
make CFLAGS=-static
qemu-aarch64 ./6pack -v
qemu-aarch64 ./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
qemu-aarch64 ./6unpack -v
qemu-aarch64 ./6unpack archive.6pk

View File

@ -0,0 +1,41 @@
name: armhf_linux_gcc
on: [push, pull_request]
jobs:
armhf_linux_gcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: /opt/armel-linux-musleabihf-cross/bin/armel-linux-musleabihf-gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- run: sudo apt install -y qemu-user
- name: Prepare cross-compiler
run: |
curl -O https://musl.cc/armel-linux-musleabihf-cross.tgz
tar xzf armel-linux-musleabihf-cross.tgz -C /opt
- name: Verify compiler version
run: /opt/armel-linux-musleabihf-cross/bin/armel-linux-musleabihf-gcc --version
- name: Perform round-trip tests
run: |
cd tests
make test_roundtrip CFLAGS=-static
file ./test_roundtrip
qemu-arm ./test_roundtrip
- name: 'Build and run example: 6pack and 6unpack'
run: |
cd examples
make CFLAGS=-static
qemu-arm ./6pack -v
qemu-arm ./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
qemu-arm ./6unpack -v
qemu-arm ./6unpack archive.6pk

29
FastLZ/.github/workflows/asan.yml vendored Normal file
View File

@ -0,0 +1,29 @@
name: Address Sanitizer
on: [push, pull_request]
jobs:
asan:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt install -y make gcc
- run: gcc --version
- run: cd tests && make roundtrip
name: Perform round-trip tests
env:
CFLAGS: "-g -fno-omit-frame-pointer -fsanitize=address"
- run: cd tests && make roundtrip
name: Perform round-trip tests with FASTLZ_USE_MEMMOVE=0
env:
CFLAGS: "-g -fno-omit-frame-pointer -fsanitize=address -DFASTLZ_USE_MEMMOVE=0"

19
FastLZ/.github/workflows/codestyle.yml vendored Normal file
View File

@ -0,0 +1,19 @@
name: Code style
on: [push, pull_request]
jobs:
codestyle:
runs-on: ubuntu-20.04
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
- run: sudo apt install -y clang-format-6.0
name: Install clang-format
- run: clang-format-6.0 --version
- run: bash tools/format-code.sh
name: Run code formatter
- run: git diff
- run: git diff --quiet HEAD
name: Check if the styling guide is followed

View File

@ -0,0 +1,52 @@
name: i586_dos_gcc_cross
on: [push, pull_request]
jobs:
i586_dos_gcc_cross:
runs-on: ubuntu-20.04
timeout-minutes: 15
env:
CC: /opt/djgpp/bin/i586-pc-msdosdjgpp-gcc
LDFLAGS: -static
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- name: Prepare cross-compiler
run: |
curl -OL https://github.com/andrewwutw/build-djgpp/releases/download/v3.3/djgpp-linux64-gcc1210.tar.bz2
tar xf djgpp-linux64-gcc1210.tar.bz2 -C /opt
- name: Verify compiler version
run: /opt/djgpp/bin/i586-pc-msdosdjgpp-gcc --version
- name: Install DOSEMU2
run: |
sudo add-apt-repository -y ppa:dosemu2/ppa
sudo apt update -y
sudo apt install -y dosemu2
- run: dosemu --version
- name: Perform round-trip tests
run: |
cd tests
ln -s ../compression-corpus/ corpus
make test_roundtrip TEST_ROUNDTRIP=testrr
file ./testrr.exe
dosemu -dumb -K . -t -E "testrr corpus/"
- name: 'Build and run example: 6pack and 6unpack'
run: |
cd examples
ln -s ../compression-corpus/enwik/enwik8.txt enwik8.txt
make
file ./6pack.exe
dosemu -K . -t -E "6pack.exe -v"
dosemu -K . -t -E "6pack.exe enwik8.txt archive.6pk"
mv enwik8.txt enwik8.txt.orig
dosemu -K . -t -E "6unpack.exe -v"
dosemu -K . -t -E "6unpack.exe archive.6pk"
ls -l enwik8*

View File

@ -0,0 +1,36 @@
name: i686_linux_clang
on: [push, pull_request]
jobs:
i686_linux_clang:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: clang
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- run: sudo apt install -y make clang gcc-multilib qemu-user
- run: clang --version
- name: Perform round-trip tests
run: |
cd tests
make test_roundtrip CFLAGS="-static -m32"
file ./test_roundtrip
qemu-i386 ./test_roundtrip
- name: 'Build and run example: 6pack and 6unpack'
run: |
cd examples
make CFLAGS="-static -m32"
qemu-i386 ./6pack -v
qemu-i386 ./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
qemu-i386 ./6unpack -v
qemu-i386 ./6unpack archive.6pk

View File

@ -0,0 +1,41 @@
name: i686_linux_gcc
on: [push, pull_request]
jobs:
i686_linux_gcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: /opt/i686-linux-musl-cross/bin/i686-linux-musl-gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- run: sudo apt install -y qemu-user
- name: Prepare cross-compiler
run: |
curl -O https://musl.cc/i686-linux-musl-cross.tgz
tar xzf i686-linux-musl-cross.tgz -C /opt
- name: Verify compiler version
run: /opt/i686-linux-musl-cross/bin/i686-linux-musl-gcc --version
- name: Perform round-trip tests
run: |
cd tests
make test_roundtrip CFLAGS=-static
file ./test_roundtrip
qemu-i386 ./test_roundtrip
- name: 'Build and run examples: 6pack and 6unpack'
run: |
cd examples
make CFLAGS=-static
qemu-i386 ./6pack -v
qemu-i386 ./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
qemu-i386 ./6unpack -v
qemu-i386 ./6unpack archive.6pk

View File

@ -0,0 +1,35 @@
name: i686_windows_tcc
on: [push, pull_request]
jobs:
i686_windows_tcc:
runs-on: windows-2019
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- name: Install tcc
run: |
echo "D73CF66CEC8C761DE38C7A3D16C9EB0D tcc.zip" > checksum.md5
dos2unix checksum.md5
curl -L -o tcc.zip https://archive.org/download/tinyccompiler/tcc-0.9.27-win64-bin.zip
md5sum -c checksum.md5 && unzip -q tcc.zip
- run: tcc\i386-win32-tcc.exe -v
- run: cd tests && make roundtrip CC=..\tcc\i386-win32-tcc.exe
name: Perform round-trip tests
- name: 'Build examples: 6pack and 6unpack'
run: cd examples && make CC=..\tcc\i386-win32-tcc.exe
- name: 'Run examples: 6pack and 6unpack'
run: |
cd examples
./6pack -v
./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
./6unpack -v
./6unpack archive.6pk

View File

@ -0,0 +1,32 @@
name: i686_windows_vs2019
on: [push, pull_request]
jobs:
i686_windows_vs2019:
runs-on: windows-2019
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- uses: ilammy/msvc-dev-cmd@v1
with:
arch: x86
- run: cl
- run: cd tests && mingw32-make -f Makefile.win roundtrip
name: Perform round-trip tests
- name: 'Build examples: 6pack and 6unpack'
run: cd examples && make -f Makefile.win
- name: 'Run examples: 6pack and 6unpack'
run: |
cd examples
./6pack -v
./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
./6unpack -v
./6unpack archive.6pk

View File

@ -0,0 +1,41 @@
name: mips64_linux_gcc
on: [push, pull_request]
jobs:
mips64_linux_gcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: /opt/mips64-linux-musl-cross/bin/mips64-linux-musl-gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- run: sudo apt install -y qemu-user
- name: Prepare cross-compiler
run: |
curl -O http://musl.cc/mips64-linux-musl-cross.tgz
tar xzf mips64-linux-musl-cross.tgz -C /opt
- name: Verify compiler version
run: /opt/mips64-linux-musl-cross/bin/mips64-linux-musl-gcc --version
- name: Perform round-trip tests
run: |
cd tests
make test_roundtrip CFLAGS=-static
file ./test_roundtrip
qemu-mips64 ./test_roundtrip
- name: 'Build and run example: 6pack and 6unpack'
run: |
cd examples
make CFLAGS=-static
qemu-mips64 ./6pack -v
qemu-mips64 ./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
qemu-mips64 ./6unpack -v
qemu-mips64 ./6unpack archive.6pk

View File

@ -0,0 +1,41 @@
name: mips64el_linux_gcc
on: [push, pull_request]
jobs:
mips64el_linux_gcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: /opt/mips64el-linux-musl-cross/bin/mips64el-linux-musl-gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- run: sudo apt install -y qemu-user
- name: Prepare cross-compiler
run: |
curl -O http://musl.cc/mips64el-linux-musl-cross.tgz
tar xzf mips64el-linux-musl-cross.tgz -C /opt
- name: Verify compiler version
run: /opt/mips64el-linux-musl-cross/bin/mips64el-linux-musl-gcc --version
- name: Perform round-trip tests
run: |
cd tests
make test_roundtrip CFLAGS=-static
file ./test_roundtrip
qemu-mips64el ./test_roundtrip
- name: 'Build and run example: 6pack and 6unpack'
run: |
cd examples
make CFLAGS=-static
qemu-mips64el ./6pack -v
qemu-mips64el ./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
qemu-mips64el ./6unpack -v
qemu-mips64el ./6unpack archive.6pk

View File

@ -0,0 +1,41 @@
name: mips_linux_gcc
on: [push, pull_request]
jobs:
mips_linux_gcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: /opt/mips-linux-musl-cross/bin/mips-linux-musl-gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- run: sudo apt install -y qemu-user
- name: Prepare cross-compiler
run: |
curl -O http://musl.cc/mips-linux-musl-cross.tgz
tar xzf mips-linux-musl-cross.tgz -C /opt
- name: Verify compiler version
run: /opt/mips-linux-musl-cross/bin/mips-linux-musl-gcc --version
- name: Perform round-trip tests
run: |
cd tests
make test_roundtrip CFLAGS=-static
file ./test_roundtrip
qemu-mips ./test_roundtrip
- name: 'Build and run example: 6pack and 6unpack'
run: |
cd examples
make CFLAGS=-static
qemu-mips ./6pack -v
qemu-mips ./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
qemu-mips ./6unpack -v
qemu-mips ./6unpack archive.6pk

View File

@ -0,0 +1,41 @@
name: mipsel_linux_gcc
on: [push, pull_request]
jobs:
mipsel_linux_gcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: /opt/mipsel-linux-musl-cross/bin/mipsel-linux-musl-gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- run: sudo apt install -y qemu-user
- name: Prepare cross-compiler
run: |
curl -O http://musl.cc/mipsel-linux-musl-cross.tgz
tar xzf mipsel-linux-musl-cross.tgz -C /opt
- name: Verify compiler version
run: /opt/mipsel-linux-musl-cross/bin/mipsel-linux-musl-gcc --version
- name: Perform round-trip tests
run: |
cd tests
make test_roundtrip CFLAGS=-static
file ./test_roundtrip
qemu-mipsel ./test_roundtrip
- name: 'Build and run example: 6pack and 6unpack'
run: |
cd examples
make CFLAGS=-static
qemu-mipsel ./6pack -v
qemu-mipsel ./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
qemu-mipsel ./6unpack -v
qemu-mipsel ./6unpack archive.6pk

View File

@ -0,0 +1,41 @@
name: powerpc_linux_gcc
on: [push, pull_request]
jobs:
powerpc_linux_gcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: /opt/powerpc-linux-musl-cross/bin/powerpc-linux-musl-gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- run: sudo apt install -y qemu-user
- name: Prepare cross-compiler
run: |
curl -O http://musl.cc/powerpc-linux-musl-cross.tgz
tar xzf powerpc-linux-musl-cross.tgz -C /opt
- name: Verify compiler version
run: /opt/powerpc-linux-musl-cross/bin/powerpc-linux-musl-gcc --version
- name: Perform round-trip tests
run: |
cd tests
make test_roundtrip CFLAGS=-static
file ./test_roundtrip
qemu-ppc ./test_roundtrip
- name: 'Build and run example: 6pack and 6unpack'
run: |
cd examples
make CFLAGS=-static
qemu-ppc ./6pack -v
qemu-ppc ./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
qemu-ppc ./6unpack -v
qemu-ppc ./6unpack archive.6pk

View File

@ -0,0 +1,41 @@
name: ppc64_linux_gcc
on: [push, pull_request]
jobs:
ppc64_linux_gcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: /opt/powerpc64-linux-musl-cross/bin/powerpc64-linux-musl-gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- run: sudo apt install -y qemu-user
- name: Prepare cross-compiler
run: |
curl -O http://musl.cc/powerpc64-linux-musl-cross.tgz
tar xzf powerpc64-linux-musl-cross.tgz -C /opt
- name: Verify compiler version
run: /opt/powerpc64-linux-musl-cross/bin/powerpc64-linux-musl-gcc --version
- name: Perform round-trip tests
run: |
cd tests
make test_roundtrip CFLAGS=-static
file ./test_roundtrip
qemu-ppc64 ./test_roundtrip
- name: 'Build and run example: 6pack and 6unpack'
run: |
cd examples
make CFLAGS=-static
qemu-ppc64 ./6pack -v
qemu-ppc64 ./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
qemu-ppc64 ./6unpack -v
qemu-ppc64 ./6unpack archive.6pk

View File

@ -0,0 +1,41 @@
name: ppc64le_linux_gcc
on: [push, pull_request]
jobs:
ppc64le_linux_gcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: /opt/powerpc64le-linux-musl-cross/bin/powerpc64le-linux-musl-gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- run: sudo apt install -y qemu-user
- name: Prepare cross-compiler
run: |
curl -O http://musl.cc/powerpc64le-linux-musl-cross.tgz
tar xzf powerpc64le-linux-musl-cross.tgz -C /opt
- name: Verify compiler version
run: /opt/powerpc64le-linux-musl-cross/bin/powerpc64le-linux-musl-gcc --version
- name: Perform round-trip tests
run: |
cd tests
make test_roundtrip CFLAGS=-static
file ./test_roundtrip
qemu-ppc64le ./test_roundtrip
- name: 'Build and run example: 6pack and 6unpack'
run: |
cd examples
make CFLAGS=-static
qemu-ppc64le ./6pack -v
qemu-ppc64le ./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
qemu-ppc64le ./6unpack -v
qemu-ppc64le ./6unpack archive.6pk

View File

@ -0,0 +1,41 @@
name: riscv64_linux_gcc
on: [push, pull_request]
jobs:
riscv64_linux_gcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: /opt/riscv64-linux-musl-cross/bin/riscv64-linux-musl-gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- run: sudo apt install -y qemu-user
- name: Prepare cross-compiler
run: |
curl -O http://musl.cc/riscv64-linux-musl-cross.tgz
tar xzf riscv64-linux-musl-cross.tgz -C /opt
- name: Verify compiler version
run: /opt/riscv64-linux-musl-cross/bin/riscv64-linux-musl-gcc --version
- name: Perform round-trip tests
run: |
cd tests
make test_roundtrip CFLAGS=-static
file ./test_roundtrip
qemu-riscv64 ./test_roundtrip
- name: 'Build and run example: 6pack and 6unpack'
run: |
cd examples
make CFLAGS=-static
qemu-riscv64 ./6pack -v
qemu-riscv64 ./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
qemu-riscv64 ./6unpack -v
qemu-riscv64 ./6unpack archive.6pk

View File

@ -0,0 +1,41 @@
name: riscv_linux_gcc
on: [push, pull_request]
jobs:
riscv_linux_gcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: /opt/riscv32-linux-musl-cross/bin/riscv32-linux-musl-gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- run: sudo apt install -y qemu-user
- name: Prepare cross-compiler
run: |
curl -O http://musl.cc/riscv32-linux-musl-cross.tgz
tar xzf riscv32-linux-musl-cross.tgz -C /opt
- name: Verify compiler version
run: /opt/riscv32-linux-musl-cross/bin/riscv32-linux-musl-gcc --version
- name: Perform round-trip tests
run: |
cd tests
make test_roundtrip CFLAGS=-static
file ./test_roundtrip
qemu-riscv32 ./test_roundtrip
- name: 'Build and run example: 6pack and 6unpack'
run: |
cd examples
make CFLAGS=-static
qemu-riscv32 ./6pack -v
qemu-riscv32 ./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
qemu-riscv32 ./6unpack -v
qemu-riscv32 ./6unpack archive.6pk

View File

@ -0,0 +1,41 @@
name: s390x_linux_gcc
on: [push, pull_request]
jobs:
s390x_linux_gcc:
runs-on: ubuntu-20.04
timeout-minutes: 10
env:
CC: /opt/s390x-linux-musl-cross/bin/s390x-linux-musl-gcc
steps:
- uses: actions/checkout@v3
- name: Retrieve test compression corpus
run: |
git clone https://github.com/ariya/compression-corpus.git
cd compression-corpus
cd enwik
unzip enwik8.zip
- run: sudo apt-get -y -qq update
- run: sudo apt install -y qemu-user
- name: Prepare cross-compiler
run: |
curl -O http://musl.cc/s390x-linux-musl-cross.tgz
tar xzf s390x-linux-musl-cross.tgz -C /opt
- name: Verify compiler version
run: /opt/s390x-linux-musl-cross/bin/s390x-linux-musl-gcc --version
- name: Perform round-trip tests
run: |
cd tests
make test_roundtrip CFLAGS=-static
file ./test_roundtrip
qemu-s390x ./test_roundtrip
- name: 'Build and run example: 6pack and 6unpack'
run: |
cd examples
make CFLAGS=-static
qemu-s390x ./6pack -v
qemu-s390x ./6pack ../compression-corpus/enwik/enwik8.txt archive.6pk
qemu-s390x ./6unpack -v
qemu-s390x ./6unpack archive.6pk