summary refs log tree commit diff
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.gz
glibc-ed479b02c2b04291d07708baf50bc6d2929f8b94.tar.xz
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)));