aboutsummaryrefslogtreecommitdiff
path: root/ld/emulparams
diff options
context:
space:
mode:
Diffstat (limited to 'ld/emulparams')
-rw-r--r--ld/emulparams/armelf.sh3
-rw-r--r--ld/emulparams/armelf_linux.sh3
-rw-r--r--ld/emulparams/armnto.sh3
-rw-r--r--ld/emulparams/criself.sh6
-rw-r--r--ld/emulparams/crislinux.sh4
-rwxr-xr-xld/emulparams/elf32fr30.sh2
-rw-r--r--ld/emulparams/elf32mcore.sh2
-rw-r--r--ld/emulparams/elf64mmix.sh2
-rw-r--r--ld/emulparams/elf_x86_64.sh25
-rw-r--r--ld/emulparams/hppa64linux.sh6
-rw-r--r--ld/emulparams/m32relf.sh2
-rw-r--r--ld/emulparams/vxworks.sh2
12 files changed, 43 insertions, 17 deletions
diff --git a/ld/emulparams/armelf.sh b/ld/emulparams/armelf.sh
index c3d5bd0..782fd2d 100644
--- a/ld/emulparams/armelf.sh
+++ b/ld/emulparams/armelf.sh
@@ -8,7 +8,8 @@ TEMPLATE_NAME=elf32
EXTRA_EM_FILE=armelf
OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7)'
OTHER_BSS_SYMBOLS='__bss_start__ = .;'
-OTHER_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;'
+OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ;'
+OTHER_END_SYMBOLS='__end__ = . ;'
OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'
OTHER_READONLY_SECTIONS="
.ARM.extab ${RELOCATING-0} : { *(.ARM.extab${RELOCATING+* .gnu.linkonce.armextab.*}) }
diff --git a/ld/emulparams/armelf_linux.sh b/ld/emulparams/armelf_linux.sh
index fd927c5..39b7f65 100644
--- a/ld/emulparams/armelf_linux.sh
+++ b/ld/emulparams/armelf_linux.sh
@@ -13,7 +13,8 @@ GENERATE_PIE_SCRIPT=yes
DATA_START_SYMBOLS='__data_start = . ;';
OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7)'
OTHER_BSS_SYMBOLS='__bss_start__ = .;'
-OTHER_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;'
+OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ;'
+OTHER_END_SYMBOLS='__end__ = . ;'
OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'
TEXT_START_ADDR=0x00008000
diff --git a/ld/emulparams/armnto.sh b/ld/emulparams/armnto.sh
index 7e468c0..6429612 100644
--- a/ld/emulparams/armnto.sh
+++ b/ld/emulparams/armnto.sh
@@ -8,7 +8,8 @@ TEMPLATE_NAME=elf32
EXTRA_EM_FILE=armelf
OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7)'
OTHER_BSS_SYMBOLS='__bss_start__ = .;'
-OTHER_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;'
+OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ;'
+OTHER_END_SYMBOLS='__end__ = . ;'
DATA_START_SYMBOLS='__data_start = . ;';
diff --git a/ld/emulparams/criself.sh b/ld/emulparams/criself.sh
index d63424d..0478f34 100644
--- a/ld/emulparams/criself.sh
+++ b/ld/emulparams/criself.sh
@@ -42,12 +42,12 @@ OTHER_SDATA_SECTIONS="${RELOCATING+PROVIDE (__Edata = .);}"
# address, we can't get to it with OTHER_BSS_SYMBOLS, neither can we
# use ADDR(.bss) there. Instead, we use the symbol support for the
# end symbol.
-OTHER_END_SYMBOLS='
+OTHER_BSS_END_SYMBOLS='
PROVIDE (__Ebss = .);
- PROVIDE (__end = .);
__Sbss = ADDR (.bss);
PROVIDE (_bss_start = __Sbss);
'
+OTHER_END_SYMBOLS='PROVIDE (__end = .);'
INIT_START='
. = ALIGN(2);
@@ -90,7 +90,7 @@ CTOR_END='
'
# Also add the other symbols provided for rsim/xsim and elinux.
-OTHER_END_SYMBOLS='
+OTHER_SYMBOLS='
PROVIDE (__Eall = .);
PROVIDE (__Endmem = 0x10000000);
PROVIDE (__Stacksize = 0);
diff --git a/ld/emulparams/crislinux.sh b/ld/emulparams/crislinux.sh
index 8d7ba5f..98d12f3 100644
--- a/ld/emulparams/crislinux.sh
+++ b/ld/emulparams/crislinux.sh
@@ -28,10 +28,10 @@ DATA_START_SYMBOLS='PROVIDE (__Sdata = .);'
# Smuggle an "OTHER_DATA_END_SYMBOLS" here.
OTHER_SDATA_SECTIONS="${RELOCATING+PROVIDE (__Edata = .);}"
OTHER_BSS_SYMBOLS='PROVIDE (__Sbss = .);'
-OTHER_END_SYMBOLS='PROVIDE (__Ebss = .);'
+OTHER_BSS_END_SYMBOLS='PROVIDE (__Ebss = .);'
# Also add the other symbols provided for rsim/xsim and elinux.
-OTHER_END_SYMBOLS='
+OTHER_SYMBOLS='
PROVIDE (__Eall = .);
PROVIDE (__Endmem = 0x10000000);
PROVIDE (__Stacksize = 0);
diff --git a/ld/emulparams/elf32fr30.sh b/ld/emulparams/elf32fr30.sh
index cec006c..069c623 100755
--- a/ld/emulparams/elf32fr30.sh
+++ b/ld/emulparams/elf32fr30.sh
@@ -7,4 +7,4 @@ MAXPAGESIZE=256
ENTRY=_start
EMBEDDED=yes
NOP=0x9fa09fa0
-OTHER_END_SYMBOLS='PROVIDE (__stack = 0x200000);'
+OTHER_SYMBOLS='PROVIDE (__stack = 0x200000);'
diff --git a/ld/emulparams/elf32mcore.sh b/ld/emulparams/elf32mcore.sh
index 242af81..930a9c3 100644
--- a/ld/emulparams/elf32mcore.sh
+++ b/ld/emulparams/elf32mcore.sh
@@ -22,7 +22,7 @@ EMBEDDED=yes
NOP=0x0e0e0e0e
OTHER_BSS_SYMBOLS="__bss_start__ = . ;"
-OTHER_END_SYMBOLS="__bss_end__ = . ;"
+OTHER_BSS_END_SYMBOLS="__bss_end__ = . ;"
# This sets the stack to the top of the simulator memory (2^19 bytes).
STACK_ADDR=0x80000
diff --git a/ld/emulparams/elf64mmix.sh b/ld/emulparams/elf64mmix.sh
index 1ee9283..22b207f 100644
--- a/ld/emulparams/elf64mmix.sh
+++ b/ld/emulparams/elf64mmix.sh
@@ -58,4 +58,4 @@ OTHER_SECTIONS='
# EXECUTABLE_SYMBOLS.
# By default, put the high end of the stack where the register stack
# begins. They grow in opposite directions. */
-OTHER_END_SYMBOLS="PROVIDE (__Stack_start = 0x6000000000000000);"
+OTHER_SYMBOLS="PROVIDE (__Stack_start = 0x6000000000000000);"
diff --git a/ld/emulparams/elf_x86_64.sh b/ld/emulparams/elf_x86_64.sh
index 35240df..d62b5e4 100644
--- a/ld/emulparams/elf_x86_64.sh
+++ b/ld/emulparams/elf_x86_64.sh
@@ -12,9 +12,32 @@ TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
NO_SMALL_DATA=yes
-LARGE_SECTIONS=yes
SEPARATE_GOTPLT=24
+LARGE_SECTIONS="
+ .lbss ${RELOCATING-0} :
+ {
+ *(.dynlbss)
+ *(.lbss${RELOCATING+ .lbss.* .gnu.linkonce.lb.*})
+ *(LARGE_COMMON)
+ }
+ .lrodata ${RELOCATING-0} ${RELOCATING+ALIGN(${MAXPAGESIZE}) + (. & (${MAXPAGESIZE} - 1))} :
+ {
+ *(.lrodata${RELOCATING+ .lrodata.* .gnu.linkonce.lr.*})
+ }
+ .ldata ${RELOCATING-0} ${RELOCATING+ALIGN(${MAXPAGESIZE}) + (. & (${MAXPAGESIZE} - 1))} :
+ {
+ *(.ldata${RELOCATING+ .ldata.* .gnu.linkonce.l.*})
+ ${RELOCATING+. = ALIGN(. != 0 ? ${ALIGNMENT} : 1);}
+ }"
+REL_LARGE="
+ .rel.ldata ${RELOCATING-0} : { *(.rel.ldata${RELOCATING+ .rel.ldata.* .rel.gnu.linkonce.l.*}) }
+ .rela.ldata ${RELOCATING-0} : { *(.rela.ldata${RELOCATING+ .rela.ldata.* .rela.gnu.linkonce.l.*}) }
+ .rel.lbss ${RELOCATING-0} : { *(.rel.lbss${RELOCATING+ .rel.lbss.* .rel.gnu.linkonce.lb.*}) }
+ .rela.lbss ${RELOCATING-0} : { *(.rela.lbss${RELOCATING+ .rela.lbss.* .rela.gnu.linkonce.lb.*}) }
+ .rel.lrodata ${RELOCATING-0} : { *(.rel.lrodata${RELOCATING+ .rel.lrodata.* .rel.gnu.linkonce.lr.*}) }
+ .rela.lrodata ${RELOCATING-0} : { *(.rela.lrodata${RELOCATING+ .rela.lrodata.* .rela.gnu.linkonce.lr.*}) }"
+
if [ "x${host}" = "x${target}" ]; then
case " $EMULATION_LIBPATH " in
*" ${EMULATION_NAME} "*)
diff --git a/ld/emulparams/hppa64linux.sh b/ld/emulparams/hppa64linux.sh
index 3e0e3e7..66bb842 100644
--- a/ld/emulparams/hppa64linux.sh
+++ b/ld/emulparams/hppa64linux.sh
@@ -30,12 +30,12 @@ OTHER_READWRITE_SECTIONS="
# The PA64 ELF port has two additional bss sections. huge bss and thread bss.
# Make sure they end up in the appropriate location. We also have to set
# __TLS_SIZE to the size of the thread bss section.
-OTHER_BSS_SECTIONS="
+LARGE_SECTIONS="
.hbss ${RELOCATING-0} : { *(.hbss) }
.tbss ${RELOCATING-0} : { *(.tbss) }
"
-#OTHER_END_SYMBOLS='PROVIDE (__TLS_SIZE = SIZEOF (.tbss));'
-OTHER_END_SYMBOLS='
+#OTHER_SYMBOLS='PROVIDE (__TLS_SIZE = SIZEOF (.tbss));'
+OTHER_SYMBOLS='
PROVIDE (__TLS_SIZE = 0);
PROVIDE (__TLS_INIT_SIZE = 0);
PROVIDE (__TLS_INIT_START = 0);
diff --git a/ld/emulparams/m32relf.sh b/ld/emulparams/m32relf.sh
index c67472a..947c7a8 100644
--- a/ld/emulparams/m32relf.sh
+++ b/ld/emulparams/m32relf.sh
@@ -9,4 +9,4 @@ MAXPAGESIZE=32
EMBEDDED=yes
# This sets the stack to the top of simulator memory (8MB).
-OTHER_END_SYMBOLS='PROVIDE (_stack = 0x800000);'
+OTHER_SYMBOLS='PROVIDE (_stack = 0x800000);'
diff --git a/ld/emulparams/vxworks.sh b/ld/emulparams/vxworks.sh
index 01757a2..0bd00e5 100644
--- a/ld/emulparams/vxworks.sh
+++ b/ld/emulparams/vxworks.sh
@@ -21,5 +21,5 @@ FINI_END='KEEP (*(.fini$99));
PROVIDE (_etext = .);'
ETEXT_NAME=etext_unrelocated
-OTHER_END_SYMBOLS="PROVIDE (_ehdr = ${TEXT_START_ADDR});"
+OTHER_SYMBOLS="PROVIDE (_ehdr = ${TEXT_START_ADDR});"
DATA_END_SYMBOLS=".edata : { PROVIDE (_edata = .); }"