aboutsummaryrefslogtreecommitdiff
path: root/ld/scripttempl/xstormy16.sc
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2009-10-10 04:34:39 +0000
committerAlan Modra <amodra@gmail.com>2009-10-10 04:34:39 +0000
commitec2d9b29273a260dad374eca5bbe2f7922d0bfde (patch)
tree2156cd6930f0b4701cbf590d22149f1d463670d7 /ld/scripttempl/xstormy16.sc
parentd4780e57f540e6c89da1cfef35666ae3f20d26a8 (diff)
downloadgdb-ec2d9b29273a260dad374eca5bbe2f7922d0bfde.zip
gdb-ec2d9b29273a260dad374eca5bbe2f7922d0bfde.tar.gz
gdb-ec2d9b29273a260dad374eca5bbe2f7922d0bfde.tar.bz2
Revert 2009-09-28 changes.
Diffstat (limited to 'ld/scripttempl/xstormy16.sc')
-rw-r--r--ld/scripttempl/xstormy16.sc22
1 files changed, 13 insertions, 9 deletions
diff --git a/ld/scripttempl/xstormy16.sc b/ld/scripttempl/xstormy16.sc
index 183cc67..73d08b8 100644
--- a/ld/scripttempl/xstormy16.sc
+++ b/ld/scripttempl/xstormy16.sc
@@ -54,7 +54,7 @@ test -z "${LITTLE_OUTPUT_FORMAT}" && LITTLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH}; else OUTPUT_ARCH=${ARCH}:${MACHINE}; fi
test -z "${ELFSIZE}" && ELFSIZE=32
test -z "${ALIGNMENT}" && ALIGNMENT="${ELFSIZE} / 8"
-CTOR=".ctors :
+CTOR=".ctors ${CONSTRUCTING-0} :
{
${CONSTRUCTING+${CTOR_START}}
/* gcc uses crtbegin.o to find the start of
@@ -81,7 +81,7 @@ CTOR=".ctors :
${CONSTRUCTING+${CTOR_END}}
} > ROM"
-DTOR=" .dtors :
+DTOR=" .dtors ${CONSTRUCTING-0} :
{
${CONSTRUCTING+${DTOR_START}}
KEEP (*crtbegin.o(.dtors))
@@ -101,6 +101,10 @@ ${RELOCATING+ENTRY(${ENTRY})}
${RELOCATING+${LIB_SEARCH_DIRS}}
${RELOCATING+${EXECUTABLE_SYMBOLS}}
${RELOCATING+${INPUT_FILES}}
+${RELOCATING- /* For some reason, the Solaris linker makes bad executables
+ if gld -r is used and the intermediate file has sections starting
+ at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld
+ bug. But for now assigning the zero vmas works. */}
/* There are two memory regions we care about, one from 0 through 0x7F00
that is RAM and one from 0x8000 up which is ROM. */
@@ -112,7 +116,7 @@ MEMORY
SECTIONS
{
- .data :
+ .data ${RELOCATING-0} :
{
${RELOCATING+__rdata = .;}
${RELOCATING+__data = .;}
@@ -129,7 +133,7 @@ SECTIONS
${RELOCATING+PROVIDE (edata = .);}
${RELOCATING+__bss_start = .;}
${RELOCATING+${OTHER_BSS_SYMBOLS}}
- .bss :
+ .bss ${RELOCATING-0} :
{
*(.dynbss)
*(.bss)
@@ -149,9 +153,9 @@ SECTIONS
${RELOCATING+PROVIDE (end = .);}
/* Read-only sections in ROM. */
- .int_vec : { *(.int_vec) } ${RELOCATING+> ROM}
+ .int_vec ${RELOCATING-0} : { *(.int_vec) } ${RELOCATING+> ROM}
- .rodata : { *(.rodata) ${RELOCATING+*(.rodata.*)} ${RELOCATING+*(.gnu.linkonce.r.*)} } ${RELOCATING+> ROM}
+ .rodata ${RELOCATING-0} : { *(.rodata) ${RELOCATING+*(.rodata.*)} ${RELOCATING+*(.gnu.linkonce.r.*)} } ${RELOCATING+> ROM}
${RELOCATING+${CTOR}}
${RELOCATING+${DTOR}}
.jcr : { KEEP (*(.jcr)) } ${RELOCATING+> ROM}
@@ -159,7 +163,7 @@ SECTIONS
.gcc_except_table : { *(.gcc_except_table) } ${RELOCATING+> ROM}
.plt : { *(.plt) } ${RELOCATING+> ROM}
- .text :
+ .text ${RELOCATING-0} :
{
${RELOCATING+${TEXT_START_SYMBOLS}}
*(.text)
@@ -170,13 +174,13 @@ SECTIONS
${RELOCATING+*(.gnu.linkonce.t.*)}
${RELOCATING+${OTHER_TEXT_SECTIONS}}
} ${RELOCATING+> ROM =${NOP-0}}
- .init :
+ .init ${RELOCATING-0} :
{
${RELOCATING+${INIT_START}}
KEEP (*(.init))
${RELOCATING+${INIT_END}}
} ${RELOCATING+> ROM =${NOP-0}}
- .fini :
+ .fini ${RELOCATING-0} :
{
${RELOCATING+${FINI_START}}
KEEP (*(.fini))