From 3c3caaa56757a682a446c522fb32297228be9c58 Mon Sep 17 00:00:00 2001 From: "Markus F.X.J. Oberhumer" Date: Tue, 7 Oct 2025 22:00:31 +0200 Subject: [PATCH] CI updates --- .github/workflows/ci.yml | 23 +++++++++-------------- README | 2 +- src/check/dt_check.cpp | 4 ++++ 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5a15acd4..3f201e5c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -412,15 +412,12 @@ jobs: fail-fast: false matrix: include: - # { name: windows-2019-amd64, os: windows-2019, vsversion: 2019, vsarch: amd64 } - - { name: windows-2022-amd64, os: windows-2022, vsversion: 2022, vsarch: amd64 } - - { name: windows-2022-arm64, os: windows-2022, vsversion: 2022, vsarch: amd64_arm64 } - # { name: windows-2022-arm64ec, os: windows-2022, vsversion: 2022, vsarch: amd64_arm64, use_arm64ec: true } - - { name: windows-2022-i386, os: windows-2022, vsversion: 2022, vsarch: amd64_x86 } - - { name: windows-2025-amd64, os: windows-2025, vsversion: 2022, vsarch: amd64 } - - { name: windows-2025-arm64, os: windows-2025, vsversion: 2022, vsarch: amd64_arm64 } - - { name: windows-2025-arm64ec, os: windows-2025, vsversion: 2022, vsarch: amd64_arm64, use_arm64ec: true } - - { name: windows-2025-i386, os: windows-2025, vsversion: 2022, vsarch: amd64_x86 } + - { name: windows-2022-amd64, os: windows-2022, vsversion: 2022, vsarch: amd64 } + - { name: windows-2022-i386, os: windows-2022, vsversion: 2022, vsarch: amd64_x86 } + - { name: windows-2025-amd64, os: windows-2025, vsversion: 2022, vsarch: amd64 } + - { name: windows-2025-i386, os: windows-2025, vsversion: 2022, vsarch: amd64_x86 } + - { name: windows-11-arm-arm64, os: windows-11-arm, vsversion: 2022, vsarch: arm64 } + - { name: windows-11-arm-arm64ec, os: windows-11-arm, vsversion: 2022, vsarch: arm64, use_arm64ec: true } name: ${{ format('{0}', matrix.name) }} runs-on: ${{ matrix.os }} steps: @@ -438,7 +435,7 @@ jobs: elif [[ "${{ matrix.use_arm64ec }}" == "true" ]]; then true; echo "UPX_CMAKE_CONFIG_FLAGS_PLATFORM=-A ARM64EC" >> $GITHUB_ENV echo "UPX_CONFIG_DISABLE_SELF_PACK_TEST=ON" >> $GITHUB_ENV - elif [[ "${{ matrix.vsarch }}" == amd64_arm64 ]]; then true; + elif [[ "${{ matrix.vsarch }}" == *arm64 ]]; then true; echo "UPX_CMAKE_CONFIG_FLAGS_PLATFORM=-A ARM64" >> $GITHUB_ENV echo "UPX_CONFIG_DISABLE_SELF_PACK_TEST=ON" >> $GITHUB_ENV elif [[ "${{ matrix.vsarch }}" == amd64_x86 ]]; then true; @@ -461,23 +458,21 @@ jobs: cmake --install build/debug --config Debug --prefix "$PWD/tmp/artifact/$N/InstallWithCMake/InstallWithPrefixAndStrip/debug" --strip cmake --install build/release --config Release --prefix "$PWD/tmp/artifact/$N/InstallWithCMake/InstallWithPrefixAndStrip/release" --strip (cd build && cp -ai --parents */*/upx.exe "../tmp/artifact/$N") - (cd tmp/artifact && tar --sort=name --zstd -cf "$N.tar.zst" "$N" && rm -rf "./$N" && ls -la && zstd -tq "$N.tar.zst") + #(cd tmp/artifact && tar --sort=name --zstd -cf "$N.tar.zst" "$N" && rm -rf "./$N" && ls -la && zstd -tq "$N.tar.zst") + (cd tmp/artifact && tar --sort=name --gzip -cf "$N.tar.gz" "$N" && rm -rf "./$N" && ls -la && gzip -tq "$N.tar.gz") echo "artifact_name=$N" >> $GITHUB_ENV - name: ${{ format('Upload artifact {0}', env.artifact_name) }} uses: actions/upload-artifact@v4 with: { name: '${{ env.artifact_name }}', path: tmp/artifact } - name: Run ctest tests - if: ${{ matrix.vsarch != 'amd64_arm64' }} run: | ctest --test-dir build/debug --parallel 8 -C Debug ctest --test-dir build/release --parallel 8 -C Release - name: Mimic ctest tests - if: ${{ matrix.vsarch != 'amd64_arm64' }} run: | env -C build/debug/Debug upx_exe=./upx.exe bash "$PWD"/misc/testsuite/mimic_ctest.sh env -C build/release/Release upx_exe=./upx.exe bash "$PWD"/misc/testsuite/mimic_ctest.sh - name: Run test suite build/release - if: ${{ matrix.vsarch != 'amd64_arm64' }} run: | export upx_testsuite_SRCDIR="$(readlink -en ../deps/upx-testsuite)" env -C build/release/Release upx_exe=./upx.exe bash "$PWD"/misc/testsuite/upx_testsuite_1.sh diff --git a/README b/README index 19899113..178f310e 100644 --- a/README +++ b/README @@ -61,7 +61,7 @@ SHORT DOCUMENTATION 'upx program.exe' will compress a program or DLL. For best compression results try 'upx --best program.exe' or 'upx --brute program.exe'. -Please see the file doc/upx-doc.html for the full documentation. The files +Please see the file doc/upx-doc.txt for the full documentation. The files NEWS and doc/BUGS.txt also contain various tidbits of information, as does the output of 'upx --help'. diff --git a/src/check/dt_check.cpp b/src/check/dt_check.cpp index 9bd38a57..935f6d67 100644 --- a/src/check/dt_check.cpp +++ b/src/check/dt_check.cpp @@ -1292,6 +1292,9 @@ void upx_compiler_sanity_check(void) noexcept { assert_noexcept(testNoAliasing(&u.v_int, &u.v_llong)); assert_noexcept(testNoAliasing(&u.v_long, &u.v_llong)); +#if 1 && (ACC_CC_MSC) && (defined(_M_ARM64) || defined(_M_ARM64EC)) + // @COMPILER_BUG @MSVC_BUG +#else assert_noexcept(TestIntegerWrap::inc_gt(0)); assert_noexcept(!TestIntegerWrap::inc_gt(UINT_MAX)); assert_noexcept(TestIntegerWrap::dec_lt(1)); @@ -1308,6 +1311,7 @@ void upx_compiler_sanity_check(void) noexcept { assert_noexcept(!TestIntegerWrap::neg_eq(1)); assert_noexcept(!TestIntegerWrap::neg_eq(INT_MAX)); assert_noexcept(TestIntegerWrap::neg_eq(INT_MIN)); // special case +#endif } /*************************************************************************