resolved conflicts for merge of 4a05d12c
to eclair-plus-aosp
This commit is contained in:
commit
7910e39d19
@ -366,6 +366,16 @@ endif
|
||||
ifeq ($(TARGET_ARCH),arm)
|
||||
libc_common_cflags += -fstrict-aliasing
|
||||
libc_crt_target_cflags := -mthumb-interwork
|
||||
#
|
||||
# Define HAVE_ARM_TLS_REGISTER macro to indicate to the C library
|
||||
# that it should access the hardware TLS register directly in
|
||||
# private/bionic_tls.h
|
||||
#
|
||||
# The value must match your kernel configuration
|
||||
#
|
||||
ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
|
||||
libc_common_cflags += -DHAVE_ARM_TLS_REGISTER
|
||||
endif
|
||||
else # !arm
|
||||
ifeq ($(TARGET_ARCH),x86)
|
||||
libc_crt_target_cflags := -m32
|
||||
|
@ -87,10 +87,20 @@ extern void __init_tls(void** tls, void* thread_info);
|
||||
extern int __set_tls(void *ptr);
|
||||
|
||||
/* get the TLS */
|
||||
/* Linux kernel helpers for its TLS implementation */
|
||||
#ifdef __arm__
|
||||
typedef void* (__kernel_get_tls_t)(void);
|
||||
#define __get_tls (*(__kernel_get_tls_t *)0xffff0fe0)
|
||||
/* Linux kernel helpers for its TLS implementation */
|
||||
/* For performance reasons, avoid calling the kernel helper
|
||||
* Note that HAVE_ARM_TLS_REGISTER is build-specific
|
||||
* (it must match your kernel configuration)
|
||||
*/
|
||||
# ifdef HAVE_ARM_TLS_REGISTER
|
||||
# define __get_tls() \
|
||||
({ register unsigned int __val asm("r0"); \
|
||||
asm ("mrc p15, 0, r0, c13, c0, 3" : "=r"(__val) ); \
|
||||
(volatile void*)__val; })
|
||||
# else /* !HAVE_ARM_TLS_REGISTER */
|
||||
# define __get_tls() ( *((volatile void **) 0xffff0ff0) )
|
||||
# endif
|
||||
#else
|
||||
extern void* __get_tls( void );
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user