Skip to content

Commit

Permalink
* sysdeps/unix/sysv/linux/x86_64/bits/mman.h: Define MAP_STACK.
Browse files Browse the repository at this point in the history
	* sysdeps/unix/sysv/linux/i386/bits/mman.h: Likewise.
  • Loading branch information
Ulrich Drepper committed Aug 15, 2008
1 parent 62a1ffc commit 965805e
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 24 deletions.
5 changes: 5 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
2008-08-15 Ulrich Drepper <drepper@redhat.com>

* sysdeps/unix/sysv/linux/x86_64/bits/mman.h: Define MAP_STACK.
* sysdeps/unix/sysv/linux/i386/bits/mman.h: Likewise.

2008-08-14 Ulrich Drepper <drepper@redhat.com>

* sysdeps/x86_64/memset.S: Reduce size of tables for PIC.
Expand Down
9 changes: 9 additions & 0 deletions nptl/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
2008-08-15 Ulrich Drepper <drepper@redhat.com>

* sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
ARCH_RETRY_MMAP definitions.
* allocatestack.c: Remove definition of ARCH_MAP_FLAGS.
Define MAP_STACK when not defined.
(allocate_stack): Use MAP_STACK instead of ARCH_MAP_FLAGS. Remove
handling of ARCH_RETRY_MMAP.

2008-07-30 Ulrich Drepper <drepper@redhat.com>

* tst-align2.c (f): Print message that f is reached.
Expand Down
22 changes: 8 additions & 14 deletions nptl/allocatestack.c
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,10 @@
#endif


/* Let the architecture add some flags to the mmap() call used to
allocate stacks. */
#ifndef ARCH_MAP_FLAGS
# define ARCH_MAP_FLAGS 0
/* Newer kernels have the MAP_STACK flag to indicate a mapping is used for
a stack. Use it when possible. */
#ifndef MAP_STACK
# define MAP_STACK 0
#endif

/* This yields the pointer that TLS support code calls the thread pointer. */
Expand Down Expand Up @@ -454,20 +454,14 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
#endif

mem = mmap (NULL, size, prot,
MAP_PRIVATE | MAP_ANONYMOUS | ARCH_MAP_FLAGS, -1, 0);
MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);

if (__builtin_expect (mem == MAP_FAILED, 0))
{
#ifdef ARCH_RETRY_MMAP
mem = ARCH_RETRY_MMAP (size, prot);
if (__builtin_expect (mem == MAP_FAILED, 0))
#endif
{
if (errno == ENOMEM)
errno = EAGAIN;
if (errno == ENOMEM)
__set_errno (EAGAIN);

return errno;
}
return errno;
}

/* SIZE is guaranteed to be greater than zero.
Expand Down
10 changes: 0 additions & 10 deletions nptl/sysdeps/x86_64/pthreaddef.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,6 @@
({ char *frame; asm ("movq %%rsp, %0" : "=r" (frame)); frame; })


/* We prefer to have the stack allocated in the low 4GB since this
allows faster context switches. */
#define ARCH_MAP_FLAGS MAP_32BIT

/* If it is not possible to allocate memory there retry without that
flag. */
#define ARCH_RETRY_MMAP(size, prot) \
mmap (NULL, size, prot, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0)


/* XXX Until we have a better place keep the definitions here. */

/* While there is no such syscall. */
Expand Down
1 change: 1 addition & 0 deletions sysdeps/unix/sysv/linux/i386/bits/mman.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
# define MAP_STACK 0x20000 /* Allocation is for a stack. */
#endif

/* Flags to `msync'. */
Expand Down
1 change: 1 addition & 0 deletions sysdeps/unix/sysv/linux/x86_64/bits/mman.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
# define MAP_STACK 0x20000 /* Allocation is for a stack. */
#endif

/* Flags to `msync'. */
Expand Down

0 comments on commit 965805e

Please sign in to comment.