binutils: ld: Set ELF interpreter to "/system/runtime_loader"
For x86_64 this includes defining a new linker emulation, "elf_x86_64_haiku"
(to match the existing "elf_i386_haiku") and updating gcc accordingly.
Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>
Diff
binutils/ld/Makefile.in | 5 +++++
binutils/ld/configure.tgt | 4 ++--
binutils/ld/emulparams/armelf_haiku.sh | 2 ++
binutils/ld/emulparams/elf32ppchaiku.sh | 1 +
binutils/ld/emulparams/elf_haiku.sh | 1 +
binutils/ld/emulparams/elf_i386_haiku.sh | 1 +
binutils/ld/emulparams/elf_mipsel_haiku.sh | 1 +
binutils/ld/emulparams/elf_x86_64_haiku.sh | 2 ++
gcc/gcc/config/i386/haiku64.h | 2 +-
9 files changed, 16 insertions(+), 3 deletions(-)
@@ -789,6 +789,7 @@
eelf_k1om_fbsd.c \
eelf_x86_64.c \
eelf_x86_64_fbsd.c \
eelf_x86_64_haiku.c \
eelf_x86_64_nacl.c \
eelf_x86_64_sol2.c \
ehppa64linux.c \
@@ -3373,6 +3374,10 @@
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
eelf_x86_64_fbsd.c: $(srcdir)/emulparams/elf_x86_64_fbsd.sh \
$(srcdir)/emulparams/elf_x86_64.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
eelf_x86_64_haiku.c: $(srcdir)/emulparams/elf_x86_64_haiku.sh \
$(srcdir)/emulparams/elf_x86_64.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
@@ -338,8 +338,8 @@
i[3-7]86-*-beospe*) targ_emul=i386beos ;;
i[3-7]86-*-beos*) targ_emul=elf_i386_be ;;
i[3-7]86-*-haiku*) targ_emul=elf_i386_haiku ;;
x86_64-*-haiku*) targ_emul=elf_x86_64
targ_extra_emuls=elf_i386_haiku ;;
x86_64-*-haiku*) targ_emul=elf_x86_64_haiku
targ_extra_emuls="elf_x86_64 elf_i386_haiku" ;;
i[3-7]86-*-vxworks*) targ_emul=elf_i386_vxworks ;;
i[3-7]86-*-chaos) targ_emul=elf_i386_chaos
;;
@@ -22,3 +22,5 @@
NO_SMALL_DATA=yes
. ${srcdir}/emulparams/elf_haiku.sh
@@ -1,4 +1,5 @@
. ${srcdir}/emulparams/elf32ppc.sh
. ${srcdir}/emulparams/elf_haiku.sh
TEXT_START_ADDR=0x200000
MAXPAGESIZE=0x1000
GENERATE_SHLIB_SCRIPT=yes
@@ -1,0 +1,1 @@
ELF_INTERPRETER_NAME=\"/system/runtime_loader\"
@@ -9,3 +9,4 @@
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
NO_SMALL_DATA=yes
. ${srcdir}/emulparams/elf_haiku.sh
@@ -1,2 +1,3 @@
. ${srcdir}/emulparams/elf32lmip.sh
. ${srcdir}/emulparams/elf_haiku.sh
@@ -1,0 +1,2 @@
. ${srcdir}/emulparams/elf_x86_64.sh
. ${srcdir}/emulparams/elf_haiku.sh
@@ -65,7 +65,7 @@
#undef LINK_SPEC
#define LINK_SPEC \
"%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386_haiku} \
"%{" SPEC_64 ":-m elf_x86_64_haiku} %{" SPEC_32 ":-m elf_i386_haiku} \
%{shared|r|pie|fno-pic|fno-PIC|fno-pie|fno-PIE:; \
:-pie --allow-shlib-undefined --export-dynamic} %{shared:-shared} \
%{nostart|shared:-e 0;:-no-undefined}"