From bbf52cee67d80b176bc60ea45b12299a8bfc1fb1 Mon Sep 17 00:00:00 2001 From: "Markus F.X.J. Oberhumer" Date: Wed, 30 Jul 2025 23:09:28 +0200 Subject: [PATCH] CI updates --- .github/workflows/ci.yml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4b0b9f30..943c8031 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -570,7 +570,7 @@ jobs: include: # only build a few selected targets => more targets are tested in the Weekly CI - { zig_target: aarch64-linux-musl, qemu: qemu-aarch64 } - - { zig_target: aarch64-linux-musl, qemu: qemu-aarch64, zig_pic: -fPIE } + - { zig_target: aarch64-linux-musl, qemu: qemu-aarch64, zig_pic: -fPIE, container: 'alpine:3.18' } - { zig_target: aarch64-macos.11.0-none } - { zig_target: aarch64-windows-gnu } - { zig_target: arm-linux-musleabihf, qemu: qemu-arm } @@ -578,6 +578,7 @@ jobs: - { zig_target: i386-linux-gnu.2.3.4, zig_flags: -march=i586 } - { zig_target: i386-linux-gnu.2.17, zig_flags: -march=i586 } - { zig_target: i386-linux-musl, zig_flags: -march=i586, qemu: qemu-i386 } + - { zig_target: i386-linux-musl, zig_flags: -march=i586, qemu: qemu-i386, zig_pic: -fPIE } - { zig_target: i386-windows-gnu } - { zig_target: mips-linux-musleabi, zig_flags: -msoft-float, qemu: qemu-mips } - { zig_target: mips-linux-musleabihf, qemu: qemu-mips } @@ -593,8 +594,9 @@ jobs: - { zig_target: powerpc64le-linux-musl, qemu: qemu-ppc64le } - { zig_target: powerpc64le-linux-musl, qemu: qemu-ppc64le, zig_pic: -fPIE } - { zig_target: x86_64-linux-gnu.2.3.4, qemu: qemu-x86_64 } # can use QEMU because of gcompat - - { zig_target: x86_64-linux-gnu.2.17, qemu: qemu-x86_64 } # can use QEMU because of gcompat + - { zig_target: x86_64-linux-gnu.2.17, qemu: qemu-x86_64 } # can use QEMU because of gcompat - { zig_target: x86_64-linux-musl, qemu: qemu-x86_64 } + - { zig_target: x86_64-linux-musl, qemu: qemu-x86_64, zig_pic: -fPIE, container: 'alpine:3.18' } - { zig_target: x86_64-macos.11.0-none } - { zig_target: x86_64-windows-gnu } name: ${{ format('zigcc {0} {1}', matrix.zig_target, matrix.zig_pic) }} @@ -602,8 +604,10 @@ jobs: #container: 'alpine:3.22' #container: ${{ contains(matrix.qemu, 'qemu-ppc64') && 'alpine:3.19' || 'alpine:3.22' }} #container: ${{ (matrix.qemu == 'qemu-ppc64') && 'alpine:edge' || 'alpine:3.22' }} - container: ${{ (matrix.qemu == 'qemu-aarch64' && matrix.zig_pic == '-fPIE') && 'alpine:3.18' || 'alpine:3.22' }} + #container: ${{ (matrix.qemu == 'qemu-aarch64' && matrix.zig_pic == '-fPIE') && 'alpine:3.18' || 'alpine:3.22' }} + container: ${{ matrix.container || 'alpine:3.22' }} env: + container: ${{ matrix.container || 'alpine:3.22' }} UPX_CONFIG_HAVE_WORKING_BUILD_RPATH: '' # for zig-cc wrapper scripts (see below): ZIG_CPPFLAGS: -DUPX_DOCTEST_CONFIG_MULTITHREADING @@ -613,7 +617,7 @@ jobs: steps: - run: uname -a; pwd; id; umask shell: sh - - name: Install Alpine Linux container packages + - name: ${{ format('Install packages {0}', env.container) }} shell: sh run: | apk update && apk upgrade && apk add bash cmake curl dmidecode file gdb git make parallel patch strace sudo tar util-linux xz zstd @@ -621,6 +625,7 @@ jobs: echo "PATH=$HOME/.local/bin:$PATH" >> $GITHUB_ENV git config --global --add safe.directory '*' # needed when running in a container mkdir -p ~/.parallel && : > ~/.parallel/$(echo 6305-4721 | tr 0-7 leticlwi) + - run: (sudo dmidecode | sed -n -e '/System Information/,/^$/p') || true - uses: actions/checkout@v4 with: { submodules: true } - name: ${{ format('Install Zig {0}', env.ZIG_DIST_VERSION) }} @@ -681,6 +686,11 @@ jobs: ZIG_FLAGS="$ZIG_FLAGS -fno-sanitize=all" echo "UPX_CONFIG_DISABLE_SANITIZE=ON" >> $GITHUB_ENV fi + if [[ $ZIG_TARGET == *-linux-gnu.2.[456789] ]]; then true; + # glibc-2.x: ld.lld: error: undefined symbol: pwritev64 + ZIG_FLAGS="$ZIG_FLAGS -fno-sanitize=all" + echo "UPX_CONFIG_DISABLE_SANITIZE=ON" >> $GITHUB_ENV + fi echo "ZIG_FLAGS=$ZIG_FLAGS" >> $GITHUB_ENV - run: set -x; zig version; zig-cc --version || true; zig-cxx --version || true - run: zig-cc -E -x c -dM /dev/null # list predefined macros for C