This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Fix for xstormy16 linker script
- From: Nick Clifton <nickc at redhat dot com>
- To: binutils at sources dot redhat dot com
- Date: Wed, 29 Sep 2004 17:48:54 +0100
- Subject: Fix for xstormy16 linker script
Hi Guys
I am applying the attached patch to fix the linker script used by
the xstormy16 port. It had a problem in that the version of the
script used when a relocatable link was being performed included
assignments to memory regions. This does not work for any region
which does not include address 0, since all (relocatable) sections
are assigned to address 0.
Cheers
Nick
ld/ChangeLog
2004-09-29 Nick Clifton <nickc@redhat.com>
* scripttempl/xstormy16.sc: Only perform the assignments to the
ROM region when not performing a relocatable link. The ROM region
does not start at address 0, but the sections will.
* Makefile.am: Fix linker script dependency for the generation of
eelf32xstormy16.c.
* Makefile.in: Regenerate.
Index: ld/Makefile.am
===================================================================
RCS file: /cvs/src/src/ld/Makefile.am,v
retrieving revision 1.159
diff -c -3 -p -r1.159 Makefile.am
*** ld/Makefile.am 17 Sep 2004 06:15:38 -0000 1.159
--- ld/Makefile.am 29 Sep 2004 16:27:02 -0000
*************** eebmon29k.c: $(srcdir)/emulparams/ebmon2
*** 600,606 ****
${GENSCRIPTS} ebmon29k "$(tdir_ebmon29k)"
eelf32xstormy16.c: $(srcdir)/emulparams/elf32xstormy16.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
! $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf32xstormy16 "$(tdir_xstormy16)"
eelf32am33lin.c: $(srcdir)/emulparams/elf32am33lin.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
--- 600,606 ----
${GENSCRIPTS} ebmon29k "$(tdir_ebmon29k)"
eelf32xstormy16.c: $(srcdir)/emulparams/elf32xstormy16.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
! $(srcdir)/scripttempl/xstormy16.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf32xstormy16 "$(tdir_xstormy16)"
eelf32am33lin.c: $(srcdir)/emulparams/elf32am33lin.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
Index: ld/scripttempl/xstormy16.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/xstormy16.sc,v
retrieving revision 1.5
diff -c -3 -p -r1.5 xstormy16.sc
*** ld/scripttempl/xstormy16.sc 18 Apr 2003 08:26:17 -0000 1.5
--- ld/scripttempl/xstormy16.sc 29 Sep 2004 16:27:04 -0000
*************** SECTIONS
*** 152,166 ****
${RELOCATING+PROVIDE (end = .);}
/* Read-only sections in ROM. */
! .int_vec ${RELOCATING-0} : { *(.int_vec) } > ROM
! .rodata ${RELOCATING-0} : { *(.rodata) ${RELOCATING+*(.rodata.*)} ${RELOCATING+*(.gnu.linkonce.r.*)} } > ROM
${RELOCATING+${CTOR}}
${RELOCATING+${DTOR}}
! .jcr : { KEEP (*(.jcr)) } > ROM
! .eh_frame : { KEEP (*(.eh_frame)) } > ROM
! .gcc_except_table : { *(.gcc_except_table) } > ROM
! .plt : { *(.plt) } > ROM
.text ${RELOCATING-0} :
{
--- 152,166 ----
${RELOCATING+PROVIDE (end = .);}
/* Read-only sections in ROM. */
! .int_vec ${RELOCATING-0} : { *(.int_vec) } ${RELOCATING+> ROM}
! .rodata ${RELOCATING-0} : { *(.rodata) ${RELOCATING+*(.rodata.*)} ${RELOCATING+*(.gnu.linkonce.r.*)} } ${RELOCATING+> ROM}
${RELOCATING+${CTOR}}
${RELOCATING+${DTOR}}
! .jcr : { KEEP (*(.jcr)) } ${RELOCATING+> ROM}
! .eh_frame : { KEEP (*(.eh_frame)) } ${RELOCATING+> ROM}
! .gcc_except_table : { *(.gcc_except_table) } ${RELOCATING+> ROM}
! .plt : { *(.plt) } ${RELOCATING+> ROM}
.text ${RELOCATING-0} :
{
*************** SECTIONS
*** 172,190 ****
*(.gnu.warning)
${RELOCATING+*(.gnu.linkonce.t.*)}
${RELOCATING+${OTHER_TEXT_SECTIONS}}
! } > ROM =${NOP-0}
.init ${RELOCATING-0} :
{
${RELOCATING+${INIT_START}}
KEEP (*(.init))
${RELOCATING+${INIT_END}}
! } > ROM =${NOP-0}
.fini ${RELOCATING-0} :
{
${RELOCATING+${FINI_START}}
KEEP (*(.fini))
${RELOCATING+${FINI_END}}
! } > ROM =${NOP-0}
${RELOCATING+PROVIDE (__etext = .);}
${RELOCATING+PROVIDE (_etext = .);}
${RELOCATING+PROVIDE (etext = .);}
--- 172,190 ----
*(.gnu.warning)
${RELOCATING+*(.gnu.linkonce.t.*)}
${RELOCATING+${OTHER_TEXT_SECTIONS}}
! } ${RELOCATING+> ROM =${NOP-0}}
.init ${RELOCATING-0} :
{
${RELOCATING+${INIT_START}}
KEEP (*(.init))
${RELOCATING+${INIT_END}}
! } ${RELOCATING+> ROM =${NOP-0}}
.fini ${RELOCATING-0} :
{
${RELOCATING+${FINI_START}}
KEEP (*(.fini))
${RELOCATING+${FINI_END}}
! } ${RELOCATING+> ROM =${NOP-0}}
${RELOCATING+PROVIDE (__etext = .);}
${RELOCATING+PROVIDE (_etext = .);}
${RELOCATING+PROVIDE (etext = .);}