Move debug/release-specific compile flags to setup.mk
Move debug/release-specific clags to APP_CFLAGS when arm/thumb
mode is known. Previously -Os for thumb is overriden by -O2.
Change-Id: Id2c7aa030854628fcb4087056b6a9c0751efecfd
diff --git a/build/core/add-application.mk b/build/core/add-application.mk
index acf76bb..f33d327 100644
--- a/build/core/add-application.mk
+++ b/build/core/add-application.mk
@@ -231,15 +231,7 @@
endif
endif
-# set release/debug build flags. We always use the -g flag because
-# we generate symbol versions of the binaries that are later stripped
-# when they are copied to the final project's libs/<abi> directory.
-#
-ifeq ($(APP_OPTIM),debug)
- APP_CFLAGS := -O0 -g $(APP_CFLAGS)
-else
- APP_CFLAGS := -O2 -DNDEBUG -g $(APP_CFLAGS)
-endif
+APP_CFLAGS := $(strip $(APP_CFLAGS))
# Check that APP_STL is defined. If not, use the default value (system)
# otherwise, check that the name is correct.
@@ -250,8 +242,6 @@
$(call ndk-stl-check,$(APP_STL))
endif
-
-
$(if $(call get,$(_map),defined),\
$(call __ndk_info,Weird, the application $(_app) is already defined by $(call get,$(_map),defined))\
$(call __ndk_error,Aborting)\
diff --git a/build/core/build-binary.mk b/build/core/build-binary.mk
index bfc2aed..982648a 100644
--- a/build/core/build-binary.mk
+++ b/build/core/build-binary.mk
@@ -203,6 +203,12 @@
endif
$(call tag-src-files,$(arm_sources),arm)
+# tag debug if APP_OPTIM is 'debug'
+#
+ifeq ($(APP_OPTIM),debug)
+ $(call tag-src-files,$(LOCAL_SRC_FILES),debug)
+endif
+
# Process all source file tags to determine toolchain-specific
# target compiler flags, and text.
#
diff --git a/toolchains/arm-linux-androideabi-4.4.3/setup.mk b/toolchains/arm-linux-androideabi-4.4.3/setup.mk
index 80302e7..01cfdb8 100644
--- a/toolchains/arm-linux-androideabi-4.4.3/setup.mk
+++ b/toolchains/arm-linux-androideabi-4.4.3/setup.mk
@@ -29,7 +29,7 @@
-funwind-tables \
-fstack-protector \
-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ \
- -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ \
+ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__
TARGET_LDFLAGS :=
@@ -52,6 +52,8 @@
TARGET_CFLAGS.neon := -mfpu=neon
TARGET_arm_release_CFLAGS := -O2 \
+ -g \
+ -DNDEBUG \
-fomit-frame-pointer \
-fstrict-aliasing \
-funswitch-loops \
@@ -59,16 +61,22 @@
TARGET_thumb_release_CFLAGS := -mthumb \
-Os \
+ -g \
+ -DNDEBUG \
-fomit-frame-pointer \
-fno-strict-aliasing \
-finline-limit=64
# When building for debug, compile everything as arm.
TARGET_arm_debug_CFLAGS := $(TARGET_arm_release_CFLAGS) \
+ -O0 \
+ -UNDEBUG \
-fno-omit-frame-pointer \
-fno-strict-aliasing
TARGET_thumb_debug_CFLAGS := $(TARGET_thumb_release_CFLAGS) \
+ -O0 \
+ -UNDEBUG \
-marm \
-fno-omit-frame-pointer
diff --git a/toolchains/arm-linux-androideabi-4.6/setup.mk b/toolchains/arm-linux-androideabi-4.6/setup.mk
index 6c9d516..3c2f017 100644
--- a/toolchains/arm-linux-androideabi-4.6/setup.mk
+++ b/toolchains/arm-linux-androideabi-4.6/setup.mk
@@ -29,7 +29,7 @@
-funwind-tables \
-fstack-protector \
-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ \
- -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ \
+ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__
TARGET_LDFLAGS :=
@@ -52,6 +52,8 @@
TARGET_CFLAGS.neon := -mfpu=neon
TARGET_arm_release_CFLAGS := -O2 \
+ -g \
+ -DNDEBUG \
-fomit-frame-pointer \
-fstrict-aliasing \
-funswitch-loops \
@@ -59,16 +61,22 @@
TARGET_thumb_release_CFLAGS := -mthumb \
-Os \
+ -g \
+ -DNDEBUG \
-fomit-frame-pointer \
-fno-strict-aliasing \
-finline-limit=64
# When building for debug, compile everything as arm.
TARGET_arm_debug_CFLAGS := $(TARGET_arm_release_CFLAGS) \
+ -O0 \
+ -UNDEBUG \
-fno-omit-frame-pointer \
-fno-strict-aliasing
TARGET_thumb_debug_CFLAGS := $(TARGET_thumb_release_CFLAGS) \
+ -O0 \
+ -UNDEBUG \
-marm \
-fno-omit-frame-pointer
diff --git a/toolchains/arm-linux-androideabi-4.7/setup.mk b/toolchains/arm-linux-androideabi-4.7/setup.mk
index bd756af..aaa1f08 100644
--- a/toolchains/arm-linux-androideabi-4.7/setup.mk
+++ b/toolchains/arm-linux-androideabi-4.7/setup.mk
@@ -29,7 +29,7 @@
-funwind-tables \
-fstack-protector \
-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ \
- -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ \
+ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__
TARGET_LDFLAGS :=
@@ -52,6 +52,8 @@
TARGET_CFLAGS.neon := -mfpu=neon
TARGET_arm_release_CFLAGS := -O2 \
+ -g \
+ -DNDEBUG \
-fomit-frame-pointer \
-fstrict-aliasing \
-funswitch-loops \
@@ -59,16 +61,22 @@
TARGET_thumb_release_CFLAGS := -mthumb \
-Os \
+ -g \
+ -DNDEBUG \
-fomit-frame-pointer \
-fno-strict-aliasing \
-finline-limit=64
# When building for debug, compile everything as arm.
TARGET_arm_debug_CFLAGS := $(TARGET_arm_release_CFLAGS) \
+ -O0 \
+ -UNDEBUG \
-fno-omit-frame-pointer \
-fno-strict-aliasing
TARGET_thumb_debug_CFLAGS := $(TARGET_thumb_release_CFLAGS) \
+ -O0 \
+ -UNDEBUG \
-marm \
-fno-omit-frame-pointer
diff --git a/toolchains/arm-linux-androideabi-clang3.1/setup.mk b/toolchains/arm-linux-androideabi-clang3.1/setup.mk
index 482d8f8..282e2ed 100644
--- a/toolchains/arm-linux-androideabi-clang3.1/setup.mk
+++ b/toolchains/arm-linux-androideabi-clang3.1/setup.mk
@@ -85,20 +85,28 @@
TARGET_CFLAGS.neon := -mfpu=neon
TARGET_arm_release_CFLAGS := -O2 \
+ -g \
+ -DNDEBUG \
-fomit-frame-pointer \
-fstrict-aliasing
TARGET_thumb_release_CFLAGS := -mthumb \
-Os \
+ -g \
+ -DNDEBUG \
-fomit-frame-pointer \
-fno-strict-aliasing
# When building for debug, compile everything as arm.
TARGET_arm_debug_CFLAGS := $(TARGET_arm_release_CFLAGS) \
+ -O0 \
+ -UNDEBUG \
-fno-omit-frame-pointer \
-fno-strict-aliasing
TARGET_thumb_debug_CFLAGS := $(TARGET_thumb_release_CFLAGS) \
+ -O0 \
+ -UNDEBUG \
-marm \
-fno-omit-frame-pointer
diff --git a/toolchains/mipsel-linux-android-4.4.3/setup.mk b/toolchains/mipsel-linux-android-4.4.3/setup.mk
index 8bf6ed1..38d114d 100644
--- a/toolchains/mipsel-linux-android-4.4.3/setup.mk
+++ b/toolchains/mipsel-linux-android-4.4.3/setup.mk
@@ -40,12 +40,15 @@
TARGET_C_INCLUDES := \
$(SYSROOT)/usr/include
-TARGET_mips_release_CFLAGS := -O2 \
- -fomit-frame-pointer \
- -funswitch-loops \
- -finline-limit=300
+TARGET_mips_release_CFLAGS := -O2 \
+ -g \
+ -DNDEBUG \
+ -fomit-frame-pointer \
+ -funswitch-loops \
+ -finline-limit=300
-TARGET_mips_debug_CFLAGS := -O0 -g \
+TARGET_mips_debug_CFLAGS := -O0 \
+ -g \
-fno-omit-frame-pointer
diff --git a/toolchains/mipsel-linux-android-4.6/setup.mk b/toolchains/mipsel-linux-android-4.6/setup.mk
index 9a58728..5aa74f9 100644
--- a/toolchains/mipsel-linux-android-4.6/setup.mk
+++ b/toolchains/mipsel-linux-android-4.6/setup.mk
@@ -40,12 +40,15 @@
TARGET_C_INCLUDES := \
$(SYSROOT)/usr/include
-TARGET_mips_release_CFLAGS := -O2 \
- -fomit-frame-pointer \
- -funswitch-loops \
- -finline-limit=300
+TARGET_mips_release_CFLAGS := -O2 \
+ -g \
+ -DNDEBUG \
+ -fomit-frame-pointer \
+ -funswitch-loops \
+ -finline-limit=300
-TARGET_mips_debug_CFLAGS := -O0 -g \
+TARGET_mips_debug_CFLAGS := -O0 \
+ -g \
-fno-omit-frame-pointer
diff --git a/toolchains/mipsel-linux-android-4.7/setup.mk b/toolchains/mipsel-linux-android-4.7/setup.mk
index e24eda6..6cdc1de 100644
--- a/toolchains/mipsel-linux-android-4.7/setup.mk
+++ b/toolchains/mipsel-linux-android-4.7/setup.mk
@@ -40,12 +40,15 @@
TARGET_C_INCLUDES := \
$(SYSROOT)/usr/include
-TARGET_mips_release_CFLAGS := -O2 \
- -fomit-frame-pointer \
- -funswitch-loops \
- -finline-limit=300
+TARGET_mips_release_CFLAGS := -O2 \
+ -g \
+ -DNDEBUG \
+ -fomit-frame-pointer \
+ -funswitch-loops \
+ -finline-limit=300
-TARGET_mips_debug_CFLAGS := -O0 -g \
+TARGET_mips_debug_CFLAGS := -O0 \
+ -g \
-fno-omit-frame-pointer
diff --git a/toolchains/mipsel-linux-android-clang3.1/setup.mk b/toolchains/mipsel-linux-android-clang3.1/setup.mk
index 5922a80..b61b38c 100644
--- a/toolchains/mipsel-linux-android-clang3.1/setup.mk
+++ b/toolchains/mipsel-linux-android-clang3.1/setup.mk
@@ -66,9 +66,12 @@
$(SYSROOT)/usr/include
TARGET_mips_release_CFLAGS := -O2 \
+ -g \
+ -DNDEBUG \
-fomit-frame-pointer
-TARGET_mips_debug_CFLAGS := -O0 -g \
+TARGET_mips_debug_CFLAGS := -O0 \
+ -g \
-fno-omit-frame-pointer
diff --git a/toolchains/x86-4.4.3/setup.mk b/toolchains/x86-4.4.3/setup.mk
index 8280589..6de857e 100644
--- a/toolchains/x86-4.4.3/setup.mk
+++ b/toolchains/x86-4.4.3/setup.mk
@@ -38,14 +38,18 @@
TARGET_CFLAGS += -fstack-protector
-TARGET_x86_release_CFLAGS := -O2 \
- -fomit-frame-pointer \
- -fstrict-aliasing \
- -funswitch-loops \
- -finline-limit=300
+TARGET_x86_release_CFLAGS := -O2 \
+ -g \
+ -DNDEBUG \
+ -fomit-frame-pointer \
+ -fstrict-aliasing \
+ -funswitch-loops \
+ -finline-limit=300
# When building for debug, compile everything as x86.
TARGET_x86_debug_CFLAGS := $(TARGET_x86_release_CFLAGS) \
+ -O0 \
+ -UNDEBUG \
-fno-omit-frame-pointer \
-fno-strict-aliasing
diff --git a/toolchains/x86-4.6/setup.mk b/toolchains/x86-4.6/setup.mk
index 05c9b27..4b9b53f 100644
--- a/toolchains/x86-4.6/setup.mk
+++ b/toolchains/x86-4.6/setup.mk
@@ -38,14 +38,18 @@
TARGET_CFLAGS += -fstack-protector
-TARGET_x86_release_CFLAGS := -O2 \
- -fomit-frame-pointer \
- -fstrict-aliasing \
- -funswitch-loops \
- -finline-limit=300
+TARGET_x86_release_CFLAGS := -O2 \
+ -g \
+ -DNDEBUG \
+ -fomit-frame-pointer \
+ -fstrict-aliasing \
+ -funswitch-loops \
+ -finline-limit=300
# When building for debug, compile everything as x86.
TARGET_x86_debug_CFLAGS := $(TARGET_x86_release_CFLAGS) \
+ -O0 \
+ -UNDEBUG \
-fno-omit-frame-pointer \
-fno-strict-aliasing
diff --git a/toolchains/x86-4.7/setup.mk b/toolchains/x86-4.7/setup.mk
index 94bd6df..46f2eb7 100644
--- a/toolchains/x86-4.7/setup.mk
+++ b/toolchains/x86-4.7/setup.mk
@@ -38,14 +38,18 @@
TARGET_CFLAGS += -fstack-protector
-TARGET_x86_release_CFLAGS := -O2 \
- -fomit-frame-pointer \
- -fstrict-aliasing \
- -funswitch-loops \
- -finline-limit=300
+TARGET_x86_release_CFLAGS := -O2 \
+ -g \
+ -DNDEBUG \
+ -fomit-frame-pointer \
+ -fstrict-aliasing \
+ -funswitch-loops \
+ -finline-limit=300
# When building for debug, compile everything as x86.
TARGET_x86_debug_CFLAGS := $(TARGET_x86_release_CFLAGS) \
+ -O0 \
+ -UNDEBUG \
-fno-omit-frame-pointer \
-fno-strict-aliasing
diff --git a/toolchains/x86-clang3.1/setup.mk b/toolchains/x86-clang3.1/setup.mk
index 602af5f..ccfdbda 100644
--- a/toolchains/x86-clang3.1/setup.mk
+++ b/toolchains/x86-clang3.1/setup.mk
@@ -60,12 +60,16 @@
-gcc-toolchain $(call host-path,$(TOOLCHAIN_PREBUILT_ROOT)) \
-target $(LLVM_TRIPLE)
-TARGET_x86_release_CFLAGS := -O2 \
- -fomit-frame-pointer \
- -fstrict-aliasing
+TARGET_x86_release_CFLAGS := -O2 \
+ -g \
+ -DNDEBUG \
+ -fomit-frame-pointer \
+ -fstrict-aliasing
# When building for debug, compile everything as x86.
TARGET_x86_debug_CFLAGS := $(TARGET_x86_release_CFLAGS) \
+ -O0 \
+ -UNDEBUG \
-fno-omit-frame-pointer \
-fno-strict-aliasing