Replace LLVM_ENABLE_ASSERTION with FORCE_BUILD_LLVM_DISABLE_NDEBUG, and add FORCE_BUILD_LLVM_DEBUG.
FORCE_BUILD_LLVM_DISABLE_NDEBUG and FORCE_BUILD_LLVM_DEBUG are
environment variables analogous to FORCE_BUILD_LLVM_COMPONENTS.
FORCE_BUILD_LLVM_DISABLE_NDEBUG compiles with -D_DEBUG -UNDEBUG. This
has the effect of enabling assert() and certain internal behaviors
(e.g., various LLVM sanity checks). FORCE_BUILD_LLVM_DISABLE_NDEBUG
must be set consistently during builds of llvm, clang, libbcc, and
slang to avoid undefined behavior.
FORCE_BUILD_LLVM_DEBUG compiles host code (but not device code) with -O0 -g.
Depends on similar changes in clang, libbcc, and slang.
Change-Id: Ic7cbfeb5fd97061c82a007324fb851eda2117f19
diff --git a/Android.mk b/Android.mk
index f99b5ba..c86080b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,6 +1,17 @@
LOCAL_PATH := $(call my-dir)
LLVM_ROOT_PATH := $(LOCAL_PATH)
-LLVM_ENABLE_ASSERTION := false
+
+FORCE_BUILD_LLVM_DISABLE_NDEBUG ?= false
+# Legality check: FORCE_BUILD_LLVM_DISABLE_NDEBUG should consist of one word -- either "true" or "false".
+ifneq "$(words $(FORCE_BUILD_LLVM_DISABLE_NDEBUG))$(words $(filter-out true false,$(FORCE_BUILD_LLVM_DISABLE_NDEBUG)))" "10"
+ $(error FORCE_BUILD_LLVM_DISABLE_NDEBUG may only be true, false, or unset)
+endif
+
+FORCE_BUILD_LLVM_DEBUG ?= false
+# Legality check: FORCE_BUILD_LLVM_DEBUG should consist of one word -- either "true" or "false".
+ifneq "$(words $(FORCE_BUILD_LLVM_DEBUG))$(words $(filter-out true false,$(FORCE_BUILD_LLVM_DEBUG)))" "10"
+ $(error FORCE_BUILD_LLVM_DEBUG may only be true, false, or unset)
+endif
include $(CLEAR_VARS)
diff --git a/llvm-device-build.mk b/llvm-device-build.mk
index 823209d..172ecf1 100644
--- a/llvm-device-build.mk
+++ b/llvm-device-build.mk
@@ -28,7 +28,7 @@
$(LOCAL_CFLAGS)
endif
-ifeq ($(LLVM_ENABLE_ASSERTION),true)
+ifeq ($(FORCE_BUILD_LLVM_DISABLE_NDEBUG),true)
LOCAL_CFLAGS := \
$(LOCAL_CFLAGS) \
-D_DEBUG \
diff --git a/llvm-host-build.mk b/llvm-host-build.mk
index d2c7e525..3093f58 100644
--- a/llvm-host-build.mk
+++ b/llvm-host-build.mk
@@ -3,10 +3,16 @@
LOCAL_CLANG := true
endif
+ifeq ($(FORCE_BUILD_LLVM_DEBUG),true)
+local_optflags = -O0 -g
+else
+local_optflags = -O2
+endif
+
LOCAL_CFLAGS += \
-D_GNU_SOURCE \
-D__STDC_LIMIT_MACROS \
- -O2 \
+ $(local_optflags) \
-fomit-frame-pointer \
-Wall \
-W \
@@ -15,7 +21,7 @@
-Dsprintf=sprintf \
$(LOCAL_CFLAGS)
-ifeq ($(LLVM_ENABLE_ASSERTION),true)
+ifeq ($(FORCE_BUILD_LLVM_DISABLE_NDEBUG),true)
LOCAL_CFLAGS := \
$(LOCAL_CFLAGS) \
-D_DEBUG \