diff options
Diffstat (limited to 'ld/emulparams')
-rw-r--r-- | ld/emulparams/elf32bmip.sh | 7 | ||||
-rw-r--r-- | ld/emulparams/elf32bmipn32-defs.sh | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/ld/emulparams/elf32bmip.sh b/ld/emulparams/elf32bmip.sh index 8fda60b..e1d6d34 100644 --- a/ld/emulparams/elf32bmip.sh +++ b/ld/emulparams/elf32bmip.sh @@ -20,6 +20,13 @@ INITIAL_READONLY_SECTIONS="${INITIAL_READONLY_SECTIONS} .reginfo ${RELOCATING-0} : { *(.reginfo) } " OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' +# Unlike most targets, the MIPS backend puts all dynamic relocations +# in a single dynobj section, which it also calls ".rel.dyn". It does +# this so that it can easily sort all dynamic relocations before the +# output section has been populated. +OTHER_GOT_RELOC_SECTIONS=" + .rel.dyn ${RELOCATING-0} : { *(.rel.dyn) } +" # If the output has a GOT section, there must be exactly 0x7ff0 bytes # between .got and _gp. The ". = ." below stops the orphan code from # inserting other sections between the assignment to _gp and the start diff --git a/ld/emulparams/elf32bmipn32-defs.sh b/ld/emulparams/elf32bmipn32-defs.sh index 4091ff4..49d2f85 100644 --- a/ld/emulparams/elf32bmipn32-defs.sh +++ b/ld/emulparams/elf32bmipn32-defs.sh @@ -37,6 +37,13 @@ TEXT_START_ADDR=0x10000000 MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" ENTRY=__start +# Unlike most targets, the MIPS backend puts all dynamic relocations +# in a single dynobj section, which it also calls ".rel.dyn". It does +# this so that it can easily sort all dynamic relocations before the +# output section has been populated. +OTHER_GOT_RELOC_SECTIONS=" + .rel.dyn ${RELOCATING-0} : { *(.rel.dyn) } +" # GOT-related settings. # If the output has a GOT section, there must be exactly 0x7ff0 bytes # between .got and _gp. The ". = ." below stops the orphan code from |