This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch, ibm/2.8/master, updated. glibc-2.8-39-g052b16c
- From: rsa at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 29 Jun 2010 22:24:07 -0000
- Subject: GNU C Library master sources branch, ibm/2.8/master, updated. glibc-2.8-39-g052b16c
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, ibm/2.8/master has been updated
via 052b16c76579af4519983e47c8d1d1f05d9a81a8 (commit)
from 5af95888b07369ead5620d266bde16d79f8e2f95 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=052b16c76579af4519983e47c8d1d1f05d9a81a8
commit 052b16c76579af4519983e47c8d1d1f05d9a81a8
Author: Ryan Arnold <ryanarn@etna.rchland.ibm.com>
Date: Fri Jun 11 15:11:10 2010 -0500
Experimental patch to default PPC64 to no-execstack support. This will need
to be abstracted to remove the guards from common files and put the stack
initialization into a header file that can be overridden.
2010-06-11 Ryan S. Arnold <rsa@us.ibm.com>
* elf/dl-load.c (_dl_map_object_from_fd): Set default stack_flags to
no-exec for ARCH_PPC64.
* elf/dl-support.c [_dl_stack_flags]: Set default stack_flags to
no-exec for ARCH_PPC64.
* elf/rtld.c (_dl_starting_up): Set default stack_flags to no-exec for
ARCH_PPC64.
diff --git a/ChangeLog b/ChangeLog
index 928c74a..1108ebc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2010-06-11 Ryan S. Arnold <rsa@us.ibm.com>
+
+ * elf/dl-load.c (_dl_map_object_from_fd): Set default stack_flags to
+ no-exec for ARCH_PPC64.
+ * elf/dl-support.c [_dl_stack_flags]: Set default stack_flags to
+ no-exec for ARCH_PPC64.
+ * elf/rtld.c (_dl_starting_up): Set default stack_flags to no-exec for
+ ARCH_PPC64.
+
2009-09-04 H.J. Lu <hongjiu.lu@intel.com>
* configure.in: Support binutils 2.20.
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 94531b2..ca7115e 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1000,8 +1000,13 @@ _dl_map_object_from_fd (const char *name, int fd, struct filebuf *fbp,
}
}
+#if (defined (_ARCH_PPC64) || defined (__powerpc64__))
+ /* Default to no-exec stack on PPC64. */
+ uint_fast16_t stack_flags = PF_R|PF_W;
+#else
/* Presumed absent PT_GNU_STACK. */
uint_fast16_t stack_flags = PF_R|PF_W|PF_X;
+#endif
{
/* Scan the program header table, collecting its load commands. */
diff --git a/elf/dl-support.c b/elf/dl-support.c
index 2c11ac6..582d3ed 100644
--- a/elf/dl-support.c
+++ b/elf/dl-support.c
@@ -122,8 +122,15 @@ ElfW(Phdr) *_dl_phdr;
size_t _dl_phnum;
uint64_t _dl_hwcap __attribute__ ((nocommon));
+
+#if (defined (_ARCH_PPC64) || defined (__powerpc64__))
+/* Default to no-exec stack on PPC64. */
+/* Prevailing state of the stack, PF_X indicating it's executable. */
+ElfW(Word) _dl_stack_flags = PF_R|PF_W;
+#else
/* Prevailing state of the stack, PF_X indicating it's executable. */
ElfW(Word) _dl_stack_flags = PF_R|PF_W|PF_X;
+#endif
/* If loading a shared object requires that we make the stack executable
when it was not, we do it by calling this function.
diff --git a/elf/rtld.c b/elf/rtld.c
index 46bece7..95ba885 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -123,7 +123,12 @@ INTVARDEF(_dl_starting_up)
struct rtld_global _rtld_global =
{
/* Default presumption without further information is executable stack. */
+#if (defined (_ARCH_PPC64) || defined (__powerpc64__))
+ /* Default to no-exec stack on PPC64. */
+ ._dl_stack_flags = PF_R|PF_W,
+#else
._dl_stack_flags = PF_R|PF_W|PF_X,
+#endif
#ifdef _LIBC_REENTRANT
._dl_load_lock = _RTLD_LOCK_RECURSIVE_INITIALIZER
#endif
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 9 +++++++++
elf/dl-load.c | 5 +++++
elf/dl-support.c | 7 +++++++
elf/rtld.c | 5 +++++
4 files changed, 26 insertions(+), 0 deletions(-)
hooks/post-receive
--
GNU C Library master sources