diff options
author | Rich Felker <dalias@aerifal.cx> | 2020-08-24 22:04:52 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2020-08-24 22:04:52 -0400 |
commit | ea71a9004e08030a15d45186e263fd2b0c51cc25 (patch) | |
tree | 9bbe576df4289c730b60407178c2d786f325b224 /src/internal/pthread_impl.h | |
parent | 19f8642494b7d27b2ceed5c14d4a0b27cb749afe (diff) | |
download | musl-ea71a9004e08030a15d45186e263fd2b0c51cc25.tar.gz musl-ea71a9004e08030a15d45186e263fd2b0c51cc25.tar.xz musl-ea71a9004e08030a15d45186e263fd2b0c51cc25.zip |
deduplicate TP_ADJ logic out of each arch, replace with TP_OFFSET
the only part of TP_ADJ that was not uniquely determined by TLS_ABOVE_TP was the 0x7000 adjustment used mainly on mips and powerpc variants.
Diffstat (limited to 'src/internal/pthread_impl.h')
-rw-r--r-- | src/internal/pthread_impl.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/internal/pthread_impl.h b/src/internal/pthread_impl.h index 5749a336..3c2bd767 100644 --- a/src/internal/pthread_impl.h +++ b/src/internal/pthread_impl.h @@ -105,10 +105,20 @@ struct __timer { #define CANARY canary #endif +#ifndef TP_OFFSET +#define TP_OFFSET 0 +#endif + #ifndef DTP_OFFSET #define DTP_OFFSET 0 #endif +#ifdef TLS_ABOVE_TP +#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) + TP_OFFSET) +#else +#define TP_ADJ(p) (p) +#endif + #ifndef tls_mod_off_t #define tls_mod_off_t size_t #endif |