From 5d5722e8ac22253bdc819da2d676d9900da0c533 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Thu, 10 May 2012 14:51:22 -0700 Subject: Hurd: Fix value of __libc_stack_end --- sysdeps/mach/hurd/dl-sysdep.h | 5 +++-- sysdeps/mach/hurd/i386/init-first.c | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'sysdeps/mach') diff --git a/sysdeps/mach/hurd/dl-sysdep.h b/sysdeps/mach/hurd/dl-sysdep.h index 671b241839..c64a39d924 100644 --- a/sysdeps/mach/hurd/dl-sysdep.h +++ b/sysdeps/mach/hurd/dl-sysdep.h @@ -1,5 +1,5 @@ /* System-specific settings for dynamic linker code. Hurd version. - Copyright (C) 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 2002-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -24,7 +24,8 @@ #define RTLD_PRIVATE_ERRNO 0 #ifdef SHARED -/* _dl_argv cannot be attribute_relro, because the stack-switching +/* _dl_argv and __libc_stack_end cannot be attribute_relro, because the stack-switching libc initializer for using cthreads might write into it. */ # define DL_ARGV_NOT_RELRO 1 +# define LIBC_STACK_END_NOT_RELRO 1 #endif diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c index f4bf624680..fa4e3d9f6e 100644 --- a/sysdeps/mach/hurd/i386/init-first.c +++ b/sysdeps/mach/hurd/i386/init-first.c @@ -214,6 +214,8 @@ init (int *data) void switch_stacks (void); + __libc_stack_end = newsp; + /* Copy per-thread variables from that temporary area onto the new cthread stack. */ memcpy (__hurd_threadvar_location_from_sp (0, newsp), -- cgit 1.4.1