summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGary King <gking@nvidia.com>2009-09-29 12:54:07 -0700
committerColin Cross <ccross@android.com>2010-01-12 17:35:35 -0800
commit01f8c06cbe63ea7281a3f3d38ed84411e683c789 (patch)
tree0d4db208953a00d18f5b9d21a50ec904bc580dde
parent22dd86e0556bf60f46bb92a4d90aef8c2d55da58 (diff)
downloadframeworks_base-01f8c06cbe63ea7281a3f3d38ed84411e683c789.zip
frameworks_base-01f8c06cbe63ea7281a3f3d38ed84411e683c789.tar.gz
frameworks_base-01f8c06cbe63ea7281a3f3d38ed84411e683c789.tar.bz2
Use correct TLS codepath in graphics libraries
Duplicate ARCH_ARM_HAVE_TLS_REGISTER BoardConfig to proprocessor HAVE_ARM_TLS_REGISTER define from Bionic's libc Android.mk to ensure that OpenGL libraries (libEGL, libGLESv1_CM, libGLESv2, libGLES_android) use the correct codepath in bionic_tls.h for accessing the TLS address
-rw-r--r--opengl/libagl/Android.mk5
-rw-r--r--opengl/libs/Android.mk11
2 files changed, 16 insertions, 0 deletions
diff --git a/opengl/libagl/Android.mk b/opengl/libagl/Android.mk
index 9837845..c2e9f31 100644
--- a/opengl/libagl/Android.mk
+++ b/opengl/libagl/Android.mk
@@ -39,6 +39,11 @@ endif
ifneq ($(TARGET_SIMULATOR),true)
# we need to access the private Bionic header <bionic_tls.h>
+ # on ARM platforms, we need to mirror the ARCH_ARM_HAVE_TLS_REGISTER
+ # behavior from the bionic Android.mk file
+ ifeq ($(TARGET_ARCH)-$(ARCH_ARM_HAVE_TLS_REGISTER),arm-true)
+ LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER
+ endif
LOCAL_C_INCLUDES += bionic/libc/private
endif
diff --git a/opengl/libs/Android.mk b/opengl/libs/Android.mk
index 7353385..6b7020f 100644
--- a/opengl/libs/Android.mk
+++ b/opengl/libs/Android.mk
@@ -20,6 +20,11 @@ LOCAL_MODULE:= libEGL
ifeq ($(TARGET_SIMULATOR),true)
else
LOCAL_SHARED_LIBRARIES += libdl
+ # Bionic's private TLS header relies on the ARCH_ARM_HAVE_TLS_REGISTER to
+ # select the appropriate TLS codepath
+ ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
+ LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER
+ endif
# we need to access the private Bionic header <bionic_tls.h>
LOCAL_C_INCLUDES += bionic/libc/private
endif
@@ -75,6 +80,9 @@ ifeq ($(TARGET_SIMULATOR),true)
else
LOCAL_SHARED_LIBRARIES += libdl
# we need to access the private Bionic header <bionic_tls.h>
+ ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
+ LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER
+ endif
LOCAL_C_INCLUDES += bionic/libc/private
endif
@@ -108,6 +116,9 @@ ifeq ($(TARGET_SIMULATOR),true)
else
LOCAL_SHARED_LIBRARIES += libdl
# we need to access the private Bionic header <bionic_tls.h>
+ ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
+ LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER
+ endif
LOCAL_C_INCLUDES += bionic/libc/private
endif