diff options
-rw-r--r-- | ld/ChangeLog | 24 | ||||
-rw-r--r-- | ld/emulparams/criself.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/crislinux.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/elf32b4300.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/elf32bmip.sh | 2 | ||||
-rwxr-xr-x | ld/emulparams/elf32bmipn32.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/elf32bsmip.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/elf32btsmip.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/elf32ebmip.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/elf32elmip.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/elf32l4300.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/elf32lmip.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/elf32lsmip.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/elf32ltsmip.sh | 2 | ||||
-rwxr-xr-x | ld/emulparams/elf64bmip.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/elf64btsmip.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/elf64ltsmip.sh | 2 | ||||
-rw-r--r-- | ld/scripttempl/elf.sc | 8 |
18 files changed, 45 insertions, 19 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 27e9657..683c6ee 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,27 @@ +2001-08-09 Alan Modra <amodra@bigpond.net.au> + + * scripttempl/elf.sc: Move non-text .dynamic section before + .plt/.got/.sdata* group. + (OTHER_GOT_SECTIONS): Move to immediately after .got. + (OTHER_SDATA_SECTIONS): Add. + * emulparams/criself.sh: Use OTHER_SDATA_SECTIONS rather than + OTHER_GOT_SECTIONS. + * emulparams/crislinux.sh: Likewise. + * emulparams/elf32b4300.sh: Likewise. + * emulparams/elf32bmip.sh: Likewise. + * emulparams/elf32bmipn32.sh: Likewise. + * emulparams/elf32bsmip.sh: Likewise. + * emulparams/elf32btsmip.sh: Likewise. + * emulparams/elf32ebmip.sh: Likewise. + * emulparams/elf32elmip.sh: Likewise. + * emulparams/elf32l4300.sh: Likewise. + * emulparams/elf32lmip.sh: Likewise. + * emulparams/elf32lsmip.sh: Likewise. + * emulparams/elf32ltsmip.sh: Likewise. + * emulparams/elf64bmip.sh: Likewise. + * emulparams/elf64btsmip.sh: Likewise. + * emulparams/elf64ltsmip.sh: Likewise. + 2001-08-08 Alan Modra <amodra@bigpond.net.au> * genscripts.sh: Source the emulparams script before each output diff --git a/ld/emulparams/criself.sh b/ld/emulparams/criself.sh index b257634..141ab51 100644 --- a/ld/emulparams/criself.sh +++ b/ld/emulparams/criself.sh @@ -36,7 +36,7 @@ OTHER_READONLY_SECTIONS='PROVIDE (__Etext = .);' DATA_START_SYMBOLS='PROVIDE (__Sdata = .);' # Smuggle an "OTHER_DATA_END_SYMBOLS" here. -OTHER_GOT_SECTIONS='PROVIDE (__Edata = .);' +OTHER_SDATA_SECTIONS='PROVIDE (__Edata = .);' # If .bss does not immediately follow .data but has its own start # address, we can't get to it with OTHER_BSS_SYMBOLS, neither can we diff --git a/ld/emulparams/crislinux.sh b/ld/emulparams/crislinux.sh index c5ff27f..e33b462 100644 --- a/ld/emulparams/crislinux.sh +++ b/ld/emulparams/crislinux.sh @@ -26,7 +26,7 @@ OTHER_READONLY_SECTIONS='PROVIDE (__Etext = .);' DATA_START_SYMBOLS='PROVIDE (__Sdata = .);' # Smuggle an "OTHER_DATA_END_SYMBOLS" here. -OTHER_GOT_SECTIONS='PROVIDE (__Edata = .);' +OTHER_SDATA_SECTIONS='PROVIDE (__Edata = .);' OTHER_BSS_SYMBOLS='PROVIDE (__Sbss = .);' OTHER_BSS_END_SYMBOLS='PROVIDE (__Ebss = .);' diff --git a/ld/emulparams/elf32b4300.sh b/ld/emulparams/elf32b4300.sh index 24f8d98..88626a4 100644 --- a/ld/emulparams/elf32b4300.sh +++ b/ld/emulparams/elf32b4300.sh @@ -9,7 +9,7 @@ OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' OTHER_GOT_SYMBOLS=' _gp = ALIGN(16) + 0x7ff0; ' -OTHER_GOT_SECTIONS=' +OTHER_SDATA_SECTIONS=' .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } ' diff --git a/ld/emulparams/elf32bmip.sh b/ld/emulparams/elf32bmip.sh index 473c411..0c07663 100644 --- a/ld/emulparams/elf32bmip.sh +++ b/ld/emulparams/elf32bmip.sh @@ -13,7 +13,7 @@ OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' OTHER_GOT_SYMBOLS=' _gp = ALIGN(16) + 0x7ff0; ' -OTHER_GOT_SECTIONS=' +OTHER_SDATA_SECTIONS=' .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } ' diff --git a/ld/emulparams/elf32bmipn32.sh b/ld/emulparams/elf32bmipn32.sh index 56f42a9..b060808 100755 --- a/ld/emulparams/elf32bmipn32.sh +++ b/ld/emulparams/elf32bmipn32.sh @@ -17,7 +17,7 @@ ENTRY=__start OTHER_GOT_SYMBOLS=' _gp = ALIGN(16) + 0x7ff0; ' -OTHER_GOT_SECTIONS=' +OTHER_SDATA_SECTIONS=' .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } .srdata : { *(.srdata) } diff --git a/ld/emulparams/elf32bsmip.sh b/ld/emulparams/elf32bsmip.sh index 09f1307..78421d1 100644 --- a/ld/emulparams/elf32bsmip.sh +++ b/ld/emulparams/elf32bsmip.sh @@ -13,7 +13,7 @@ OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' OTHER_GOT_SYMBOLS=' _gp = ALIGN(16) + 0x7ff0; ' -OTHER_GOT_SECTIONS=' +OTHER_SDATA_SECTIONS=' .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } ' diff --git a/ld/emulparams/elf32btsmip.sh b/ld/emulparams/elf32btsmip.sh index f6d1cf2..9c8e344 100644 --- a/ld/emulparams/elf32btsmip.sh +++ b/ld/emulparams/elf32btsmip.sh @@ -13,7 +13,7 @@ OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' OTHER_GOT_SYMBOLS=' _gp = ALIGN(16) + 0x7ff0; ' -OTHER_GOT_SECTIONS=' +OTHER_SDATA_SECTIONS=' .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } ' diff --git a/ld/emulparams/elf32ebmip.sh b/ld/emulparams/elf32ebmip.sh index 00ea8fd..14eb318 100644 --- a/ld/emulparams/elf32ebmip.sh +++ b/ld/emulparams/elf32ebmip.sh @@ -10,7 +10,7 @@ OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' OTHER_GOT_SYMBOLS=' _gp = ALIGN(16) + 0x7ff0; ' -OTHER_GOT_SECTIONS=' +OTHER_SDATA_SECTIONS=' .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } ' diff --git a/ld/emulparams/elf32elmip.sh b/ld/emulparams/elf32elmip.sh index cf008c8..865553c 100644 --- a/ld/emulparams/elf32elmip.sh +++ b/ld/emulparams/elf32elmip.sh @@ -10,7 +10,7 @@ OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' OTHER_GOT_SYMBOLS=' _gp = ALIGN(16) + 0x7ff0; ' -OTHER_GOT_SECTIONS=' +OTHER_SDATA_SECTIONS=' .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } ' diff --git a/ld/emulparams/elf32l4300.sh b/ld/emulparams/elf32l4300.sh index 690de88..4bd48e8 100644 --- a/ld/emulparams/elf32l4300.sh +++ b/ld/emulparams/elf32l4300.sh @@ -9,7 +9,7 @@ OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' OTHER_GOT_SYMBOLS=' _gp = ALIGN(16) + 0x7ff0; ' -OTHER_GOT_SECTIONS=' +OTHER_SDATA_SECTIONS=' .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } ' diff --git a/ld/emulparams/elf32lmip.sh b/ld/emulparams/elf32lmip.sh index 23312f4..99a9dd8 100644 --- a/ld/emulparams/elf32lmip.sh +++ b/ld/emulparams/elf32lmip.sh @@ -13,7 +13,7 @@ OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' OTHER_GOT_SYMBOLS=' _gp = ALIGN(16) + 0x7ff0; ' -OTHER_GOT_SECTIONS=' +OTHER_SDATA_SECTIONS=' .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } ' diff --git a/ld/emulparams/elf32lsmip.sh b/ld/emulparams/elf32lsmip.sh index 4bdc8a1..4f792e2 100644 --- a/ld/emulparams/elf32lsmip.sh +++ b/ld/emulparams/elf32lsmip.sh @@ -13,7 +13,7 @@ OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' OTHER_GOT_SYMBOLS=' _gp = ALIGN(16) + 0x7ff0; ' -OTHER_GOT_SECTIONS=' +OTHER_SDATA_SECTIONS=' .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } ' diff --git a/ld/emulparams/elf32ltsmip.sh b/ld/emulparams/elf32ltsmip.sh index 90d7d64..443b98f 100644 --- a/ld/emulparams/elf32ltsmip.sh +++ b/ld/emulparams/elf32ltsmip.sh @@ -13,7 +13,7 @@ OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)' OTHER_GOT_SYMBOLS=' _gp = ALIGN(16) + 0x7ff0; ' -OTHER_GOT_SECTIONS=' +OTHER_SDATA_SECTIONS=' .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } ' diff --git a/ld/emulparams/elf64bmip.sh b/ld/emulparams/elf64bmip.sh index a4852d5..8610e2b 100755 --- a/ld/emulparams/elf64bmip.sh +++ b/ld/emulparams/elf64bmip.sh @@ -20,7 +20,7 @@ ENTRY=__start OTHER_GOT_SYMBOLS=' _gp = ALIGN(16) + 0x7ff0; ' -OTHER_GOT_SECTIONS=' +OTHER_SDATA_SECTIONS=' .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } .srdata : { *(.srdata) } diff --git a/ld/emulparams/elf64btsmip.sh b/ld/emulparams/elf64btsmip.sh index f3d917c..69edab9 100644 --- a/ld/emulparams/elf64btsmip.sh +++ b/ld/emulparams/elf64btsmip.sh @@ -25,7 +25,7 @@ ENTRY=__start OTHER_GOT_SYMBOLS=' _gp = ALIGN(16) + 0x7ff0; ' -OTHER_GOT_SECTIONS=' +OTHER_SDATA_SECTIONS=' .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } ' diff --git a/ld/emulparams/elf64ltsmip.sh b/ld/emulparams/elf64ltsmip.sh index ac2dcfc..c6d0e57 100644 --- a/ld/emulparams/elf64ltsmip.sh +++ b/ld/emulparams/elf64ltsmip.sh @@ -25,7 +25,7 @@ ENTRY=__start OTHER_GOT_SYMBOLS=' _gp = ALIGN(16) + 0x7ff0; ' -OTHER_GOT_SECTIONS=' +OTHER_SDATA_SECTIONS=' .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } ' diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc index 3c1bfb4..9c03dd6 100644 --- a/ld/scripttempl/elf.sc +++ b/ld/scripttempl/elf.sc @@ -17,7 +17,8 @@ # DATA_START_SYMBOLS - symbols that appear at the start of the # .data section. # OTHER_GOT_SYMBOLS - symbols defined just before .got. -# OTHER_GOT_SECTIONS - sections just after .got and .sdata. +# OTHER_GOT_SECTIONS - sections just after .got. +# OTHER_SDATA_SECTIONS - sections just after .sdata. # OTHER_BSS_SYMBOLS - symbols that appear at the start of the # .bss section besides __bss_start. # DATA_PLT - .plt should be in data segment, not text segment. @@ -308,14 +309,15 @@ SECTIONS .gcc_except_table : { *(.gcc_except_table) } ${WRITABLE_RODATA+${RODATA}} ${RELOCATING+${OTHER_READWRITE_SECTIONS}} + ${TEXT_DYNAMIC-${DYNAMIC}} ${RELOCATING+${CTOR}} ${RELOCATING+${DTOR}} ${DATA_PLT+${PLT}} ${RELOCATING+${OTHER_GOT_SYMBOLS}} .got ${RELOCATING-0} : { *(.got.plt) *(.got) } + ${RELOCATING+${OTHER_GOT_SECTIONS}} ${CREATE_SHLIB+${SDATA2}} ${CREATE_SHLIB+${SBSS2}} - ${TEXT_DYNAMIC-${DYNAMIC}} /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so we can shorten the on-disk segment size. */ @@ -326,7 +328,7 @@ SECTIONS ${RELOCATING+*(.sdata.*)} ${RELOCATING+*(.gnu.linkonce.s.*)} } - ${RELOCATING+${OTHER_GOT_SECTIONS}} + ${RELOCATING+${OTHER_SDATA_SECTIONS}} ${RELOCATING+_edata = .;} ${RELOCATING+PROVIDE (edata = .);} ${RELOCATING+__bss_start = .;} |