aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2007-06-24 17:45:35 +0200
committerThomas Schwinge <thomas@codesourcery.com>2013-08-29 12:22:19 +0200
commited479b02c2b04291d07708baf50bc6d2929f8b94 (patch)
tree1828d02a2c6af622dab9604132dab29698dba2db
parentd821f07c9e9575b47df87cc38f26c31e09b3ce0d (diff)
downloadglibc-ed479b02c2b04291d07708baf50bc6d2929f8b94.tar
glibc-ed479b02c2b04291d07708baf50bc6d2929f8b94.tar.gz
glibc-ed479b02c2b04291d07708baf50bc6d2929f8b94.tar.bz2
glibc-ed479b02c2b04291d07708baf50bc6d2929f8b94.zip
Hurd: Use __executable_start symbol instead of _start.
_start points to the first instruction, not to the ELF header. __executable_start does point on the ELF header.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/mach/hurd/i386/init-first.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index f396dbdd1e..3ea264392c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-08-29 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/i386/init-first.c (init1): Use
+ __executable_start symbol instead of _start.
+
2013-08-29 Thomas Schwinge <thomas@codesourcery.com>
* sysdeps/unix/sysv/linux/ldsodefs.h (VALID_ELF_HEADER)
diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c
index 70378d806e..8fb613b550 100644
--- a/sysdeps/mach/hurd/i386/init-first.c
+++ b/sysdeps/mach/hurd/i386/init-first.c
@@ -122,8 +122,8 @@ init1 (int argc, char *arg0, ...)
/* We may need to see our own phdrs, e.g. for TLS setup.
Try the usual kludge to find the headers without help from
the exec server. */
- extern const void _start;
- const ElfW(Ehdr) *const ehdr = &_start;
+ extern const void __executable_start;
+ const ElfW(Ehdr) *const ehdr = &__executable_start;
_dl_phdr = (const void *) ehdr + ehdr->e_phoff;
_dl_phnum = ehdr->e_phnum;
assert (ehdr->e_phentsize == sizeof (ElfW(Phdr)));