diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt index 9256295..b47c73b 100644 --- a/3rdparty/CMakeLists.txt +++ b/3rdparty/CMakeLists.txt @@ -26,4 +26,8 @@ set(INSTALL_MANPAGES OFF) set(INSTALL_PKGCONFIG_MODULES OFF) set(INSTALL_CMAKE_CONFIG_MODULE OFF) set(WITH_OGG OFF) +if("${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW" AND ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "aarch64" OR "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm")) + set(WITH_STACK_PROTECTOR OFF) +endif() + add_subdirectory(flac) diff --git a/3rdparty/lzma-21.03beta/C/Aes.c b/3rdparty/lzma-21.03beta/C/Aes.c index 27e32e6..ed84ce6 100644 --- a/3rdparty/lzma-21.03beta/C/Aes.c +++ b/3rdparty/lzma-21.03beta/C/Aes.c @@ -57,7 +57,7 @@ static Byte InvS[256]; #define USE_HW_AES #elif defined(MY_CPU_ARM_OR_ARM64) && defined(MY_CPU_LE) #if defined(__clang__) - #if (__clang_major__ >= 8) // fix that check + #if (__clang_major__ >= 8) && !defined(__MINGW32__) // fix that check #define USE_HW_AES #endif #elif defined(__GNUC__) diff --git a/CMakeLists.txt b/CMakeLists.txt index dfc925f..10af421 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,10 @@ else() set(CMAKE_C_STANDARD 90) endif() +if("${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW" AND ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "aarch64" OR "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm")) + set(WIN32 TRUE) +endif() + message("Detected system processor: ${CMAKE_SYSTEM_PROCESSOR}") message("Detected vs platform name: ${CMAKE_C_COMPILER_ARCHITECTURE_ID}") message("Detected compiler: ${CMAKE_C_COMPILER_ID}") @@ -74,6 +78,11 @@ if("${CMAKE_BUILD_TYPE}" MATCHES "Release") if(NOT "${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang") add_compile_options(-march=armv7+fp -mfpu=vfpv3-d16) endif() + elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "mips") + if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW") + add_compile_options(-flto) + set(CMAKE_POSITION_INDEPENDENT_CODE ON) + endif() endif() endif() endif() diff --git a/build.sh b/build.sh index 31beec7..262d82c 100755 --- a/build.sh +++ b/build.sh @@ -109,7 +109,6 @@ mkdir -p runtimes/linux-musl-arm64/native docker run --rm dockcross/linux-arm64-musl >docker/dockcross-linux-musl-arm64 chmod +x docker/dockcross-linux-musl-arm64 docker/dockcross-linux-musl-arm64 cmake -DCMAKE_BUILD_TYPE=Release -DAARU_BUILD_PACKAGE=1 -DCMAKE_POLICY_DEFAULT_CMP0077=NEW -DCMAKE_POLICY_DEFAULT_CMP0069=NEW . -docker/dockcross-linux-musl-arm cmake -DCMAKE_BUILD_TYPE=Release -DAARU_BUILD_PACKAGE=1 -DCMAKE_POLICY_DEFAULT_CMP0077=NEW -DCMAKE_POLICY_DEFAULT_CMP0069=NEW . sed -e 's/\-fno-fat-lto-objects\s//g' ./3rdparty/lzfse/CMakeFiles/lzfse.dir/flags.make > flags.make mv flags.make ./3rdparty/lzfse/CMakeFiles/lzfse.dir/flags.make docker/dockcross-linux-musl-arm64 make Aaru.Compression.Native @@ -167,6 +166,8 @@ sed -e 's/CMAKE_C_COMPILER_RANLIB\-NOTFOUND/\/usr\/xcc\/armv7-w64-mingw32-cross\ mv link.txt ./3rdparty/lzfse/CMakeFiles/lzfse.dir/link.txt sed -e 's/\-fPIC\s//g' ./3rdparty/zstd-1.5.0/build/cmake/lib/CMakeFiles/libzstd_static.dir/flags.make > flags.make mv flags.make ./3rdparty/zstd-1.5.0/build/cmake/lib/CMakeFiles/libzstd_static.dir/flags.make +sed -e 's/\C_DEFINES\ \=/C_DEFINES\ \=\ \-D_FORTIFY_SOURCE\=0/g' ./3rdparty/flac/src/libFLAC/CMakeFiles/FLAC.dir/flags.make > flags.make +mv flags.make ./3rdparty/flac/src/libFLAC/CMakeFiles/FLAC.dir/flags.make sed -e 's/\-fPIC\s//g' ./CMakeFiles/Aaru.Compression.Native.dir/link.txt > link.txt mv link.txt ./CMakeFiles/Aaru.Compression.Native.dir/link.txt sed -e 's/\-fPIC\s//g' ./CMakeFiles/Aaru.Compression.Native.dir/flags.make > flags.make @@ -194,6 +195,8 @@ sed -e 's/CMAKE_C_COMPILER_RANLIB\-NOTFOUND/\/usr\/xcc\/aarch64-w64-mingw32-cros mv link.txt ./3rdparty/lzfse/CMakeFiles/lzfse.dir/link.txt sed -e 's/\-fPIC\s//g' ./3rdparty/zstd-1.5.0/build/cmake/lib/CMakeFiles/libzstd_static.dir/flags.make > flags.make mv flags.make ./3rdparty/zstd-1.5.0/build/cmake/lib/CMakeFiles/libzstd_static.dir/flags.make +sed -e 's/\C_DEFINES\ \=/C_DEFINES\ \=\ \-D_FORTIFY_SOURCE\=0/g' ./3rdparty/flac/src/libFLAC/CMakeFiles/FLAC.dir/flags.make > flags.make +mv flags.make ./3rdparty/flac/src/libFLAC/CMakeFiles/FLAC.dir/flags.make sed -e 's/\-fPIC\s//g' ./CMakeFiles/Aaru.Compression.Native.dir/link.txt > link.txt mv link.txt ./CMakeFiles/Aaru.Compression.Native.dir/link.txt sed -e 's/\-fPIC\s//g' ./CMakeFiles/Aaru.Compression.Native.dir/flags.make > flags.make