_start points to the first instruction, not to the ELF header.
__executable_start does point on the ELF header.
+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)
/* 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)));