diff options
Diffstat (limited to 'libpthread/nptl')
| -rw-r--r-- | libpthread/nptl/allocatestack.c | 24 | ||||
| -rw-r--r-- | libpthread/nptl/descr.h | 2 | ||||
| -rw-r--r-- | libpthread/nptl/sysdeps/generic/dl-tls.c | 22 | ||||
| -rw-r--r-- | libpthread/nptl/sysdeps/generic/libc-tls.c | 18 |
4 files changed, 33 insertions, 33 deletions
diff --git a/libpthread/nptl/allocatestack.c b/libpthread/nptl/allocatestack.c index f0acf3b3a..dab9f08ed 100644 --- a/libpthread/nptl/allocatestack.c +++ b/libpthread/nptl/allocatestack.c @@ -91,9 +91,9 @@ #endif /* This yields the pointer that TLS support code calls the thread pointer. */ -#if TLS_TCB_AT_TP +#if defined(TLS_TCB_AT_TP) # define TLS_TPADJ(pd) (pd) -#elif TLS_DTV_AT_TP +#elif defined(TLS_DTV_AT_TP) # define TLS_TPADJ(pd) ((struct pthread *)((char *) (pd) + TLS_PRE_TCB_SIZE)) #endif @@ -315,11 +315,11 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp, return EINVAL; /* Adjust stack size for alignment of the TLS block. */ -#if TLS_TCB_AT_TP +#if defined(TLS_TCB_AT_TP) adj = ((uintptr_t) attr->stackaddr - TLS_TCB_SIZE) & __static_tls_align_m1; assert (size > adj + TLS_TCB_SIZE); -#elif TLS_DTV_AT_TP +#elif defined(TLS_DTV_AT_TP) adj = ((uintptr_t) attr->stackaddr - __static_tls_size) & __static_tls_align_m1; assert (size > adj); @@ -329,10 +329,10 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp, size... We do not allocate guard pages if the user provided the stack. It is the user's responsibility to do this if it is wanted. */ -#if TLS_TCB_AT_TP +#if defined(TLS_TCB_AT_TP) pd = (struct pthread *) ((uintptr_t) attr->stackaddr - TLS_TCB_SIZE - adj); -#elif TLS_DTV_AT_TP +#elif defined(TLS_DTV_AT_TP) pd = (struct pthread *) (((uintptr_t) attr->stackaddr - __static_tls_size - adj) - TLS_PRE_TCB_SIZE); @@ -466,9 +466,9 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp, #endif /* Place the thread descriptor at the end of the stack. */ -#if TLS_TCB_AT_TP +#if defined(TLS_TCB_AT_TP) pd = (struct pthread *) ((char *) mem + size - coloring) - 1; -#elif TLS_DTV_AT_TP +#elif defined(TLS_DTV_AT_TP) pd = (struct pthread *) ((((uintptr_t) mem + size - coloring - __static_tls_size) & ~__static_tls_align_m1) @@ -602,10 +602,10 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp, /* We place the thread descriptor at the end of the stack. */ *pdp = pd; -#if TLS_TCB_AT_TP +#if defined(TLS_TCB_AT_TP) /* The stack begins before the TCB and the static TLS block. */ stacktop = ((char *) (pd + 1) - __static_tls_size); -#elif TLS_DTV_AT_TP +#elif defined(TLS_DTV_AT_TP) stacktop = (char *) (pd - 1); #endif @@ -889,9 +889,9 @@ static inline void __attribute__((always_inline)) init_one_static_tls (struct pthread *curp, struct link_map *map) { dtv_t *dtv = GET_DTV (TLS_TPADJ (curp)); -# if TLS_TCB_AT_TP +# if defined(TLS_TCB_AT_TP) void *dest = (char *) curp - map->l_tls_offset; -# elif TLS_DTV_AT_TP +# elif defined(TLS_DTV_AT_TP) void *dest = (char *) curp + map->l_tls_offset + TLS_PRE_TCB_SIZE; # else # error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" diff --git a/libpthread/nptl/descr.h b/libpthread/nptl/descr.h index 12e48a83c..1a8d91be8 100644 --- a/libpthread/nptl/descr.h +++ b/libpthread/nptl/descr.h @@ -106,7 +106,7 @@ struct pthread { union { -#if !TLS_DTV_AT_TP +#if !defined(TLS_DTV_AT_TP) /* This overlaps the TCB as used for TLS without threads (see tls.h). */ tcbhead_t header; #else diff --git a/libpthread/nptl/sysdeps/generic/dl-tls.c b/libpthread/nptl/sysdeps/generic/dl-tls.c index ad2e84ea3..3ac73d151 100644 --- a/libpthread/nptl/sysdeps/generic/dl-tls.c +++ b/libpthread/nptl/sysdeps/generic/dl-tls.c @@ -93,7 +93,7 @@ fail: _dl_exit(30); } -# if TLS_TCB_AT_TP +# if defined(TLS_TCB_AT_TP) size_t freebytes; size_t n; size_t blsize; @@ -110,7 +110,7 @@ fail: - map->l_tls_firstbyte_offset); map->l_tls_offset = _dl_tls_static_used = offset; -# elif TLS_DTV_AT_TP +# elif defined(TLS_DTV_AT_TP) size_t used; size_t check; @@ -254,7 +254,7 @@ _dl_determine_tlsoffset (void) memory requirement for the next TLS block is smaller than the gap. */ -# if TLS_TCB_AT_TP +# if defined(TLS_TCB_AT_TP) /* We simply start with zero. */ size_t offset = 0; @@ -301,7 +301,7 @@ _dl_determine_tlsoffset (void) GL(dl_tls_static_used) = offset; GL(dl_tls_static_size) = (roundup (offset + TLS_STATIC_SURPLUS, max_align) + TLS_TCB_SIZE); -# elif TLS_DTV_AT_TP +# elif defined(TLS_DTV_AT_TP) /* The TLS blocks start right after the TCB. */ size_t offset = TLS_TCB_SIZE; size_t cnt; @@ -433,7 +433,7 @@ _dl_allocate_tls_storage (void) void *result; size_t size = GL(dl_tls_static_size); -# if TLS_DTV_AT_TP +# if defined(TLS_DTV_AT_TP) /* Memory layout is: [ TLS_PRE_TCB_SIZE ] [ TLS_TCB_SIZE ] [ TLS blocks ] ^ This should be returned. */ @@ -448,14 +448,14 @@ _dl_allocate_tls_storage (void) /* Allocate the DTV. */ void *allocated = result; -# if TLS_TCB_AT_TP +# if defined(TLS_TCB_AT_TP) /* The TCB follows the TLS blocks. */ result = (char *) result + size - TLS_TCB_SIZE; /* Clear the TCB data structure. We can't ask the caller (i.e. libpthread) to do it, because we will initialize the DTV et al. */ _dl_memset (result, '\0', TLS_TCB_SIZE); -# elif TLS_DTV_AT_TP +# elif defined(TLS_DTV_AT_TP) result = (char *) result + size - GL(dl_tls_static_size); /* Clear the TCB data structure and TLS_PRE_TCB_SIZE bytes before it. @@ -524,10 +524,10 @@ _dl_allocate_tls_init (void *result) assert (map->l_tls_modid == cnt); assert (map->l_tls_blocksize >= map->l_tls_initimage_size); -# if TLS_TCB_AT_TP +# if defined(TLS_TCB_AT_TP) assert ((size_t) map->l_tls_offset >= map->l_tls_blocksize); dest = (char *) result - map->l_tls_offset; -# elif TLS_DTV_AT_TP +# elif defined(TLS_DTV_AT_TP) dest = (char *) result + map->l_tls_offset; # else # error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" @@ -586,10 +586,10 @@ _dl_deallocate_tls (void *tcb, bool dealloc_tcb) if (dealloc_tcb) { -# if TLS_TCB_AT_TP +# if defined(TLS_TCB_AT_TP) /* The TCB follows the TLS blocks. Back up to free the whole block. */ tcb -= GL(dl_tls_static_size) - TLS_TCB_SIZE; -# elif TLS_DTV_AT_TP +# elif defined(TLS_DTV_AT_TP) /* Back up the TLS_PRE_TCB_SIZE bytes. */ tcb -= (TLS_PRE_TCB_SIZE + GL(dl_tls_static_align) - 1) & ~(GL(dl_tls_static_align) - 1); diff --git a/libpthread/nptl/sysdeps/generic/libc-tls.c b/libpthread/nptl/sysdeps/generic/libc-tls.c index d302d31c9..b78d96483 100644 --- a/libpthread/nptl/sysdeps/generic/libc-tls.c +++ b/libpthread/nptl/sysdeps/generic/libc-tls.c @@ -146,10 +146,10 @@ __libc_setup_tls (size_t tcbsize, size_t tcbalign) The initialized value of _dl_tls_static_size is provided by dl-open.c to request some surplus that permits dynamic loading of modules with IE-model TLS. */ -# if TLS_TCB_AT_TP +# if defined(TLS_TCB_AT_TP) tcb_offset = roundup (memsz + GL(dl_tls_static_size), tcbalign); tlsblock = sbrk (tcb_offset + tcbsize + max_align); -# elif TLS_DTV_AT_TP +# elif defined(TLS_DTV_AT_TP) tcb_offset = roundup (tcbsize, align ?: 1); tlsblock = sbrk (tcb_offset + memsz + max_align + TLS_PRE_TCB_SIZE + GL(dl_tls_static_size)); @@ -169,11 +169,11 @@ __libc_setup_tls (size_t tcbsize, size_t tcbalign) // static_dtv[1].counter = 0; would be needed if not already done /* Initialize the TLS block. */ -# if TLS_TCB_AT_TP +# if defined(TLS_TCB_AT_TP) static_dtv[2].pointer.val = ((char *) tlsblock + tcb_offset - roundup (memsz, align ?: 1)); static_map.l_tls_offset = roundup (memsz, align ?: 1); -# elif TLS_DTV_AT_TP +# elif defined(TLS_DTV_AT_TP) static_dtv[2].pointer.val = (char *) tlsblock + tcb_offset; static_map.l_tls_offset = tcb_offset; # else @@ -186,11 +186,11 @@ __libc_setup_tls (size_t tcbsize, size_t tcbalign) /* Install the pointer to the dtv. */ /* Initialize the thread pointer. */ -# if TLS_TCB_AT_TP +# if defined(TLS_TCB_AT_TP) INSTALL_DTV ((char *) tlsblock + tcb_offset, static_dtv); const char *lossage = TLS_INIT_TP ((char *) tlsblock + tcb_offset, 0); -# elif TLS_DTV_AT_TP +# elif defined(TLS_DTV_AT_TP) INSTALL_DTV (tlsblock, static_dtv); const char *lossage = (char *)TLS_INIT_TP (tlsblock, 0); # else @@ -214,9 +214,9 @@ __libc_setup_tls (size_t tcbsize, size_t tcbalign) memsz = roundup (memsz, align ?: 1); -# if TLS_TCB_AT_TP +# if defined(TLS_TCB_AT_TP) memsz += tcbsize; -# elif TLS_DTV_AT_TP +# elif defined(TLS_DTV_AT_TP) memsz += tcb_offset; # endif @@ -232,7 +232,7 @@ _dl_tls_setup (void) { init_slotinfo (); init_static_tls ( -# if TLS_TCB_AT_TP +# if defined(TLS_TCB_AT_TP) TLS_TCB_SIZE, # else 0, |
