Linux kernel helpers support is provided to android for its TLS implementation. This fix addresses this by modifying
the TLS access functions to use the kernel helper.
This Fix is verified on ST Ericsson's U8500 platform and Submitted on behalf of a third-party:
Surinder-pal SINGH from STMicroelectronics.
diff --git a/libc/private/bionic_tls.h b/libc/private/bionic_tls.h
index 82c8cd9..742ef8c 100644
--- a/libc/private/bionic_tls.h
+++ b/libc/private/bionic_tls.h
@@ -87,8 +87,10 @@
 extern int __set_tls(void *ptr);
 
 /* get the TLS */
+/* Linux kernel helpers for its TLS implementation */
 #ifdef __arm__
-#  define __get_tls() ( *((volatile void **) 0xffff0ff0) )
+typedef void* (__kernel_get_tls_t)(void);
+#define __get_tls (*(__kernel_get_tls_t *)0xffff0fe0)
 #else
 extern void*  __get_tls( void );
 #endif