From aee404f53269c79ec42eb4d54b0bc6e2d8b1c340 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sun, 1 Sep 2013 09:16:55 -0700 Subject: [PATCH] Improve ARM compatibility STANDALONE-TOOLCHAIN.html in Android NDK says: It is recommended to use the -mthumb compiler flag to force the generation of 16-bit Thumb-1 instructions (the default being 32-bit ARM ones). If you want to target the 'armeabi-v7a' ABI, you will need ensure that the following two flags are being used: CFLAGS='-march=armv7-a -mfloat-abi=softfp' Note: The first flag enables Thumb-2 instructions, and the second one enables H/W FPU instructions while ensuring that floating-point parameters are passed in core registers, which is critical for ABI compatibility. Do *not* use these flags separately! Thanks to Peter Osterlund for pointout this doc and for showing me an example Makefile to follow. No functional change. --- src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index f8d65ccb..67cd382a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -296,7 +296,7 @@ ifeq ($(optimize),yes) endif ifeq ($(arch),armv7) - CXXFLAGS += -fno-gcse + CXXFLAGS += -fno-gcse -mthumb -march=armv7-a -mfloat-abi=softfp endif endif -- 2.39.2