Make some warnings impossible to override.
These CFLAGS and CPPFLAGS will always be added last, and are
controlled by the build system. This way we can add warnings that
users are not allowed to disable.
Change-Id: Id71f69249078f62ca2687ecbf764aff0fd3a1c1b
diff --git a/core/config.mk b/core/config.mk
index 081c185..94b8968 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -118,6 +118,12 @@
COMMON_GLOBAL_CPPFLAGS:= $(COMMON_GLOBAL_CFLAGS) -Wsign-promo -std=gnu++11
COMMON_RELEASE_CPPFLAGS:= $(COMMON_RELEASE_CFLAGS)
+GLOBAL_CFLAGS_NO_OVERRIDE := \
+ -Werror=int-to-pointer-cast \
+ -Werror=pointer-to-int-cast \
+
+GLOBAL_CPPFLAGS_NO_OVERRIDE :=
+
# Set the extensions used for various packages
COMMON_PACKAGE_SUFFIX := .zip
COMMON_JAVA_PACKAGE_SUFFIX := .jar
diff --git a/core/definitions.mk b/core/definitions.mk
index 37f7d9d..9845556 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -990,6 +990,8 @@
$(PRIVATE_CFLAGS) \
$(PRIVATE_CPPFLAGS) \
$(PRIVATE_DEBUG_CFLAGS) \
+ $(GLOBAL_CFLAGS_NO_OVERRIDE) \
+ $(GLOBAL_CPPFLAGS_NO_OVERRIDE) \
-MD -MF $(patsubst %.o,%.d,$@) -o $@ $<
$(transform-d-to-p)
endef
@@ -1022,7 +1024,11 @@
define transform-c-to-o-no-deps
@echo "target $(PRIVATE_ARM_MODE) C: $(PRIVATE_MODULE) <= $<"
-$(call transform-c-or-s-to-o-no-deps, $(PRIVATE_CFLAGS) $(PRIVATE_CONLYFLAGS) $(PRIVATE_DEBUG_CFLAGS))
+$(call transform-c-or-s-to-o-no-deps, \
+ $(PRIVATE_CFLAGS) \
+ $(PRIVATE_CONLYFLAGS) \
+ $(PRIVATE_DEBUG_CFLAGS) \
+ $(GLOBAL_CFLAGS_NO_OVERRIDE))
endef
define transform-s-to-o-no-deps
diff --git a/core/product.mk b/core/product.mk
index 6bba6b8..ff65672 100644
--- a/core/product.mk
+++ b/core/product.mk
@@ -266,6 +266,10 @@
WITH_DEXPREOPT \
WITH_DEXPREOPT_BOOT_IMG_ONLY
+_product_stash_var_list += \
+ GLOBAL_CFLAGS_NO_OVERRIDE \
+ GLOBAL_CPPFLAGS_NO_OVERRIDE \
+
#
# Stash values of the variables in _product_stash_var_list.
# $(1): Renamed prefix