This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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 = .);}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]