Fix go/ab builds for jb-mr1
This forces clang to avoid use init_array for all initialization rather than
splitting the initialization between init_array and ctors.
Local builds do this anyway, but for some reason the builds on go/ab do not.
Setting this flag makes the builds consistent (and unbroken on JB-MR1).
I already checked this in on cloud-android-current-release because I wanted
to test it before submitting.
Bug 25597090
Change-Id: I5a7195ba53531835fb8333b698ed39d21ff847a6
(cherry picked from commit 95c7182f118cc686df27c3f49db7d3c7908e0e59)
Reviewed-on: https://swiftshader-review.googlesource.com/4271
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Greg Hartman <ghartman@google.com>
diff --git a/src/Android.mk b/src/Android.mk
index a5f7778..61a4e42 100644
--- a/src/Android.mk
+++ b/src/Android.mk
@@ -82,7 +82,7 @@
OpenGL/common/Object.cpp \
OpenGL/common/MatrixStack.cpp \
-COMMON_CFLAGS := -DLOG_TAG=\"swiftshader\" -Wno-unused-parameter -Wno-implicit-exception-spec-mismatch -Wno-overloaded-virtual -fno-operator-names -msse2 -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -std=c++11
+COMMON_CFLAGS := -DLOG_TAG=\"swiftshader\" -Wno-unused-parameter -Wno-implicit-exception-spec-mismatch -Wno-overloaded-virtual -fno-operator-names -msse2 -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -std=c++11 -Xclang -fuse-init-array
ifneq ($(filter gce_x86 gce calypso, $(TARGET_DEVICE)),)
COMMON_CFLAGS += -DDISPLAY_LOGO=0
diff --git a/src/LLVM/Android.mk b/src/LLVM/Android.mk
index 2630a36..e573f11 100644
--- a/src/LLVM/Android.mk
+++ b/src/LLVM/Android.mk
@@ -399,7 +399,8 @@
LOCAL_CFLAGS += -DLOG_TAG=\"libLLVM_swiftshader\" \
-Wno-unused-parameter \
-Wno-implicit-exception-spec-mismatch \
- -Wno-overloaded-virtual
+ -Wno-overloaded-virtual \
+ -Xclang -fuse-init-array
LOCAL_CFLAGS += -fomit-frame-pointer -Os -ffunction-sections -fdata-sections
LOCAL_CFLAGS += -fno-operator-names -msse2 -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS
diff --git a/src/OpenGL/compiler/Android.mk b/src/OpenGL/compiler/Android.mk
index aeac3e6..65bfb0b 100644
--- a/src/OpenGL/compiler/Android.mk
+++ b/src/OpenGL/compiler/Android.mk
@@ -24,7 +24,8 @@
-msse2 \
-D__STDC_CONSTANT_MACROS \
-D__STDC_LIMIT_MACROS \
- -std=c++11
+ -std=c++11 \
+ -Xclang -fuse-init-array
COMMON_SRC_FILES := \
preprocessor/Diagnostics.cpp \
diff --git a/src/OpenGL/libEGL/Android.mk b/src/OpenGL/libEGL/Android.mk
index 0069eec..ff48bbd 100644
--- a/src/OpenGL/libEGL/Android.mk
+++ b/src/OpenGL/libEGL/Android.mk
@@ -7,7 +7,8 @@
-DEGL_EGLEXT_PROTOTYPES \
-Wno-unused-parameter \
-Wno-implicit-exception-spec-mismatch \
- -Wno-overloaded-virtual
+ -Wno-overloaded-virtual \
+ -Xclang -fuse-init-array
COMMON_SRC_FILES := \
Config.cpp \
diff --git a/src/OpenGL/libGLES_CM/Android.mk b/src/OpenGL/libGLES_CM/Android.mk
index 655d7ab..f547576 100644
--- a/src/OpenGL/libGLES_CM/Android.mk
+++ b/src/OpenGL/libGLES_CM/Android.mk
@@ -13,7 +13,8 @@
-DGL_GLEXT_PROTOTYPES \
-Wno-unused-parameter \
-Wno-implicit-exception-spec-mismatch \
- -Wno-overloaded-virtual
+ -Wno-overloaded-virtual \
+ -Xclang -fuse-init-array
COMMON_SRC_FILES := \
diff --git a/src/OpenGL/libGLESv2/Android.mk b/src/OpenGL/libGLESv2/Android.mk
index b1510d7..2b4158d 100644
--- a/src/OpenGL/libGLESv2/Android.mk
+++ b/src/OpenGL/libGLESv2/Android.mk
@@ -12,7 +12,8 @@
-DGL_GLEXT_PROTOTYPES \
-Wno-unused-parameter \
-Wno-implicit-exception-spec-mismatch \
- -Wno-overloaded-virtual
+ -Wno-overloaded-virtual \
+ -Xclang -fuse-init-array
COMMON_SRC_FILES := \
Buffer.cpp \