From 786dbcc3f49a1b9c212e68d8d4f461ea8d3a9bd1 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Mon, 13 Oct 2003 19:48:39 +0000 Subject: * emulparams/elf32bmipn32-defs.sh (INITIAL_READONLY_SECTIONS): Move definition from elf64btsmip.sh. (TEXT_DYNAMIC): Likewise elf32btsmipn32.sh. * emulparams/elf32btsmipn32.sh (TEXT_DYNAMIC): Remove. * emulparams/elf64btsmip.sh (INITIAL_READONLY_SECTIONS): Remove. * emulparams/elf64bmip.sh (SHLIB_TEXT_START_ADDR): Define. (EXECUTABLE_SYMBOLS): Set __elf_header correctly for shared objects. Define __program_header_table in terms of __elf_header. --- ld/emulparams/elf32bmipn32-defs.sh | 3 +++ ld/emulparams/elf32btsmipn32.sh | 2 -- ld/emulparams/elf64bmip.sh | 7 +++++-- ld/emulparams/elf64btsmip.sh | 2 -- 4 files changed, 8 insertions(+), 6 deletions(-) (limited to 'ld/emulparams') diff --git a/ld/emulparams/elf32bmipn32-defs.sh b/ld/emulparams/elf32bmipn32-defs.sh index 790eecf..ae64e22 100644 --- a/ld/emulparams/elf32bmipn32-defs.sh +++ b/ld/emulparams/elf32bmipn32-defs.sh @@ -50,6 +50,7 @@ TEXT_START_SYMBOLS='_ftext = . ;' DATA_START_SYMBOLS='_fdata = . ;' OTHER_BSS_SYMBOLS='_fbss = .;' +INITIAL_READONLY_SECTIONS=".MIPS.options : { *(.MIPS.options) }" OTHER_SECTIONS=" .MIPS.events.text ${RELOCATING-0} : { @@ -75,3 +76,5 @@ OTHER_SECTIONS=" { *(.MIPS.content.rodata${RELOCATING+ .MIPS.content.gnu.linkonce.r*}) }" + +TEXT_DYNAMIC= diff --git a/ld/emulparams/elf32btsmipn32.sh b/ld/emulparams/elf32btsmipn32.sh index d287417..6cfa48a 100644 --- a/ld/emulparams/elf32btsmipn32.sh +++ b/ld/emulparams/elf32btsmipn32.sh @@ -12,5 +12,3 @@ OTHER_SECTIONS=' .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } ' - -TEXT_DYNAMIC= diff --git a/ld/emulparams/elf64bmip.sh b/ld/emulparams/elf64bmip.sh index 7078a78..4673c52 100755 --- a/ld/emulparams/elf64bmip.sh +++ b/ld/emulparams/elf64bmip.sh @@ -2,12 +2,15 @@ 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. diff --git a/ld/emulparams/elf64btsmip.sh b/ld/emulparams/elf64btsmip.sh index c5b8664..23a20c7 100644 --- a/ld/emulparams/elf64btsmip.sh +++ b/ld/emulparams/elf64btsmip.sh @@ -7,7 +7,6 @@ BIG_OUTPUT_FORMAT="elf64-tradbigmips" LITTLE_OUTPUT_FORMAT="elf64-tradlittlemips" # Magic sections. -INITIAL_READONLY_SECTIONS='.MIPS.options : { *(.MIPS.options) }' OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' OTHER_SECTIONS=' .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } @@ -15,4 +14,3 @@ OTHER_SECTIONS=' ' TEXT_START_ADDR="0x120000000" -TEXT_DYNAMIC= -- cgit v1.1