This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch, master, updated. glibc-2.11-303-gbc58236
- From: drepper at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 29 Mar 2010 22:14:23 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.11-303-gbc58236
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, master has been updated
via bc58236c652761240fbe52f946f4a5efdd503fab (commit)
from 8f4a5048eea6536ee85c0f2670adbb97d71e427d (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=bc58236c652761240fbe52f946f4a5efdd503fab
commit bc58236c652761240fbe52f946f4a5efdd503fab
Author: Thomas Schwinge <thomas@schwinge.name>
Date: Mon Mar 29 15:13:53 2010 -0700
Handle platforms without aux vector
diff --git a/ChangeLog b/ChangeLog
index 4587248..5b70500 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-03-28 Thomas Schwinge <thomas@schwinge.name>
+
+ * sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): Adapt to auxv
+ changes in the generic code.
+ * elf/rtld.c (dl_main): Conditionalize the code that dereferences auxv
+ to [HAVE_AUX_VECTOR].
+
2010-03-27 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/getpagesize.c (__getpagesize): If
diff --git a/elf/rtld.c b/elf/rtld.c
index 3afb997..3c41446 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -928,8 +928,6 @@ dl_main (const ElfW(Phdr) *phdr,
if (*user_entry == (ElfW(Addr)) ENTRY_POINT)
{
- ElfW(auxv_t) *av;
-
/* Ho ho. We are not the program interpreter! We are the program
itself! This means someone ran ld.so as a command. Well, that
might be convenient to do sometimes. We support it by
@@ -1086,9 +1084,10 @@ of this helper program; chances are you did not intend to run this program.\n\
main_map->l_name = (char *) "";
*user_entry = main_map->l_entry;
+#ifdef HAVE_AUX_VECTOR
/* Adjust the on-stack auxiliary vector so that it looks like the
binary was executed directly. */
- for (av = auxv; av->a_type != AT_NULL; av++)
+ for (ElfW(auxv_t) *av = auxv; av->a_type != AT_NULL; av++)
switch (av->a_type)
{
case AT_PHDR:
@@ -1101,6 +1100,7 @@ of this helper program; chances are you did not intend to run this program.\n\
av->a_un.a_val = *user_entry;
break;
}
+#endif
}
else
{
diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c
index 2440682..f87b6e0 100644
--- a/sysdeps/mach/hurd/dl-sysdep.c
+++ b/sysdeps/mach/hurd/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Operating system support for run-time dynamic linker. Hurd version.
- Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
+ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2010
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -116,7 +116,8 @@ static void fmh(void) {
ElfW(Addr)
_dl_sysdep_start (void **start_argptr,
void (*dl_main) (const ElfW(Phdr) *phdr, ElfW(Word) phent,
- ElfW(Addr) *user_entry))
+ ElfW(Addr) *user_entry,
+ ElfW(auxv_t) *auxv)))
{
void go (intptr_t *argdata)
{
@@ -197,7 +198,7 @@ unfmh(); /* XXX */
up and leave us to transfer control to USER_ENTRY. */
(*dl_main) ((const ElfW(Phdr) *) _dl_hurd_data->phdr,
_dl_hurd_data->phdrsz / sizeof (ElfW(Phdr)),
- &_dl_hurd_data->user_entry);
+ &_dl_hurd_data->user_entry, NULLy);
/* The call above might screw a few things up.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 7 +++++++
elf/rtld.c | 6 +++---
sysdeps/mach/hurd/dl-sysdep.c | 7 ++++---
3 files changed, 14 insertions(+), 6 deletions(-)
hooks/post-receive
--
GNU C Library master sources