diff --git a/.docker/build-linux.sh b/.docker/build-linux.sh index e785a8c3..d6033297 100755 --- a/.docker/build-linux.sh +++ b/.docker/build-linux.sh @@ -329,16 +329,16 @@ if [[ "-$BUILD_TYPE-" == *-static-* ]]; then _sslprefix="/opt/static-libs/$COMPILER-openssl/$_TARGET" fi - # export LDFLAGS="${LDFLAGS} -static-libgcc -L$_staticprefix/lib -L$_sslprefix/lib -L$_SYSROOT/usr/$_TARGET/lib -lucontext" export LDFLAGS="${LDFLAGS} -static-libgcc" export CFLAGS="${CFLAGS} -isystem $_staticprefix/include" export CXXFLAGS="${CXXFLAGS} -isystem $_staticprefix/include" - CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_SYSROOT=$_SYSROOT -DCMAKE_FIND_ROOT_PATH=$_staticprefix;$_sslprefix;$_jemallocprefix -DCMAKE_PREFIX_PATH=$_staticprefix;$_sslprefix;$_jemallocprefix -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DSTATIC_BUILD_DO_NOT_USE=1 -DWITH_UNIVERSAL_BINARY=1 -DWITH_FUSE_EXTRACT_BINARY=1" if [[ "$_MARCH" == "i386" ]]; then export LDFLAGS="${LDFLAGS} -L$_staticprefix/lib -lucontext" fi + CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_SYSROOT=$_SYSROOT -DCMAKE_FIND_ROOT_PATH=$_staticprefix;$_sslprefix;$_jemallocprefix -DCMAKE_PREFIX_PATH=$_staticprefix;$_sslprefix;$_jemallocprefix -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DSTATIC_BUILD_DO_NOT_USE=1 -DWITH_UNIVERSAL_BINARY=1 -DWITH_FUSE_EXTRACT_BINARY=1" + if [[ -n "$CROSS_ARCH" ]]; then CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_PROCESSOR=$_MARCH -DCMAKE_CROSSCOMPILING_EMULATOR=/usr/bin/qemu-$_MARCH -DFOLLY_HAVE_UNALIGNED_ACCESS=OFF -DFOLLY_HAVE_WEAK_SYMBOLS=ON -DFOLLY_HAVE_LINUX_VDSO=OFF -DFOLLY_HAVE_WCHAR_SUPPORT=OFF -DHAVE_VSNPRINTF_ERRORS=OFF" fi diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d383383f..b7b85c7f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -109,189 +109,189 @@ 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-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-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: debian - # build_type: gcc-release-ninja-full + - build_arch: riscv64 + build_dist: debian + build_type: gcc-release-ninja-full - # - build_arch: riscv64 - # build_dist: ubuntu - # build_type: clang-debug-shared-ninja-split + - build_arch: riscv64 + build_dist: ubuntu + build_type: clang-debug-shared-ninja-split - build_arch: amd64 build_dist: alpine diff --git a/CMakeLists.txt b/CMakeLists.txt index fa56eced..19e0d79e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -140,17 +140,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules") find_package(PkgConfig) if(STATIC_BUILD_DO_NOT_USE) - # Strangely this is needed when linking statically against FLAC++ - #add_compile_options(-fno-omit-frame-pointer) - - if(STATIC_BUILD_EXTRA_PREFIX) - foreach (prefix ${STATIC_BUILD_EXTRA_PREFIX}) - include_directories(BEFORE ${prefix}/include) - endforeach() - list(PREPEND CMAKE_PREFIX_PATH ${STATIC_BUILD_EXTRA_PREFIX}) - set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON) - endif() - set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" CACHE STRING "please look for static libs") @@ -1058,7 +1047,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|ppc64le)$") + if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(i386|x86_64|AMD64|aarch64|ppc64le|arm)$") find_program(UPX_EXE upx upx.exe PATHS "c:/bin" DOC "ultimate packer for executables") endif()