From 786dbcc3f49a1b9c212e68d8d4f461ea8d3a9bd1 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Mon, 13 Oct 2003 19:48:39 +0000 Subject: [PATCH] * 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/ChangeLog | 11 +++++++++++ ld/emulparams/elf32bmipn32-defs.sh | 3 +++ ld/emulparams/elf32btsmipn32.sh | 2 -- ld/emulparams/elf64bmip.sh | 7 +++++-- ld/emulparams/elf64btsmip.sh | 2 -- 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 0f91e79..0f1ce22 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,14 @@ +2003-10-13 Richard Sandiford + + * 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. + 2003-10-10 H.J. Lu * Makefile.am (eelf64_ia64.c): Also depend on 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= -- 2.7.4