merge from gcc
[external/binutils.git] / ld / emulparams / elf64bmip.sh
index 7078a78..0df6528 100755 (executable)
@@ -1,13 +1,16 @@
-. ${srcdir}/emulparams/elf32bmipn32-defs.sh
+. ${srcdir}/emulparams/elf64bmip-defs.sh
 OUTPUT_FORMAT="elf64-bigmips"
 BIG_OUTPUT_FORMAT="elf64-bigmips"
 LITTLE_OUTPUT_FORMAT="elf64-littlemips"
+SHLIB_TEXT_START_ADDR=0x3ffffe0000
 
 # 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;
+  ${CREATE_SHLIB-${CREATE_PIE-__elf_header = ${TEXT_START_ADDR};}}
+  ${CREATE_SHLIB+__elf_header = ${SHLIB_TEXT_START_ADDR};}
+  ${CREATE_PIE+__elf_header = ${SHLIB_TEXT_START_ADDR};}
+  __program_header_table = __elf_header + 0x40;
 "
 
 # There are often dynamic relocations against the .rodata section.
@@ -16,3 +19,5 @@ EXECUTABLE_SYMBOLS="
 # Following the IRIX linker, we simply put .rodata in the data
 # segment.
 WRITABLE_RODATA=
+
+EXTRA_EM_FILE=irix