This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: link script PROVIDE bugfix
On Thu, Aug 04, 2005 at 07:49:37PM +0100, Paul Brook wrote:
> elf.sc (and other scripts based on it) already contain ${OTHER_END_SYMBOLS}
Oops, sorry. This reintroduces OTHER_BSS_END_SYMBOLS for syms defined
at the end of bss, uses OTHER_END_SYMBOLS for syms that belong with
_end, and uses OTHER_SYMBOLS for syms at the end of the script.
I've also moved the LARGE_SECTIONS definitions into elf_x86_64.sh since
no other target as yet uses them. They can go back into the main ELF
file if and when other targets need them, assuming the same definition
works.
* emulparams/armelf.sh (OTHER_BSS_END_SYMBOLS): Split out from
OTHER_END_SYMBOLS.
* emulparams/armelf_linux.sh: Likewise.
* emulparams/armnto.sh: Likewise.
* emulparams/criself.sh: Likewise.
* emulparams/elf32mcore.sh: Likewise.
* emulparams/criself.sh (OTHER_SYMBOLS): Define.
* emulparams/crislinux.sh (OTHER_SYMBOLS): Define.
(OTHER_END_SYMBOLS): Don't define.
* emulparams/elf32fr30.sh: Likewise.
* emulparams/elf64mmix.sh: Likewise.
* emulparams/hppa64linux.sh: Likewise.
* emulparams/m32relf.sh: Likewise.
* emulparams/vxworks.sh: Likewise.
* scripttempl/armbpabi.sc (OTHER_BSS_SECTIONS): Delete.
(OTHER_BSS_END_SYMBOLS): Add.
(OTHER_END_SYMBOLS): Move before current end sym definitions.
(OTHER_SYMBOLS): Replace OTHER_END_SYMBOLS near end of script.
* scripttempl/elf.sc: Likewise.
* scripttempl/elf32sh-symbian.sc: Likewise.
* scripttempl/elf_chaos.sc: Likewise.
* scripttempl/elfxtensa.sc: Likewise.
* scripttempl/iq2000.sc: Likewise.
* scripttempl/xstormy16.sc: Likewise.
* scripttempl/elf.sc (LBSS, LARGE_SECTIONS): Delete.
(REL_LDATA, REL_LBSS, REL_LRODATA): Delete.
(REL_LARGE, LARGE_SECTIONS): Add.
* emulparams/elf_x86_64.sh (LARGE_SECTIONS): Define as script text.
(REL_LARGE): Define.
* emulparams/hppa64linux.sh (OTHER_BSS_SECTIONS): Don't define.
(LARGE_SECTIONS): Define.
* emulparams/hppa64linux.sh (OTHER_BSS_SECTIONS): Don't define.
(LARGE_SECTIONS): Define.
Index: ld/emulparams/armelf.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/armelf.sh,v
retrieving revision 1.15
diff -u -p -r1.15 armelf.sh
--- ld/emulparams/armelf.sh 3 Aug 2005 05:09:49 -0000 1.15
+++ ld/emulparams/armelf.sh 5 Aug 2005 02:48:42 -0000
@@ -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.*}) }
Index: ld/emulparams/armelf_linux.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/armelf_linux.sh,v
retrieving revision 1.14
diff -u -p -r1.14 armelf_linux.sh
--- ld/emulparams/armelf_linux.sh 3 Aug 2005 05:09:49 -0000 1.14
+++ ld/emulparams/armelf_linux.sh 5 Aug 2005 02:48:42 -0000
@@ -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
Index: ld/emulparams/armnto.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/armnto.sh,v
retrieving revision 1.3
diff -u -p -r1.3 armnto.sh
--- ld/emulparams/armnto.sh 3 Aug 2005 05:09:49 -0000 1.3
+++ ld/emulparams/armnto.sh 5 Aug 2005 02:48:42 -0000
@@ -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 = . ;';
Index: ld/emulparams/criself.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/criself.sh,v
retrieving revision 1.8
diff -u -p -r1.8 criself.sh
--- ld/emulparams/criself.sh 3 Aug 2005 05:09:49 -0000 1.8
+++ ld/emulparams/criself.sh 5 Aug 2005 02:48:42 -0000
@@ -42,12 +42,12 @@ OTHER_SDATA_SECTIONS="${RELOCATING+PROVI
# 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);
Index: ld/emulparams/crislinux.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/crislinux.sh,v
retrieving revision 1.8
diff -u -p -r1.8 crislinux.sh
--- ld/emulparams/crislinux.sh 3 Aug 2005 05:09:49 -0000 1.8
+++ ld/emulparams/crislinux.sh 5 Aug 2005 02:48:42 -0000
@@ -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);
Index: ld/emulparams/elf32fr30.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf32fr30.sh,v
retrieving revision 1.4
diff -u -p -r1.4 elf32fr30.sh
--- ld/emulparams/elf32fr30.sh 22 Nov 2001 09:08:04 -0000 1.4
+++ ld/emulparams/elf32fr30.sh 5 Aug 2005 02:48:42 -0000
@@ -7,4 +7,4 @@ MAXPAGESIZE=256
ENTRY=_start
EMBEDDED=yes
NOP=0x9fa09fa0
-OTHER_END_SYMBOLS='PROVIDE (__stack = 0x200000);'
+OTHER_SYMBOLS='PROVIDE (__stack = 0x200000);'
Index: ld/emulparams/elf32mcore.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf32mcore.sh,v
retrieving revision 1.13
diff -u -p -r1.13 elf32mcore.sh
--- ld/emulparams/elf32mcore.sh 3 Aug 2005 05:09:49 -0000 1.13
+++ ld/emulparams/elf32mcore.sh 5 Aug 2005 02:48:42 -0000
@@ -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
Index: ld/emulparams/elf64mmix.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf64mmix.sh,v
retrieving revision 1.3
diff -u -p -r1.3 elf64mmix.sh
--- ld/emulparams/elf64mmix.sh 1 Feb 2002 08:24:03 -0000 1.3
+++ ld/emulparams/elf64mmix.sh 5 Aug 2005 02:48:42 -0000
@@ -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);"
Index: ld/emulparams/elf_x86_64.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/elf_x86_64.sh,v
retrieving revision 1.13
diff -u -p -r1.13 elf_x86_64.sh
--- ld/emulparams/elf_x86_64.sh 25 Jul 2005 15:41:08 -0000 1.13
+++ ld/emulparams/elf_x86_64.sh 5 Aug 2005 02:48:42 -0000
@@ -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} "*)
Index: ld/emulparams/hppa64linux.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/hppa64linux.sh,v
retrieving revision 1.5
diff -u -p -r1.5 hppa64linux.sh
--- ld/emulparams/hppa64linux.sh 3 Aug 2005 05:09:49 -0000 1.5
+++ ld/emulparams/hppa64linux.sh 5 Aug 2005 02:48:42 -0000
@@ -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);
Index: ld/emulparams/m32relf.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/m32relf.sh,v
retrieving revision 1.2
diff -u -p -r1.2 m32relf.sh
--- ld/emulparams/m32relf.sh 22 Nov 2001 09:08:04 -0000 1.2
+++ ld/emulparams/m32relf.sh 5 Aug 2005 02:48:42 -0000
@@ -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);'
Index: ld/emulparams/vxworks.sh
===================================================================
RCS file: /cvs/src/src/ld/emulparams/vxworks.sh,v
retrieving revision 1.1
diff -u -p -r1.1 vxworks.sh
--- ld/emulparams/vxworks.sh 5 May 2005 14:37:27 -0000 1.1
+++ ld/emulparams/vxworks.sh 5 Aug 2005 02:48:44 -0000
@@ -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 = .); }"
Index: ld/scripttempl/armbpabi.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/armbpabi.sc,v
retrieving revision 1.8
diff -u -p -r1.8 armbpabi.sc
--- ld/scripttempl/armbpabi.sc 3 Aug 2005 05:09:49 -0000 1.8
+++ ld/scripttempl/armbpabi.sc 5 Aug 2005 02:48:44 -0000
@@ -293,10 +293,10 @@ cat <<EOF
.bss section disappears because there are no input sections. */
${RELOCATING+. = ALIGN(${ALIGNMENT});}
}
- ${OTHER_BSS_SECTIONS}
+ ${RELOCATING+${OTHER_BSS_END_SYMBOLS}}
${RELOCATING+. = ALIGN(${ALIGNMENT});}
- ${RELOCATING+_end = .;}
${RELOCATING+${OTHER_END_SYMBOLS}}
+ ${RELOCATING+_end = .;}
${RELOCATING+PROVIDE (end = .);}
${RELOCATING+${DATA_SEGMENT_END}}
@@ -353,7 +353,7 @@ cat <<EOF
${STACK_ADDR+${STACK}}
${OTHER_SECTIONS}
- ${RELOCATING+${OTHER_END_SYMBOLS}}
+ ${RELOCATING+${OTHER_SYMBOLS}}
${RELOCATING+${STACKNOTE}}
EOF
Index: ld/scripttempl/elf.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/elf.sc,v
retrieving revision 1.63
diff -u -p -r1.63 elf.sc
--- ld/scripttempl/elf.sc 4 Aug 2005 06:22:14 -0000 1.63
+++ ld/scripttempl/elf.sc 5 Aug 2005 02:48:44 -0000
@@ -14,7 +14,6 @@
# (e.g., .PARISC.global)
# OTHER_RELRO_SECTIONS - other than .data.rel.ro ...
# (e.g. PPC32 .fixup, .got[12])
-# OTHER_BSS_SECTIONS - other than .bss .sbss ...
# OTHER_SECTIONS - at the end
# EXECUTABLE_SYMBOLS - symbols that must be defined for an
# executable (e.g., _DYNAMIC_LINK)
@@ -46,7 +45,7 @@
# FINI_START, FINI_END - statements just before and just after
# combination of .fini sections.
# STACK_ADDR - start of a .stack section.
-# OTHER_END_SYMBOLS - symbols to place right at the end of the script.
+# OTHER_SYMBOLS - symbols to place right at the end of the script.
# ETEXT_NAME - name of a symbol for the end of the text section,
# normally etext.
# SEPARATE_GOTPLT - if set, .got.plt should be separate output section,
@@ -166,31 +165,6 @@ if test -z "${SDATA_GOT}"; then
SDATA_GOT=" "
fi
fi
-if test -n "${LARGE_SECTIONS}"; then
- LBSS="
- .lbss ${RELOCATING-0} :
- {
- *(.dynlbss)
- *(.lbss${RELOCATING+ .lbss.* .gnu.linkonce.lb.*})
- *(LARGE_COMMON)
- }"
- LARGE_SECTIONS="
- .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_LDATA=".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=".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=".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.*}) }"
-fi
test -n "$SEPARATE_GOTPLT" && SEPARATE_GOTPLT=" "
CTOR=".ctors ${CONSTRUCTING-0} :
{
@@ -308,9 +282,7 @@ eval $COMBRELOCCAT <<EOF
${REL_SBSS2}
.rel.bss ${RELOCATING-0} : { *(.rel.bss${RELOCATING+ .rel.bss.* .rel.gnu.linkonce.b.*}) }
.rela.bss ${RELOCATING-0} : { *(.rela.bss${RELOCATING+ .rela.bss.* .rela.gnu.linkonce.b.*}) }
- ${REL_LDATA}
- ${REL_LBSS}
- ${REL_LRODATA}
+ ${REL_LARGE}
EOF
if [ -n "$COMBRELOC" ]; then
cat <<EOF
@@ -451,8 +423,8 @@ cat <<EOF
pad the .data section. */
${RELOCATING+. = ALIGN(. != 0 ? ${ALIGNMENT} : 1);}
}
- ${LBSS}
- ${OTHER_BSS_SECTIONS}
+ ${RELOCATING+${OTHER_BSS_END_SYMBOLS}}
+ ${RELOCATING+. = ALIGN(${ALIGNMENT});}
${LARGE_SECTIONS}
${RELOCATING+. = ALIGN(${ALIGNMENT});}
${RELOCATING+${OTHER_END_SYMBOLS}}
@@ -503,7 +475,7 @@ cat <<EOF
${STACK_ADDR+${STACK}}
${OTHER_SECTIONS}
- ${RELOCATING+${OTHER_END_SYMBOLS}}
+ ${RELOCATING+${OTHER_SYMBOLS}}
${RELOCATING+${STACKNOTE}}
}
EOF
Index: ld/scripttempl/elf32sh-symbian.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/elf32sh-symbian.sc,v
retrieving revision 1.2
diff -u -p -r1.2 elf32sh-symbian.sc
--- ld/scripttempl/elf32sh-symbian.sc 3 Aug 2005 05:09:49 -0000 1.2
+++ ld/scripttempl/elf32sh-symbian.sc 5 Aug 2005 02:48:44 -0000
@@ -8,7 +8,6 @@
# OTHER_TEXT_SECTIONS - these get put in .text when relocating
# OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ...
# (e.g., .PARISC.global)
-# OTHER_BSS_SECTIONS - other than .bss .sbss ...
# OTHER_SECTIONS - at the end
# EXECUTABLE_SYMBOLS - symbols that must be defined for an
# executable (e.g., _DYNAMIC_LINK)
@@ -34,7 +33,7 @@
# FINI_START, FINI_END - statements just before and just after
# combination of .fini sections.
# STACK_ADDR - start of a .stack section.
-# OTHER_END_SYMBOLS - symbols to place right at the end of the script.
+# OTHER_SYMBOLS - symbols to place right at the end of the script.
#
# When adding sections, do note that the names of some sections are used
# when specifying the start address of the next.
@@ -257,10 +256,10 @@ SECTIONS
.bss section disappears because there are no input sections. */
${RELOCATING+. = ALIGN(${ALIGNMENT});}
} :data
- ${OTHER_BSS_SECTIONS}
+ ${RELOCATING+${OTHER_BSS_END_SYMBOLS}}
${RELOCATING+. = ALIGN(${ALIGNMENT});}
- ${RELOCATING+_end = .;}
${RELOCATING+${OTHER_END_SYMBOLS}}
+ ${RELOCATING+_end = .;}
${RELOCATING+PROVIDE (end = .);}
${RELOCATING+${DATA_SEGMENT_END}}
@@ -371,7 +370,7 @@ cat <<EOF
${STACK_ADDR+${STACK}}
${OTHER_SECTIONS}
- ${RELOCATING+${OTHER_END_SYMBOLS}}
+ ${RELOCATING+${OTHER_SYMBOLS}}
${RELOCATING+${STACKNOTE}}
}
EOF
Index: ld/scripttempl/elf_chaos.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/elf_chaos.sc,v
retrieving revision 1.3
diff -u -p -r1.3 elf_chaos.sc
--- ld/scripttempl/elf_chaos.sc 3 Aug 2005 05:09:49 -0000 1.3
+++ ld/scripttempl/elf_chaos.sc 5 Aug 2005 02:48:44 -0000
@@ -10,7 +10,6 @@
# OTHER_TEXT_SECTIONS - these get put in .text when relocating
# OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ...
# (e.g., .PARISC.global)
-# OTHER_BSS_SECTIONS - other than .bss .sbss ...
# OTHER_SECTIONS - at the end
# EXECUTABLE_SYMBOLS - symbols that must be defined for an
# executable (e.g., _DYNAMIC_LINK)
@@ -36,7 +35,7 @@
# FINI_START, FINI_END - statements just before and just after
# combination of .fini sections.
# STACK_ADDR - start of a .stack section.
-# OTHER_END_SYMBOLS - symbols to place right at the end of the script.
+# OTHER_SYMBOLS - symbols to place right at the end of the script.
#
# When adding sections, do note that the names of some sections are used
# when specifying the start address of the next.
@@ -298,10 +297,10 @@ cat <<EOF
.bss section disappears because there are no input sections. */
${RELOCATING+. = ALIGN(${ALIGNMENT});}
}
- ${OTHER_BSS_SECTIONS}
+ ${RELOCATING+${OTHER_BSS_END_SYMBOLS}}
${RELOCATING+. = ALIGN(${ALIGNMENT});}
- ${RELOCATING+_end = .;}
${RELOCATING+${OTHER_END_SYMBOLS}}
+ ${RELOCATING+_end = .;}
${RELOCATING+PROVIDE (end = .);}
/* Stabs debugging sections. */
@@ -349,6 +348,6 @@ cat <<EOF
${STACK_ADDR+${STACK}}
${OTHER_SECTIONS}
- ${RELOCATING+${OTHER_END_SYMBOLS}}
+ ${RELOCATING+${OTHER_SYMBOLS}}
}
EOF
Index: ld/scripttempl/elfxtensa.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/elfxtensa.sc,v
retrieving revision 1.5
diff -u -p -r1.5 elfxtensa.sc
--- ld/scripttempl/elfxtensa.sc 3 Aug 2005 05:09:49 -0000 1.5
+++ ld/scripttempl/elfxtensa.sc 5 Aug 2005 02:48:44 -0000
@@ -14,7 +14,6 @@
# (e.g., .PARISC.global)
# OTHER_RELRO_SECTIONS - other than .data.rel.ro ...
# (e.g. PPC32 .fixup, .got[12])
-# OTHER_BSS_SECTIONS - other than .bss .sbss ...
# OTHER_SECTIONS - at the end
# EXECUTABLE_SYMBOLS - symbols that must be defined for an
# executable (e.g., _DYNAMIC_LINK)
@@ -46,7 +45,7 @@
# FINI_START, FINI_END - statements just before and just after
# combination of .fini sections.
# STACK_ADDR - start of a .stack section.
-# OTHER_END_SYMBOLS - symbols to place right at the end of the script.
+# OTHER_SYMBOLS - symbols to place right at the end of the script.
# ETEXT_NAME - name of a symbol for the end of the text section,
# normally etext.
# SEPARATE_GOTPLT - if set, .got.plt should be separate output section,
@@ -404,10 +403,10 @@ cat <<EOF
.bss section disappears because there are no input sections. */
${RELOCATING+. = ALIGN(${ALIGNMENT});}
}
- ${OTHER_BSS_SECTIONS}
+ ${RELOCATING+${OTHER_BSS_END_SYMBOLS}}
${RELOCATING+. = ALIGN(${ALIGNMENT});}
- ${RELOCATING+_end = .;}
${RELOCATING+${OTHER_END_SYMBOLS}}
+ ${RELOCATING+_end = .;}
${RELOCATING+PROVIDE (end = .);}
${RELOCATING+${DATA_SEGMENT_END}}
@@ -454,7 +453,7 @@ cat <<EOF
${STACK_ADDR+${STACK}}
${OTHER_SECTIONS}
- ${RELOCATING+${OTHER_END_SYMBOLS}}
+ ${RELOCATING+${OTHER_SYMBOLS}}
${RELOCATING+${STACKNOTE}}
}
EOF
Index: ld/scripttempl/iq2000.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/iq2000.sc,v
retrieving revision 1.3
diff -u -p -r1.3 iq2000.sc
--- ld/scripttempl/iq2000.sc 3 Aug 2005 05:09:49 -0000 1.3
+++ ld/scripttempl/iq2000.sc 5 Aug 2005 02:48:45 -0000
@@ -8,7 +8,6 @@
# OTHER_TEXT_SECTIONS - these get put in .text when relocating
# OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ...
# (e.g., .PARISC.global)
-# OTHER_BSS_SECTIONS - other than .bss .sbss ...
# OTHER_SECTIONS - at the end
# EXECUTABLE_SYMBOLS - symbols that must be defined for an
# executable (e.g., _DYNAMIC_LINK)
@@ -388,10 +387,10 @@ cat <<EOF
.bss section disappears because there are no input sections. */
${RELOCATING+. = ALIGN(${ALIGNMENT});}
}
- ${RELOCATING+${OTHER_BSS_SECTIONS}}
+ ${RELOCATING+${OTHER_BSS_END_SYMBOLS}}
${RELOCATING+. = ALIGN(${ALIGNMENT});}
- ${RELOCATING+_end = .;}
${RELOCATING+${OTHER_END_SYMBOLS}}
+ ${RELOCATING+_end = .;}
${RELOCATING+PROVIDE (end = .);}
/* Stabs debugging sections. */
Index: ld/scripttempl/xstormy16.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/xstormy16.sc,v
retrieving revision 1.7
diff -u -p -r1.7 xstormy16.sc
--- ld/scripttempl/xstormy16.sc 3 Aug 2005 05:09:49 -0000 1.7
+++ ld/scripttempl/xstormy16.sc 5 Aug 2005 02:48:45 -0000
@@ -7,7 +7,6 @@
# OTHER_TEXT_SECTIONS - these get put in .text when relocating
# OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ...
# (e.g., .PARISC.global)
-# OTHER_BSS_SECTIONS - other than .bss .sbss ...
# OTHER_SECTIONS - at the end
# EXECUTABLE_SYMBOLS - symbols that must be defined for an
# executable (e.g., _DYNAMIC_LINK)
@@ -144,11 +143,11 @@ SECTIONS
.bss section disappears because there are no input sections. */
${RELOCATING+. = ALIGN(${ALIGNMENT});}
} > RAM
- ${RELOCATING+${OTHER_BSS_SECTIONS}}
+ ${RELOCATING+${OTHER_BSS_END_SYMBOLS}}
${RELOCATING+. = ALIGN(${ALIGNMENT});}
+ ${RELOCATING+${OTHER_END_SYMBOLS}}
${RELOCATING+_end = .;}
${RELOCATING+__stack = .;}
- ${RELOCATING+${OTHER_END_SYMBOLS}}
${RELOCATING+PROVIDE (end = .);}
/* Read-only sections in ROM. */
--
Alan Modra
IBM OzLabs - Linux Technology Centre