From 815ca8c6784f59de825058b2b84bdb59b854feee Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Tue, 11 Feb 2025 09:19:08 -0800 Subject: [PATCH 1/8] ubuntu 20 is being deprecated change ubuntu20 tests to use more modern ubuntu variants --- .github/workflows/dev-short-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-short-tests.yml b/.github/workflows/dev-short-tests.yml index 2b35354d2..392b005f6 100644 --- a/.github/workflows/dev-short-tests.yml +++ b/.github/workflows/dev-short-tests.yml @@ -38,7 +38,7 @@ jobs: CFLAGS="-m32 -O1 -fstack-protector" make check V=1 check-x32: - runs-on: ubuntu-20.04 # ubuntu-latest == ubuntu-22.04 have issues currently with x32 + runs-on: ubuntu-lastest # ubuntu-latest == ubuntu-22.04 have issues currently with x32 steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1 - name: make check on x32 ABI # https://en.wikipedia.org/wiki/X32_ABI @@ -467,7 +467,7 @@ jobs: qemu-consistency: name: QEMU ${{ matrix.name }} - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: fail-fast: false # 'false' means Don't stop matrix workflows even if some matrix failed. matrix: From fc1baf34637e7f230996cdc8ca259bf71809978a Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Tue, 11 Feb 2025 09:57:18 -0800 Subject: [PATCH 2/8] move qemu tests to ubuntu24 --- .github/workflows/dev-short-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dev-short-tests.yml b/.github/workflows/dev-short-tests.yml index 392b005f6..d9610d3a4 100644 --- a/.github/workflows/dev-short-tests.yml +++ b/.github/workflows/dev-short-tests.yml @@ -467,7 +467,7 @@ jobs: qemu-consistency: name: QEMU ${{ matrix.name }} - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false # 'false' means Don't stop matrix workflows even if some matrix failed. matrix: From 75bcae1272cbd6e417a9eb2c0e35e9f02828fba4 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Tue, 11 Feb 2025 11:37:18 -0800 Subject: [PATCH 3/8] removing x32 tests this ABI is no longer supported by Ubuntu, and there is a wider consensus that this ABI is on the way out, with more and more distributions dropping it, and lingering questions about support of x32 in the kernel. --- .github/workflows/dev-short-tests.yml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.github/workflows/dev-short-tests.yml b/.github/workflows/dev-short-tests.yml index d9610d3a4..7cc7bd85f 100644 --- a/.github/workflows/dev-short-tests.yml +++ b/.github/workflows/dev-short-tests.yml @@ -37,18 +37,6 @@ jobs: APT_PACKAGES="gcc-multilib" make apt-install CFLAGS="-m32 -O1 -fstack-protector" make check V=1 - check-x32: - runs-on: ubuntu-lastest # ubuntu-latest == ubuntu-22.04 have issues currently with x32 - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1 - - name: make check on x32 ABI # https://en.wikipedia.org/wiki/X32_ABI - env: - CHECK_CONSTRAINED_MEM: true - run: | - sudo apt update - APT_PACKAGES="gcc-multilib" make apt-install - CFLAGS="-mx32 -O1 -fstack-protector" make check V=1 - build-c89: runs-on: ubuntu-latest steps: From 2b7c661ad2c022a56f6d0c58cbafa6f3d637ad4f Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Tue, 11 Feb 2025 11:43:23 -0800 Subject: [PATCH 4/8] update arm64 test for ubuntu-24 --- .github/workflows/dev-short-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-short-tests.yml b/.github/workflows/dev-short-tests.yml index 7cc7bd85f..61fd9fb69 100644 --- a/.github/workflows/dev-short-tests.yml +++ b/.github/workflows/dev-short-tests.yml @@ -461,7 +461,7 @@ jobs: matrix: include: [ { name: ARM, xcc_pkg: gcc-arm-linux-gnueabi, xcc: arm-linux-gnueabi-gcc, xemu_pkg: qemu-system-arm, xemu: qemu-arm-static }, - { name: ARM64, xcc_pkg: gcc-aarch64-linux-gnu, xcc: aarch64-linux-gnu-gcc, xemu_pkg: qemu-system-arm, xemu: qemu-aarch64-static }, + { name: ARM64, xcc_pkg: gcc-aarch64-linux-gnu, xcc: aarch64-linux-gnu-gcc, xemu_pkg: qemu-system-aarch64,xemu: qemu-aarch64-static }, { name: PPC, xcc_pkg: gcc-powerpc-linux-gnu, xcc: powerpc-linux-gnu-gcc, xemu_pkg: qemu-system-ppc, xemu: qemu-ppc-static }, { name: PPC64LE, xcc_pkg: gcc-powerpc64le-linux-gnu, xcc: powerpc64le-linux-gnu-gcc, xemu_pkg: qemu-system-ppc, xemu: qemu-ppc64le-static }, { name: S390X, xcc_pkg: gcc-s390x-linux-gnu, xcc: s390x-linux-gnu-gcc, xemu_pkg: qemu-system-s390x, xemu: qemu-s390x-static }, @@ -494,7 +494,7 @@ jobs: - name: ARM64 if: ${{ matrix.name == 'ARM64' }} run: | - LDFLAGS="-static -z force-bti" MOREFLAGS="-mbranch-protection=standard" CC=$XCC QEMU_SYS=$XEMU make clean check + CFLAGS="-march=armv8-a -Og" LDFLAGS="-static -z force-bti" MOREFLAGS="-mbranch-protection=standard" CC=$XCC QEMU_SYS=$XEMU make clean check LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check - name: PPC if: ${{ matrix.name == 'PPC' }} From b73e06b83e0fc6f7f6999c2292b3250eb50b2084 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Tue, 11 Feb 2025 12:52:59 -0800 Subject: [PATCH 5/8] updated FreeBSD VM to 14.2 14.1 seems no longer supported by gcloud --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index 9461de412..745024bc2 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -2,7 +2,7 @@ task: name: FreeBSD (make check) freebsd_instance: matrix: - image_family: freebsd-14-1 + image_family: freebsd-14-2 install_script: pkg install -y gmake coreutils script: | MOREFLAGS="-Werror" gmake -j all From 0b8119f0ad0b027faffb7955b835718e049399e6 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Tue, 11 Feb 2025 12:58:35 -0800 Subject: [PATCH 6/8] minor arm64 test script clarification --- .github/workflows/dev-short-tests.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-short-tests.yml b/.github/workflows/dev-short-tests.yml index 61fd9fb69..19446d18e 100644 --- a/.github/workflows/dev-short-tests.yml +++ b/.github/workflows/dev-short-tests.yml @@ -494,8 +494,10 @@ jobs: - name: ARM64 if: ${{ matrix.name == 'ARM64' }} run: | - CFLAGS="-march=armv8-a -Og" LDFLAGS="-static -z force-bti" MOREFLAGS="-mbranch-protection=standard" CC=$XCC QEMU_SYS=$XEMU make clean check - LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make clean check + make clean + CFLAGS="-march=armv8-a -Og" LDFLAGS="-static -z force-bti" MOREFLAGS="-mbranch-protection=standard" CC=$XCC QEMU_SYS=$XEMU make check + make clean + CFLAGS="-march=armv8-a -Og" LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make check - name: PPC if: ${{ matrix.name == 'PPC' }} run: | From 85c39b78cfabf64fe0d8859f3c4ac5f240d52fc8 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Tue, 11 Feb 2025 13:11:29 -0800 Subject: [PATCH 7/8] faster aarch64 test execution --- .github/workflows/dev-short-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-short-tests.yml b/.github/workflows/dev-short-tests.yml index 19446d18e..a163e0219 100644 --- a/.github/workflows/dev-short-tests.yml +++ b/.github/workflows/dev-short-tests.yml @@ -495,9 +495,9 @@ jobs: if: ${{ matrix.name == 'ARM64' }} run: | make clean - CFLAGS="-march=armv8-a -Og" LDFLAGS="-static -z force-bti" MOREFLAGS="-mbranch-protection=standard" CC=$XCC QEMU_SYS=$XEMU make check + LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make -j check make clean - CFLAGS="-march=armv8-a -Og" LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make check + LDFLAGS="-static -z force-bti" MOREFLAGS="-mbranch-protection=standard" CC=$XCC QEMU_SYS=$XEMU make check V=1 - name: PPC if: ${{ matrix.name == 'PPC' }} run: | From 2a58b047529ca385867fea53b4077526bb10486e Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Tue, 11 Feb 2025 13:20:15 -0800 Subject: [PATCH 8/8] disabled BTI test this test seems impossible on Ubuntu-24 --- .github/workflows/dev-short-tests.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-short-tests.yml b/.github/workflows/dev-short-tests.yml index a163e0219..408331abc 100644 --- a/.github/workflows/dev-short-tests.yml +++ b/.github/workflows/dev-short-tests.yml @@ -496,8 +496,10 @@ jobs: run: | make clean LDFLAGS="-static" CC=$XCC QEMU_SYS=$XEMU make -j check - make clean - LDFLAGS="-static -z force-bti" MOREFLAGS="-mbranch-protection=standard" CC=$XCC QEMU_SYS=$XEMU make check V=1 +# This test is only compatible with standard libraries that support BTI (Branch Target Identification). +# Unfortunately, the standard library provided on Ubuntu 24.04 does not have this feature enabled. +# make clean +# LDFLAGS="-static -z force-bti" MOREFLAGS="-mbranch-protection=standard" CC=$XCC QEMU_SYS=$XEMU make check V=1 - name: PPC if: ${{ matrix.name == 'PPC' }} run: |