From 01f8c06cbe63ea7281a3f3d38ed84411e683c789 Mon Sep 17 00:00:00 2001 From: Gary King Date: Tue, 29 Sep 2009 12:54:07 -0700 Subject: 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 --- opengl/libagl/Android.mk | 5 +++++ opengl/libs/Android.mk | 11 +++++++++++ 2 files changed, 16 insertions(+) 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 + # 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 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 + 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 + ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true) + LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER + endif LOCAL_C_INCLUDES += bionic/libc/private endif -- cgit v1.1