diff --git a/.docker/build-linux.sh b/.docker/build-linux.sh index e738fbc9..0cfc9840 100755 --- a/.docker/build-linux.sh +++ b/.docker/build-linux.sh @@ -185,7 +185,14 @@ esac case "-$BUILD_TYPE-" in *-static-*) - export LDFLAGS="${LDFLAGS} -fuse-ld=mold" + case "$CROSS_ARCH" in + ppc64le|s390x) + CMAKE_ARGS="${CMAKE_ARGS} -DDISABLE_MOLD=1" + ;; + *) + export LDFLAGS="${LDFLAGS} -fuse-ld=mold" + ;; + esac ;; esac diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 880735d1..c6e620b9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -109,181 +109,181 @@ jobs: strategy: matrix: include: - - build_arch: amd64 - build_dist: ubuntu - build_type: gcc-release-ninja-split + ### - build_arch: amd64 + ### build_dist: ubuntu + ### build_type: gcc-release-ninja-split - - build_arch: amd64 - build_dist: ubuntu - build_type: gcc-release-shared-ninja-split + ### - build_arch: amd64 + ### build_dist: ubuntu + ### build_type: gcc-release-shared-ninja-split - - build_arch: amd64 - build_dist: ubuntu - build_type: gcc-debug-shared-ninja-full + ### - build_arch: amd64 + ### build_dist: ubuntu + ### build_type: gcc-debug-shared-ninja-full - - build_arch: amd64 - build_dist: ubuntu - build_type: gcc-debug-shared-noperfmon-ninja-split + ### - build_arch: amd64 + ### build_dist: ubuntu + ### build_type: gcc-debug-shared-noperfmon-ninja-split - - build_arch: amd64 - build_dist: ubuntu - build_type: clang-release-shared-ninja-full + ### - build_arch: amd64 + ### build_dist: ubuntu + ### build_type: clang-release-shared-ninja-full - - build_arch: amd64 - build_dist: ubuntu - build_type: clang-reldbg-shared-asan-ninja + ### - build_arch: amd64 + ### build_dist: ubuntu + ### build_type: clang-reldbg-shared-asan-ninja - - build_arch: amd64 - build_dist: ubuntu - build_type: clang-reldbg-shared-ubsan-ninja + ### - build_arch: amd64 + ### build_dist: ubuntu + ### build_type: clang-reldbg-shared-ubsan-ninja - - build_arch: amd64 - build_dist: ubuntu - build_type: clang-debug-shared-tsan-ninja + ### - build_arch: amd64 + ### build_dist: ubuntu + ### build_type: clang-debug-shared-tsan-ninja - - build_arch: amd64 - build_dist: ubuntu - build_type: clang-debug-coverage-ninja + ### - build_arch: amd64 + ### build_dist: ubuntu + ### build_type: clang-debug-coverage-ninja - - build_arch: amd64 - build_dist: ubuntu - build_type: oldgcc-debug-shared-make-split + ### - build_arch: amd64 + ### build_dist: ubuntu + ### build_type: oldgcc-debug-shared-make-split - - build_arch: amd64 - build_dist: ubuntu - build_type: oldclang-debug-shared-make-split + ### - build_arch: amd64 + ### build_dist: ubuntu + ### build_type: oldclang-debug-shared-make-split - - build_arch: amd64 - build_dist: ubuntu-2204 - build_type: gcc-release-shared-ninja-split + ### - build_arch: amd64 + ### build_dist: ubuntu-2204 + ### build_type: gcc-release-shared-ninja-split - - build_arch: amd64 - build_dist: ubuntu-2204 - build_type: gcc-debug-shared-ninja-full + ### - build_arch: amd64 + ### build_dist: ubuntu-2204 + ### build_type: gcc-debug-shared-ninja-full - - build_arch: amd64 - build_dist: ubuntu-2204 - build_type: clang-release-ninja-split + ### - build_arch: amd64 + ### build_dist: ubuntu-2204 + ### build_type: clang-release-ninja-split - - build_arch: amd64 - build_dist: fedora - build_type: gcc-release-ninja-split + ### - build_arch: amd64 + ### build_dist: fedora + ### build_type: gcc-release-ninja-split - - build_arch: amd64 - build_dist: fedora - build_type: gcc-release-shared-ninja-split + ### - build_arch: amd64 + ### build_dist: fedora + ### build_type: gcc-release-shared-ninja-split - - build_arch: amd64 - build_dist: fedora - build_type: gcc-debug-shared-ninja-full + ### - build_arch: amd64 + ### build_dist: fedora + ### build_type: gcc-debug-shared-ninja-full - - build_arch: amd64 - build_dist: fedora - build_type: clang-release-shared-ninja-full + ### - build_arch: amd64 + ### build_dist: fedora + ### build_type: clang-release-shared-ninja-full - - build_arch: amd64 - build_dist: arch - build_type: gcc-release-ninja-split + ### - build_arch: amd64 + ### build_dist: arch + ### build_type: gcc-release-ninja-split - - build_arch: amd64 - build_dist: arch - build_type: gcc-release-shared-ninja-split + ### - build_arch: amd64 + ### build_dist: arch + ### build_type: gcc-release-shared-ninja-split - - build_arch: amd64 - build_dist: arch - build_type: gcc-debug-shared-ninja-full + ### - build_arch: amd64 + ### build_dist: arch + ### build_type: gcc-debug-shared-ninja-full - - build_arch: amd64 - build_dist: arch - build_type: clang-release-shared-ninja-full + ### - build_arch: amd64 + ### build_dist: arch + ### build_type: clang-release-shared-ninja-full - - build_arch: amd64 - build_dist: debian - build_type: gcc-release-make-full + ### - build_arch: amd64 + ### build_dist: debian + ### build_type: gcc-release-make-full - - build_arch: amd64 - build_dist: debian - build_type: clang-debug-shared-ninja-split + ### - build_arch: amd64 + ### build_dist: debian + ### build_type: clang-debug-shared-ninja-split - - build_arch: amd64 - build_dist: alpine - build_type: gcc-release-ninja-static + ### - build_arch: amd64 + ### build_dist: alpine + ### build_type: gcc-release-ninja-static - - build_arch: amd64 - build_dist: alpine - build_type: clang-release-ninja-static + ### - build_arch: amd64 + ### build_dist: alpine + ### build_type: clang-release-ninja-static - - build_arch: amd64 - build_dist: alpine - build_type: clang-relsize-lto-ninja-static + ### - build_arch: amd64 + ### build_dist: alpine + ### build_type: clang-relsize-lto-ninja-static - - build_arch: amd64 - build_dist: alpine - build_type: clang-relsize-libressl-lto-ninja-static + ### - build_arch: amd64 + ### build_dist: alpine + ### build_type: clang-relsize-libressl-lto-ninja-static - - build_arch: amd64 - build_dist: alpine - build_type: clang-relsize-minimal-lto-ninja-static + ### - build_arch: amd64 + ### build_dist: alpine + ### build_type: clang-relsize-minimal-lto-ninja-static - - build_arch: amd64 - build_dist: alpine - build_type: clang-relsize-minimal-libressl-lto-ninja-static + ### - build_arch: amd64 + ### build_dist: alpine + ### build_type: clang-relsize-minimal-libressl-lto-ninja-static - - build_arch: amd64 - build_dist: alpine - build_type: clang-relsize-minimal-mimalloc-lto-ninja-static + ### - build_arch: amd64 + ### build_dist: alpine + ### build_type: clang-relsize-minimal-mimalloc-lto-ninja-static - - build_arch: amd64 - build_dist: alpine - build_type: clang-relsize-minimal-mimalloc-libressl-lto-ninja-static + ### - build_arch: amd64 + ### build_dist: alpine + ### build_type: clang-relsize-minimal-mimalloc-libressl-lto-ninja-static - - build_arch: amd64 - build_dist: alpine - build_type: clang-reldbg-stacktrace-ninja-static + ### - build_arch: amd64 + ### build_dist: alpine + ### build_type: clang-reldbg-stacktrace-ninja-static - - build_arch: arm64v8 - build_dist: ubuntu - build_type: gcc-debug-shared-ninja-full + ### - build_arch: arm64v8 + ### build_dist: ubuntu + ### build_type: gcc-debug-shared-ninja-full - - build_arch: arm64v8 - build_dist: ubuntu - build_type: clang-release-shared-ninja-full + ### - build_arch: arm64v8 + ### build_dist: ubuntu + ### build_type: clang-release-shared-ninja-full - - build_arch: arm64v8 - build_dist: fedora - build_type: gcc-debug-shared-ninja-full + ### - build_arch: arm64v8 + ### build_dist: fedora + ### build_type: gcc-debug-shared-ninja-full - - build_arch: arm64v8 - build_dist: fedora - build_type: clang-release-shared-ninja-full + ### - build_arch: arm64v8 + ### build_dist: fedora + ### build_type: clang-release-shared-ninja-full - - build_arch: arm64v8 - build_dist: alpine - build_type: gcc-release-ninja-static + ### - build_arch: arm64v8 + ### build_dist: alpine + ### build_type: gcc-release-ninja-static - - build_arch: arm64v8 - build_dist: alpine - build_type: clang-release-ninja-static + ### - build_arch: arm64v8 + ### build_dist: alpine + ### build_type: clang-release-ninja-static - - build_arch: arm64v8 - build_dist: alpine - build_type: clang-relsize-lto-ninja-static + ### - build_arch: arm64v8 + ### build_dist: alpine + ### build_type: clang-relsize-lto-ninja-static - - build_arch: arm64v8 - build_dist: alpine - build_type: clang-relsize-libressl-lto-ninja-static + ### - build_arch: arm64v8 + ### build_dist: alpine + ### build_type: clang-relsize-libressl-lto-ninja-static - - build_arch: arm64v8 - build_dist: alpine - build_type: clang-relsize-minimal-lto-ninja-static + ### - build_arch: arm64v8 + ### build_dist: alpine + ### build_type: clang-relsize-minimal-lto-ninja-static - - build_arch: arm64v8 - build_dist: alpine - build_type: clang-relsize-minimal-mimalloc-lto-ninja-static + ### - build_arch: arm64v8 + ### build_dist: alpine + ### build_type: clang-relsize-minimal-mimalloc-lto-ninja-static - - build_arch: arm64v8 - build_dist: alpine - build_type: clang-reldbg-stacktrace-ninja-static + ### - build_arch: arm64v8 + ### build_dist: alpine + ### build_type: clang-reldbg-stacktrace-ninja-static # - build_arch: riscv64 # build_dist: alpine @@ -301,20 +301,25 @@ jobs: ### build_dist: ubuntu ### build_type: clang-debug-shared-ninja-split - - build_arch: amd64 - build_dist: alpine - build_type: clang-relsize-libressl-lto-ninja-static - cross_arch: aarch64 + ### - build_arch: amd64 + ### build_dist: alpine + ### build_type: clang-relsize-libressl-lto-ninja-static + ### cross_arch: aarch64 + + ### - build_arch: amd64 + ### build_dist: alpine + ### build_type: clang-relsize-libressl-lto-ninja-static + ### cross_arch: riscv64 + + ### - build_arch: amd64 + ### build_dist: alpine + ### build_type: clang-relsize-libressl-lto-ninja-static + ### cross_arch: i386 - build_arch: amd64 build_dist: alpine - build_type: clang-relsize-libressl-lto-ninja-static - cross_arch: riscv64 - - - build_arch: amd64 - build_dist: alpine - build_type: clang-relsize-libressl-lto-ninja-static - cross_arch: i386 + build_type: gcc-release-ninja-static + cross_arch: ppc64le uses: ./.github/workflows/docker-run-build.yml with: diff --git a/CMakeLists.txt b/CMakeLists.txt index 8f378cf9..fa56eced 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1058,7 +1058,7 @@ if(STATIC_BUILD_DO_NOT_USE OR WIN32) WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) else() - if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(i386|x86_64|AMD64|aarch64)$") + if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(i386|x86_64|AMD64|aarch64|ppc64le)$") find_program(UPX_EXE upx upx.exe PATHS "c:/bin" DOC "ultimate packer for executables") endif()