aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog11
-rw-r--r--ld/emulparams/elf32bmipn32-defs.sh3
-rw-r--r--ld/emulparams/elf32btsmipn32.sh2
-rwxr-xr-xld/emulparams/elf64bmip.sh7
-rw-r--r--ld/emulparams/elf64btsmip.sh2
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 <rsandifo@redhat.com>
+
+ * 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 <hongjiu.lu@intel.com>
* 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=