mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 13:00:06 +00:00
Update.
* pthread_create.c: Define __pthread_keys using nocommon attribute, not by placing it explicitly in bss. Remove DEFINE_DEALLOC definition. Not needed anymore. * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined. Use it in mmap call to allocate stacks. * sysdeps/pthread/createthread.c (create_thread): Fix comment.
This commit is contained in:
parent
e2b80a5802
commit
518b53086c
@ -1,5 +1,14 @@
|
||||
2003-03-04 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* pthread_create.c: Define __pthread_keys using nocommon
|
||||
attribute, not by placing it explicitly in bss.
|
||||
Remove DEFINE_DEALLOC definition. Not needed anymore.
|
||||
|
||||
* allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
|
||||
Use it in mmap call to allocate stacks.
|
||||
|
||||
* sysdeps/pthread/createthread.c (create_thread): Fix comment.
|
||||
|
||||
* pthread_create.c (start_thread): Use THREAD_SETMEM to store
|
||||
result of the thread function.
|
||||
|
||||
|
@ -52,6 +52,11 @@
|
||||
#endif
|
||||
|
||||
|
||||
/* Let the architecture add some flags to the mmap() call used to
|
||||
allocate stacks. */
|
||||
#ifndef ARCH_MAP_FLAGS
|
||||
# define ARCH_MAP_FLAGS 0
|
||||
#endif
|
||||
|
||||
|
||||
/* Cache handling for not-yet free stacks. */
|
||||
@ -303,6 +308,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
|
||||
size_t reqsize;
|
||||
void *mem;
|
||||
|
||||
#undef COLORING_INCREMENT
|
||||
#if COLORING_INCREMENT != 0
|
||||
/* Add one more page for stack coloring. Don't to it for stacks
|
||||
with 16 times pagesize or larger. This might just cause
|
||||
@ -330,7 +336,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
|
||||
if (pd == NULL)
|
||||
{
|
||||
mem = mmap (NULL, size, PROT_READ | PROT_WRITE | PROT_EXEC,
|
||||
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
|
||||
MAP_PRIVATE | MAP_ANONYMOUS | ARCH_MAP_FLAGS, -1, 0);
|
||||
|
||||
if (__builtin_expect (mem == MAP_FAILED, 0))
|
||||
return errno;
|
||||
|
@ -50,7 +50,6 @@ unsigned int __nptl_nthreads = 1;
|
||||
|
||||
|
||||
/* Code to allocate and deallocate a stack. */
|
||||
#define DEFINE_DEALLOC
|
||||
#include "allocatestack.c"
|
||||
|
||||
/* Code to create the thread. */
|
||||
@ -59,7 +58,7 @@ unsigned int __nptl_nthreads = 1;
|
||||
|
||||
/* Table of the key information. */
|
||||
struct pthread_key_struct __pthread_keys[PTHREAD_KEYS_MAX]
|
||||
__attribute__ ((section (".bss")));
|
||||
__attribute__ ((nocommon));
|
||||
hidden_def (__pthread_keys)
|
||||
|
||||
/* This is for libthread_db only. */
|
||||
|
Loading…
Reference in New Issue
Block a user