From b8cca206e299902329df298a59b319911af64b29 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 14 Dec 2007 16:33:44 +0000 Subject: * sysdeps/x86_64/pthreaddef.h (ARCH_RETRY_MMAP): Take additional parameter. Passed it as permission to mmap. * allocatestack.c (allocate_stack): Pass prot as second parameter to ARCH_RETRY_MMAP. --- nptl/ChangeLog | 7 +++++++ nptl/allocatestack.c | 2 +- nptl/sysdeps/x86_64/pthreaddef.h | 7 +++---- 3 files changed, 11 insertions(+), 5 deletions(-) (limited to 'nptl') diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 3651d2ea5b..ec834340dc 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,10 @@ +2007-12-14 Ulrich Drepper + + * sysdeps/x86_64/pthreaddef.h (ARCH_RETRY_MMAP): Take additional + parameter. Passed it as permission to mmap. + * allocatestack.c (allocate_stack): Pass prot as second parameter + to ARCH_RETRY_MMAP. + 2007-12-12 Ulrich Drepper * tst-basic7.c: Allocate memory for the stack. diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c index f75599c668..66128e455b 100644 --- a/nptl/allocatestack.c +++ b/nptl/allocatestack.c @@ -459,7 +459,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp, if (__builtin_expect (mem == MAP_FAILED, 0)) { #ifdef ARCH_RETRY_MMAP - mem = ARCH_RETRY_MMAP (size); + mem = ARCH_RETRY_MMAP (size, prot); if (__builtin_expect (mem == MAP_FAILED, 0)) #endif { diff --git a/nptl/sysdeps/x86_64/pthreaddef.h b/nptl/sysdeps/x86_64/pthreaddef.h index 27896a445c..0195bc928f 100644 --- a/nptl/sysdeps/x86_64/pthreaddef.h +++ b/nptl/sysdeps/x86_64/pthreaddef.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -42,9 +42,8 @@ /* If it is not possible to allocate memory there retry without that flag. */ -#define ARCH_RETRY_MMAP(size) \ - mmap (NULL, size, PROT_READ | PROT_WRITE | PROT_EXEC, \ - MAP_PRIVATE | MAP_ANONYMOUS, -1, 0) +#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. */ -- cgit 1.4.1