Bump the default C++ standard up to C++14.
This also drops the NDK default back to C++98 (or C++11 for code using
libc++). The platform NDK build should match the normal NDK build.
Bug: http://b/23043421
Change-Id: I3a336767ce271e84f4dfdebdadb3a98e5689def9
diff --git a/core/binary.mk b/core/binary.mk
index 79548ba..c716b17 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -179,6 +179,22 @@
endif
endif
+my_cpp_std_version := -std=gnu++14
+ifdef LOCAL_SDK_VERSION
+ # The NDK handles this itself.
+ my_cpp_std_version :=
+endif
+
+ifdef LOCAL_IS_HOST_MODULE
+ ifneq ($(my_clang),true)
+ # The host GCC doesn't support C++14 (and is deprecated, so likely
+ # never will). Build these modules with C++11.
+ my_cpp_std_version := -std=gnu++11
+ endif
+endif
+
+my_cppflags := $(my_cpp_std_version) $(my_cppflags)
+
# Add option to make clang the default for device build
ifeq ($(USE_CLANG_PLATFORM_BUILD),true)
ifeq ($(my_clang),)
diff --git a/core/config.mk b/core/config.mk
index fec018b..876161b 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -114,7 +114,7 @@
COMMON_GLOBAL_CFLAGS:= -DANDROID -fmessage-length=0 -W -Wall -Wno-unused -Winit-self -Wpointer-arith
COMMON_RELEASE_CFLAGS:= -DNDEBUG -UDEBUG
-COMMON_GLOBAL_CPPFLAGS:= $(COMMON_GLOBAL_CFLAGS) -Wsign-promo -std=gnu++11
+COMMON_GLOBAL_CPPFLAGS:= $(COMMON_GLOBAL_CFLAGS) -Wsign-promo
COMMON_RELEASE_CPPFLAGS:= $(COMMON_RELEASE_CFLAGS)
GLOBAL_CFLAGS_NO_OVERRIDE := \