From 22c675a780d55d7d527e849acc2993a85f2b3e50 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Thu, 8 Jul 1999 00:22:51 +0000 Subject: [PATCH] * Makefile.am (ALL_64_EMULATIONS): Add eelf64bmip. (eelf64bmip): New target. * Makefile.in: Regenerated. * configure.tgt (mips-sgi-irix6*): Add 64-bit emulation. * emulparams/elf64bmip.sh: New file. --- ld/ChangeLog | 8 +++++++ ld/Makefile.am | 6 ++++- ld/Makefile.in | 10 ++++++-- ld/configure.tgt | 2 +- ld/emulparams/elf64bmip.sh | 47 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 69 insertions(+), 4 deletions(-) create mode 100755 ld/emulparams/elf64bmip.sh diff --git a/ld/ChangeLog b/ld/ChangeLog index 58e5b8a524e..a3065999502 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,11 @@ +1999-07-07 Mark Mitchell + + * Makefile.am (ALL_64_EMULATIONS): Add eelf64bmip. + (eelf64bmip): New target. + * Makefile.in: Regenerated. + * configure.tgt (mips-sgi-irix6*): Add 64-bit emulation. + * emulparams/elf64bmip.sh: New file. + 1999-07-05 Nick Clifton * emultempl/pe.em (after_open): Abort if input format is ARM and diff --git a/ld/Makefile.am b/ld/Makefile.am index a84eec32956..6113e8d58c2 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -208,7 +208,8 @@ ALL_EMULATIONS = \ ALL_64_EMULATIONS = \ eelf64_sparc.o \ - eelf64alpha.o + eelf64alpha.o \ + eelf64bmip.o ALL_EMUL_EXTRA_OFILES = \ pe-dll.o \ @@ -382,6 +383,9 @@ eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \ eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_sparc "$(tdir_elf64_sparc)" +eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64bmip "$(tdir_elf64bmip)" eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)" diff --git a/ld/Makefile.in b/ld/Makefile.in index 885457aaa9e..83ac2f4e7b5 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -63,6 +63,8 @@ host_alias = @host_alias@ host_triplet = @host@ target_alias = @target_alias@ target_triplet = @target@ +AMTAR = @AMTAR@ +AMTARFLAGS = @AMTARFLAGS@ AS = @AS@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ @@ -91,13 +93,13 @@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ NATIVE_LIB_DIRS = @NATIVE_LIB_DIRS@ NM = @NM@ +OBJDUMP = @OBJDUMP@ PACKAGE = @PACKAGE@ POFILES = @POFILES@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ -USE_SYMBOL_UNDERSCORE = @USE_SYMBOL_UNDERSCORE@ VERSION = @VERSION@ l = @l@ @@ -313,7 +315,8 @@ ALL_EMULATIONS = \ ALL_64_EMULATIONS = \ eelf64_sparc.o \ - eelf64alpha.o + eelf64alpha.o \ + eelf64bmip.o ALL_EMUL_EXTRA_OFILES = \ @@ -1082,6 +1085,9 @@ eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \ eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_sparc "$(tdir_elf64_sparc)" +eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64bmip "$(tdir_elf64bmip)" eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)" diff --git a/ld/configure.tgt b/ld/configure.tgt index 97c1397a422..8d55dd93f3a 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -178,7 +178,7 @@ mips*-dec-ultrix*) targ_emul=mipslit ;; mips*-dec-osf*) targ_emul=mipslit ;; mips*-sgi-irix5*) targ_emul=elf32bsmip ;; mips*-sgi-irix6*) targ_emul=elf32bmipn32 - targ_extra_emuls="elf32bsmip" + targ_extra_emuls="elf32bsmip elf64bmip" ;; mips*-sgi-irix*) targ_emul=mipsbig ;; mips*el-*-ecoff*) targ_emul=mipsidtl ;; diff --git a/ld/emulparams/elf64bmip.sh b/ld/emulparams/elf64bmip.sh new file mode 100755 index 00000000000..c77cee4eacc --- /dev/null +++ b/ld/emulparams/elf64bmip.sh @@ -0,0 +1,47 @@ +# This is an ELF platform. +SCRIPT_NAME=elf + +# Handle both big- and little-ended 32-bit MIPS objects. +ARCH=mips +OUTPUT_FORMAT="elf64-bigmips" +BIG_OUTPUT_FORMAT="elf64-bigmips" +LITTLE_OUTPUT_FORMAT="elf64-littlemips" + +# Note that the elf32 template is used for 64-bit emulations as well +# as 32-bit emulations. +ELFSIZE=64 +TEMPLATE_NAME=elf32 + +TEXT_START_ADDR=0x10000000 +MAXPAGESIZE=0x100000 +ENTRY=__start + +# GOT-related settings. +OTHER_GOT_SYMBOLS=' + _gp = ALIGN(16) + 0x7ff0; +' +OTHER_GOT_SECTIONS=' + .lit8 : { *(.lit8) } + .lit4 : { *(.lit4) } + .srdata : { *(.srdata) } +' + +# Magic symbols. +TEXT_START_SYMBOLS='_ftext = . ;' +DATA_START_SYMBOLS='_fdata = . ;' +OTHER_BSS_SYMBOLS='_fbss = .;' +# IRIX6 defines these symbols. 0x40 is the size of the ELF header. +EXECUTABLE_SYMBOLS=" + __dso_displacement = 0; + __elf_header = ${TEXT_START_ADDR}; + __program_header_table = ${TEXT_START_ADDR} + 0x40; +" + +# There are often dynamic relocations against the .rodata section. +# Setting DT_TEXTREL in the .dynamic section does not convince the +# IRIX6 linker to permit relocations against the text segment. +# Following the IRIX linker, we simply put .rodata in the data +# segment. +WRITABLE_RODATA= + + -- 2.30.2