From baee96347d66d5def1620eea0c6b7cb94efee9ac Mon Sep 17 00:00:00 2001 From: "Markus F.X.J. Oberhumer" Date: Wed, 11 Dec 2024 07:54:48 +0100 Subject: [PATCH] CI updates --- .clang-tidy | 2 ++ .github/workflows/ci.yml | 34 ++++++++++++---------------------- CMakeLists.txt | 2 ++ 3 files changed, 16 insertions(+), 22 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index e6f5f359..a8e68e08 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -22,8 +22,10 @@ Checks: > -bugprone-switch-missing-default-case, clang-analyzer-*, -clang-analyzer-optin.performance.Padding, + -clang-analyzer-security.PointerSub, -clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling, -clang-analyzer-security.insecureAPI.strcpy, + -clang-analyzer-unix.Stream, clang-diagnostic-*, performance-*, -performance-avoid-endl, diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ca95ef3c..347a43bf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,13 +19,8 @@ env: UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO: 1 UPX_DEBUG_TEST_LIBC_QSORT: 1 ZSTD_CLEVEL: 9 - # 2024-09-17 - #ZIG_DIST_VERSION: 0.14.0-dev.1579+f3445f8f6 - # 2024-11-21 - #ZIG_DIST_VERSION: 0.14.0-dev.2271+f845fa04a - # 2024-12-02 https://ziglang.org/download/ - # required format: "^ ZIG_..." with exactly 2 leading spaces - ZIG_DIST_VERSION: 0.14.0-dev.2370+5c6b25d9b + # 2024-12-06 + ZIG_DIST_VERSION: 0.14.0-dev.2384+cbc05e0b1 jobs: job-rebuild-and-verify-stubs: @@ -219,14 +214,9 @@ jobs: include: # NOTE: Xcode updates regularly tend to break Homebrew clang/gcc; often some ld64 issue; use "xcode_version" as needed; or try "-Wl,-ld_classic" # NOTE: macos does not have "env -C"; only with brew coreutils - # NOTE: macos-11 does not have "readlink -f"; only on macos >= 12 or with brew coreutils - # { os: macos-11, gcc: gcc-10, gxx: g++-10, testsuite: true } # macos-11 is EOL; scheduled for removal from GitHub actions - # { os: macos-12, gcc: gcc-12, gxx: g++-12, testsuite: true } # macos-12 "internal error"; removed (or scheduled) - - { os: macos-13, testsuite: true } # use default Xcode-15; NOTE: gcc-12 on macos-13 does not work with Xcode-15 - - { os: macos-13, gcc: gcc-12, gxx: g++-12, testsuite: true, xcode_version: 14.3.1 } - # { os: macos-14, gcc: gcc-13, gxx: g++-13, testsuite: true } # gcc-13: INTERNAL ERROR in ld64 - # { os: macos-14, gcc: gcc-13, gxx: g++-13, testsuite: true, xcode_version: 14.3.1 } # gcc-13: MISSING HEADER FILES - - { os: macos-14, gcc: gcc-12, gxx: g++-12, testsuite: true } # => use gcc-12 for now + - { os: macos-13, gcc: gcc-12, gxx: g++-12, testsuite: true } + - { os: macos-14, gcc: gcc-13, gxx: g++-13, testsuite: true } + - { os: macos-15, gcc: gcc-14, gxx: g++-14, testsuite: true } name: ${{ format('{0} {1}{2}', matrix.os, matrix.xcode_version && 'xcode-' || '', matrix.xcode_version) }} runs-on: ${{ matrix.os }} steps: @@ -250,7 +240,7 @@ jobs: echo "UPX_DEBUG_FORCE_PACK_MACOS=1" >> $GITHUB_ENV case "${{ matrix.os }}" in # TODO FIXME: UPX on macos-13+ is broken => disable run-packed for now - macos-12 | macos-13 | macos-14) echo "UPX_CONFIG_DISABLE_RUN_PACKED_TEST=ON" >> $GITHUB_ENV ;; + macos-13 | macos-14 | macos-15) echo "UPX_CONFIG_DISABLE_RUN_PACKED_TEST=ON" >> $GITHUB_ENV ;; esac - uses: actions/checkout@v4 with: { submodules: true } @@ -500,17 +490,17 @@ jobs: - { zig_target: aarch64-windows-gnu } - { zig_target: arm-linux-musleabihf, zig_flags: -mcpu=cortex_a5, qemu: qemu-arm } - { zig_target: armeb-linux-musleabihf, zig_flags: -mcpu=cortex_a5, qemu: qemu-armeb } - # { zig_target: i386-linux-gnu.2.3.4, zig_flags: -march=i586 } # ".2.3.4" invalid 2024-12-03 + # { zig_target: i386-linux-gnu.2.3.4, zig_flags: -march=i586 } - { zig_target: i386-linux-musl, zig_flags: -march=i586, qemu: qemu-i386 } - { zig_target: i386-windows-gnu } - - { zig_target: mips-linux-musleabi, qemu: qemu-mips } - # { zig_target: mips-linux-musleabihf, qemu: qemu-mips } # default -mdouble-float conflicts "zig_flags: -msoft-float" - - { zig_target: mipsel-linux-musleabi, qemu: qemu-mipsel } - # { zig_target: mipsel-linux-musleabihf, qemu: qemu-mipsel } # default -mdouble-float conflicts "zig_flags: -msoft-float" + - { zig_target: mips-linux-musleabihf, qemu: qemu-mips } + - { zig_target: mips-linux-musleabi, zig_flags: -msoft-float, qemu: qemu-mips } + - { zig_target: mipsel-linux-musleabihf, qemu: qemu-mipsel } + - { zig_target: mipsel-linux-musleabi, zig_flags: -msoft-float, qemu: qemu-mipsel } - { zig_target: powerpc-linux-musleabi, qemu: qemu-ppc } - { zig_target: powerpc64-linux-musl, qemu: qemu-ppc64 } - { zig_target: powerpc64le-linux-musl, qemu: qemu-ppc64le } - # { zig_target: x86_64-linux-gnu.2.3.4, qemu: qemu-x86_64 } # gcompat enables QEMU # ".2.3.4" invalid 2024-12-03 + # { zig_target: x86_64-linux-gnu.2.3.4, qemu: qemu-x86_64 } # can use QEMU because of gcompat - { zig_target: x86_64-linux-musl, qemu: qemu-x86_64 } - { zig_target: x86_64-macos.11.0-none } - { zig_target: x86_64-windows-gnu } diff --git a/CMakeLists.txt b/CMakeLists.txt index ac15329b..40de0706 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,8 @@ file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/.upx_cmake_config_done.txt") if(DEFINED UPX_CONFIG_CMAKE_MINIMUM_REQUIRED_VERSION) cmake_minimum_required(VERSION "${UPX_CONFIG_CMAKE_MINIMUM_REQUIRED_VERSION}" FATAL_ERROR) +elseif(NOT ${CMAKE_VERSION} VERSION_LESS "3.10") + cmake_minimum_required(VERSION "3.10" FATAL_ERROR) else() cmake_minimum_required(VERSION "3.8" FATAL_ERROR) # CMake >= 3.8 is needed for CXX_STANDARD 17 endif()