diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/pthread_arch.h | 7 | ||||
-rw-r--r-- | arch/arm/reloc.h | 2 |
2 files changed, 5 insertions, 4 deletions
diff --git a/arch/arm/pthread_arch.h b/arch/arm/pthread_arch.h index 6657e198..8f2ae8f8 100644 --- a/arch/arm/pthread_arch.h +++ b/arch/arm/pthread_arch.h @@ -5,7 +5,7 @@ static inline pthread_t __pthread_self() { char *p; __asm__ __volatile__ ( "mrc p15,0,%0,c13,c0,3" : "=r"(p) ); - return (void *)(p+8-sizeof(struct pthread)); + return (void *)(p-sizeof(struct pthread)); } #else @@ -21,12 +21,13 @@ static inline pthread_t __pthread_self() extern uintptr_t __attribute__((__visibility__("hidden"))) __a_gettp_ptr; register uintptr_t p __asm__("r0"); __asm__ __volatile__ ( BLX " %1" : "=r"(p) : "r"(__a_gettp_ptr) : "cc", "lr" ); - return (void *)(p+8-sizeof(struct pthread)); + return (void *)(p-sizeof(struct pthread)); } #endif #define TLS_ABOVE_TP -#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) - 8) +#define GAP_ABOVE_TP 8 +#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread)) #define MC_PC arm_pc diff --git a/arch/arm/reloc.h b/arch/arm/reloc.h index b175711d..4b00bf64 100644 --- a/arch/arm/reloc.h +++ b/arch/arm/reloc.h @@ -16,7 +16,7 @@ #define NO_LEGACY_INITFINI -#define TPOFF_K 8 +#define TPOFF_K 0 #define REL_SYMBOLIC R_ARM_ABS32 #define REL_GOT R_ARM_GLOB_DAT |