-
Notifications
You must be signed in to change notification settings - Fork 291
Description
Description
The NDK r25 compile with CMAKE_BUILD_TYPE=Release missing default compiler optimizations options.
R22b
- MinSizeRel
-Os -DNDEBUG -fPIE - Release
-O2 -DNDEBUG -fPIE
R25, R24, R23c
- MinSizeRel
-Os -DNDEBUG -fPIE - Release
-DNDEBUG -fPIE
Example: project https://github.com/DaydreamCoding/neon-intrinsics-test/tree/1c123bc9391eec4f9c8305d17f9d24e69d70f237
-
R22b CMAKE_BUILD_TYPE=Release
export ANDROID_NDK=$ANDROID_NDK_R22b
./build/android_build_Release.sh
cat build/libsample/build/android/arm64-v8a/test/CMakeFiles/test.dir/flags.make
CXX_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O2 -DNDEBUG -fPIE -
R22b CMAKE_BUILD_TYPE=MinSizeRel
export ANDROID_NDK=$ANDROID_NDK_R22b
./build/android_build_MinSizeRel.sh
cat build/libsample/build/android/arm64-v8a/test/CMakeFiles/test.dir/flags.make
CXX_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -Os -DNDEBUG -fPIE -
R25 CMAKE_BUILD_TYPE=Release
export ANDROID_NDK=$ANDROID_NDK_R25
./build/android_build_Release.sh
cat build/libsample/build/android/arm64-v8a/test/CMakeFiles/test.dir/flags.make
CXX_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -DNDEBUG -fPIE -
R25 CMAKE_BUILD_TYPE=MinSizeRel
export ANDROID_NDK=$ANDROID_NDK_R25
./build/android_build_MinSizeRel.sh
cat build/libsample/build/android/arm64-v8a/test/CMakeFiles/test.dir/flags.make
CXX_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -Os -DNDEBUG -fPIE
This is very confusing behavior, R22b Release and MinSizeRel both have default compilation optimizations, R25 MinSizeRel does and Release does not
cmake --version
cmake version 3.23.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
Affected versions
r25
Canary version
No response
Host OS
Mac
Host OS version
macOS 12.4
Affected ABIs
arm64-v8a
Build system
CMake
Other build system
No response
minSdkVersion
21
Device API level
No response