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]

[rfa:] CRIS port part 6/8: ld


Here are the ld bits.

Ok to commit?

2000-07-18  Hans-Peter Nilsson  <hp@axis.com>

	* Makefile.am (ALL_EMULATIONS): Add ecrisaout.o, ecriself.o,
	ecrislinux.o.
	(ecrisaout.c, ecriself.c, ecrislinux.c): New rules.
	Regenerate dependencies.
	* Makefile.in: Rebuild.
	* configure.tgt (cris-*-*): New target.
	* emulparams/crisaout.sh, emulparams/criself.sh,
	emulparams/crislinux.sh, scripttempl/crisaout.sc: New files.
	* po/POTFILES.in, po/ld.pot: Regenerate.

Index: ld/Makefile.am
===================================================================
RCS file: /cvs/src/src/ld/Makefile.am,v
retrieving revision 1.40
diff -p -c -r1.40 Makefile.am
*** Makefile.am	2000/07/09 08:45:29	1.40
--- Makefile.am	2000/07/18 18:31:05
*************** ALL_EMULATIONS = \
*** 123,128 ****
--- 123,131 ----
  	eavrmega161.o \
  	eavrmega603.o \
  	ecoff_sparc.o \
+ 	ecrisaout.o \
+ 	ecriself.o \
+ 	ecrislinux.o \
  	ed10velf.o \
  	ed30v_e.o \
  	ed30v_o.o \
*************** eavrmega161.c: $(srcdir)/emulparams/avrm
*** 378,383 ****
--- 381,395 ----
  ecoff_sparc.c: $(srcdir)/emulparams/coff_sparc.sh \
    $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sparccoff.sc ${GEN_DEPENDS}
  	${GENSCRIPTS} coff_sparc "$(tdir_coff_sparc)"
+ ecrisaout.c: $(srcdir)/emulparams/crisaout.sh \
+   $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/crisaout.sc ${GEN_DEPENDS}
+ 	${GENSCRIPTS} crisaout "$(tdir_cris)"
+ ecriself.c: $(srcdir)/emulparams/criself.sh \
+   $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ 	${GENSCRIPTS} criself "$(tdir_cris)"
+ ecrislinux.c: $(srcdir)/emulparams/crislinux.sh \
+   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ 	${GENSCRIPTS} crislinux "$(tdir_cris)"
  ed10velf.c: $(srcdir)/emulparams/d10velf.sh \
    $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfd10v.sc ${GEN_DEPENDS}
  	${GENSCRIPTS} d10velf "$(tdir_d10v)"
*************** ldctor.o: ldctor.c ../bfd/bfd.h $(INCDIR
*** 946,952 ****
    ldgram.h ldmain.h ldctor.h
  ldemul.o: ldemul.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h ld.h $(INCDIR)/bin-bugs.h \
!   ldemul.h ldmisc.h ldexp.h ldlang.h ldfile.h ldmain.h \
    ldemul-list.h
  ldexp.o: ldexp.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
--- 958,964 ----
    ldgram.h ldmain.h ldctor.h
  ldemul.o: ldemul.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h ld.h $(INCDIR)/bin-bugs.h \
!   ldmisc.h ldexp.h ldlang.h ldfile.h ldemul.h ldmain.h \
    ldemul-list.h
  ldexp.o: ldexp.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
*************** ldfile.o: ldfile.c ../bfd/bfd.h $(INCDIR
*** 959,971 ****
  ldlang.o: ldlang.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
    $(INCDIR)/obstack.h $(INCDIR)/bfdlink.h ld.h $(INCDIR)/bin-bugs.h \
!   ldmain.h ldgram.h ldexp.h ldlang.h ldemul.h ldlex.h \
!   ldmisc.h ldctor.h ldfile.h $(INCDIR)/fnmatch.h $(INCDIR)/demangle.h
  ldmain.o: ldmain.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
    $(INCDIR)/progress.h $(INCDIR)/bfdlink.h $(INCDIR)/filenames.h \
    ld.h $(INCDIR)/bin-bugs.h ldmain.h ldmisc.h ldwrite.h \
!   ldgram.h ldexp.h ldlang.h ldemul.h ldlex.h ldfile.h \
    ldctor.h
  ldmisc.o: ldmisc.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
--- 971,983 ----
  ldlang.o: ldlang.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
    $(INCDIR)/obstack.h $(INCDIR)/bfdlink.h ld.h $(INCDIR)/bin-bugs.h \
!   ldmain.h ldgram.h ldexp.h ldlang.h ldlex.h ldmisc.h \
!   ldctor.h ldfile.h ldemul.h $(INCDIR)/fnmatch.h $(INCDIR)/demangle.h
  ldmain.o: ldmain.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
    $(INCDIR)/progress.h $(INCDIR)/bfdlink.h $(INCDIR)/filenames.h \
    ld.h $(INCDIR)/bin-bugs.h ldmain.h ldmisc.h ldwrite.h \
!   ldgram.h ldexp.h ldlang.h ldlex.h ldfile.h ldemul.h \
    ldctor.h
  ldmisc.o: ldmisc.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
*************** ldmisc.o: ldmisc.c ../bfd/bfd.h $(INCDIR
*** 973,988 ****
    ldexp.h ldlang.h ldgram.h ldlex.h ldmain.h ldfile.h
  ldver.o: ldver.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h ld.h $(INCDIR)/bin-bugs.h \
!   ldver.h ldemul.h ldmain.h
  ldwrite.o: ldwrite.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
    $(INCDIR)/libiberty.h ld.h $(INCDIR)/bin-bugs.h ldexp.h \
    ldlang.h ldwrite.h ldmisc.h ldgram.h ldmain.h
  lexsup.o: lexsup.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
!   $(INCDIR)/bfdlink.h ld.h $(INCDIR)/bin-bugs.h ldmain.h \
!   ldmisc.h ldexp.h ldlang.h ldgram.h ldlex.h ldfile.h \
!   ldver.h ldemul.h
  mri.o: mri.c ../bfd/bfd.h $(INCDIR)/ansidecl.h sysdep.h \
    config.h $(INCDIR)/fopen-same.h ld.h $(INCDIR)/bin-bugs.h \
    ldexp.h ldlang.h ldmisc.h mri.h ldgram.h $(INCDIR)/libiberty.h
--- 985,1000 ----
    ldexp.h ldlang.h ldgram.h ldlex.h ldmain.h ldfile.h
  ldver.o: ldver.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h ld.h $(INCDIR)/bin-bugs.h \
!   ldver.h ldexp.h ldlang.h ldfile.h ldemul.h ldmain.h
  ldwrite.o: ldwrite.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
    $(INCDIR)/libiberty.h ld.h $(INCDIR)/bin-bugs.h ldexp.h \
    ldlang.h ldwrite.h ldmisc.h ldgram.h ldmain.h
  lexsup.o: lexsup.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
!   $(INCDIR)/getopt.h $(INCDIR)/bfdlink.h ld.h $(INCDIR)/bin-bugs.h \
!   ldmain.h ldmisc.h ldexp.h ldlang.h ldgram.h ldlex.h \
!   ldfile.h ldver.h ldemul.h
  mri.o: mri.c ../bfd/bfd.h $(INCDIR)/ansidecl.h sysdep.h \
    config.h $(INCDIR)/fopen-same.h ld.h $(INCDIR)/bin-bugs.h \
    ldexp.h ldlang.h ldmisc.h mri.h ldgram.h $(INCDIR)/libiberty.h
*************** ldcref.o: ldcref.c ../bfd/bfd.h $(INCDIR
*** 993,1005 ****
  pe-dll.o: pe-dll.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
    $(INCDIR)/libiberty.h ld.h $(INCDIR)/bin-bugs.h ldexp.h \
!   ldlang.h ldwrite.h ldmisc.h ldgram.h ldmain.h ldemul.h \
!   $(INCDIR)/coff/internal.h ../bfd/libcoff.h deffile.h \
!   pe-dll.h
  ldgram.o: ldgram.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
    ld.h $(INCDIR)/bin-bugs.h ldexp.h ldver.h ldlang.h \
!   ldemul.h ldfile.h ldmisc.h ldmain.h mri.h ldctor.h \
    ldlex.h
  ldlex.o: ldlex.c ../bfd/bfd.h sysdep.h config.h $(INCDIR)/fopen-same.h \
    ld.h $(INCDIR)/bin-bugs.h ldgram.h ldmisc.h ldexp.h \
--- 1005,1017 ----
  pe-dll.o: pe-dll.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
    $(INCDIR)/libiberty.h ld.h $(INCDIR)/bin-bugs.h ldexp.h \
!   ldlang.h ldwrite.h ldmisc.h ldgram.h ldmain.h ldfile.h \
!   ldemul.h $(INCDIR)/coff/internal.h ../bfd/libcoff.h \
!   deffile.h pe-dll.h
  ldgram.o: ldgram.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
    sysdep.h config.h $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h \
    ld.h $(INCDIR)/bin-bugs.h ldexp.h ldver.h ldlang.h \
!   ldfile.h ldemul.h ldmisc.h ldmain.h mri.h ldctor.h \
    ldlex.h
  ldlex.o: ldlex.c ../bfd/bfd.h sysdep.h config.h $(INCDIR)/fopen-same.h \
    ld.h $(INCDIR)/bin-bugs.h ldgram.h ldmisc.h ldexp.h \
Index: ld/configure.tgt
===================================================================
RCS file: /cvs/src/src/ld/configure.tgt,v
retrieving revision 1.34
diff -p -c -r1.34 configure.tgt
*** configure.tgt	2000/07/10 17:15:11	1.34
--- configure.tgt	2000/07/18 18:31:09
*************** arm-*-pe)		targ_emul=armpe ;
*** 23,28 ****
--- 23,31 ----
  arc-*-elf*)		targ_emul=arcelf ;;
  avr-*-*)		targ_emul=avr85xx
  			targ_extra_emuls="avr1200 avr23xx avr44x4 avr4433 avrmega603 avrmega103 avrmega161" ;;
+ cris-*-*)		targ_emul=crisaout
+ 			targ_extra_emuls="criself crislinux"
+ 			targ_extra_libpath=$targ_extra_emuls ;;
  d10v-*-*)		targ_emul=d10velf ;;
  d30v-*-*ext*)		targ_emul=d30v_e; targ_extra_emuls="d30velf d30v_o" ;;
  d30v-*-*onchip*)	targ_emul=d30v_o; targ_extra_emuls="d30velf d30v_e" ;;

*** /dev/null	Tue Jan  1 05:00:00 1980
--- emulparams/crisaout.sh	Tue Jul 18 20:44:36 2000
***************
*** 0 ****
--- 1,7 ----
+ # This is for embedded products and elinux (no MMU) with a.out.
+ SCRIPT_NAME=crisaout
+ OUTPUT_FORMAT="a.out-cris"
+ TARGET_PAGE_SIZE=2
+ TEXT_START_ADDR=0
+ NONPAGED_TEXT_START_ADDR=0
+ ARCH=cris

*** /dev/null	Tue Jan  1 05:00:00 1980
--- emulparams/criself.sh	Tue Jul 18 20:47:15 2000
***************
*** 0 ****
--- 1,92 ----
+ # This is for embedded products (no MMU) with ELF.
+ MACHINE=
+ SCRIPT_NAME=elf
+ TEMPLATE_NAME=elf32
+ OUTPUT_FORMAT="elf32-cris"
+ ARCH=cris
+ MAXPAGESIZE=32
+ ENTRY=_start
+ EMBEDDED=yes
+ ALIGNMENT=32
+ TEXT_START_ADDR=0
+ 
+ # Put crt0 for flash/eprom etc. in this section.
+ INITIAL_READONLY_SECTIONS='.startup : { *(.startup) }'
+ 
+ # TEXT_START_SYMBOLS doesn't get what we want which is the start of
+ # all read-only sections; there's at least .init and .fini before it.
+ # We have to resort to trickery.
+ EXECUTABLE_SYMBOLS='PROVIDE (__Stext = .);'
+ 
+ # Smuggle an "OTHER_TEXT_END_SYMBOLS" here.
+ OTHER_READONLY_SECTIONS='PROVIDE (__Etext = .);'
+ DATA_START_SYMBOLS='PROVIDE (__Sdata = .);'
+ 
+ # Smuggle an "OTHER_DATA_END_SYMBOLS" here.
+ OTHER_GOT_SECTIONS='PROVIDE (__Edata = .);'
+ 
+ # If .bss does not immediately follow .data but has its own start
+ # 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_BSS_END_SYMBOLS='
+  PROVIDE (__Ebss = .);
+  PROVIDE (__end = .);
+  __Sbss = SIZEOF (.sbss) != 0 ? ADDR (.sbss) : ADDR (.bss);
+  PROVIDE (_bss_start = __Sbss);
+ '
+ 
+ INIT_START='
+  . = ALIGN(2);
+  ___init__start = .;
+  PROVIDE (___do_global_ctors = .);
+  SHORT (0xe1fc); /* push srp */
+  SHORT (0xbe7e);
+ '
+ 
+ INIT_END='
+  SHORT (0x0d3e); /* jump [sp+] */
+  PROVIDE (__init__end = .);
+  PROVIDE (___init__end = .);
+ '
+ 
+ FINI_START='
+  . = ALIGN (2);
+  ___fini__start = .;
+  PROVIDE (___do_global_dtors = .);
+  SHORT (0xe1fc); /* push srp */
+  SHORT (0xbe7e);
+ '
+ 
+ FINI_END='
+  SHORT (0x0d3e); /* jump [sp+] */
+  PROVIDE (__fini__end = .);
+  ___fini__end = .;
+ '
+ 
+ CTOR_START='
+  PROVIDE (___ctors = .);
+  ___elf_ctors_dtors_begin = .;
+ '
+ 
+ CTOR_END='
+  PROVIDE (___ctors_end = .);
+ '
+ 
+ DTOR_START='
+  PROVIDE (___dtors = .);
+ '
+ 
+ CTOR_END='
+  PROVIDE (___dtors_end = .);
+  ___elf_ctors_dtors_end = .;
+ '
+ 
+ 
+ # Smuggle an "OTHER_ALL_END_SYMBOLS" here.
+ # Also add the other symbols provided for rsim/xsim and elinux.
+ OTHER_RELOCATING_SECTIONS='
+ PROVIDE (__Eall = .);
+ PROVIDE (__Endmem = 0x10000000); 
+ PROVIDE (__Stacksize = 0);
+ '

*** /dev/null	Tue Jan  1 05:00:00 1980
--- emulparams/crislinux.sh	Sun Jun 11 10:35:17 2000
***************
*** 0 ****
--- 1,35 ----
+ # This is an approximation of what we want for a real linux system (with MMU and ELF).
+ MACHINE=
+ SCRIPT_NAME=elf
+ OUTPUT_FORMAT="elf32-cris"
+ ARCH=cris
+ TEMPLATE_NAME=elf32
+ ENTRY=_start
+ # Needed?  Perhaps should be page-size alignment.
+ ALIGNMENT=32
+ GENERATE_SHLIB_SCRIPT=yes
+ 
+ # Is this high enough and low enough?
+ TEXT_START_ADDR=0x80000
+ 
+ # Do we need to set this higher?
+ MAXPAGESIZE=8192
+ 
+ # FIXME: GOT, PLT...
+ 
+ # Smuggle an "OTHER_TEXT_END_SYMBOLS" here.
+ OTHER_READONLY_SECTIONS='PROVIDE (__Etext = .);'
+ DATA_START_SYMBOLS='PROVIDE (__Sdata = .);'
+ 
+ # Smuggle an "OTHER_DATA_END_SYMBOLS" here.
+ OTHER_GOT_SECTIONS='PROVIDE (__Edata = .);'
+ OTHER_BSS_SYMBOLS='PROVIDE (__Sbss = .);'
+ OTHER_BSS_END_SYMBOLS='PROVIDE (__Ebss = .);'
+ 
+ # Smuggle an "OTHER_ALL_END_SYMBOLS" here.
+ # Also add the other symbols provided for rsim/xsim and elinux.
+ OTHER_RELOCATING_SECTIONS='
+ PROVIDE (__Eall = .);
+ PROVIDE(__Endmem = 0x10000000); 
+ PROVIDE(__Stacksize = 0);
+ '

*** /dev/null	Tue Jan  1 05:00:00 1980
--- scripttempl/crisaout.sc	Tue Jul 18 20:54:02 2000
***************
*** 0 ****
--- 1,122 ----
+ cat <<EOF
+ OUTPUT_FORMAT("a.out-cris")
+ OUTPUT_ARCH(cris)
+ ENTRY(_start)
+ SECTIONS
+ {
+   .text ${RELOCATING+ ${TEXT_START_ADDR}}:
+   {
+    CREATE_OBJECT_SYMBOLS;
+     ${RELOCATING+ __Stext = .;}
+     ${RELOCATING+*(.startup)}
+     *(.text)
+     ${RELOCATING+*(.text.*)}
+     ${RELOCATING+*(.gnu.linkonce.t*)}
+     ${RELOCATING+*(.rodata)}
+     ${RELOCATING+*(.rodata.*)}
+     ${RELOCATING+*(.gnu.linkonce.r*)}
+ 
+     /* Do not "provide" init-start and fini-start symbols; they might be
+        referred to weakly, so the linker would not override the zero
+        default.
+        FIXME: It's somewhat unexpected to have code emitted by the linker
+        script.  Some other mechanism could probably do better.  */
+     ${RELOCATING+. = ALIGN (2);}
+     ${RELOCATING+ ___init__start = .;}
+     ${RELOCATING+PROVIDE (___do_global_ctors = .);}
+     ${RELOCATING+SHORT (0xe1fc); /* push srp */}
+     ${RELOCATING+SHORT (0xbe7e);}
+     ${RELOCATING+*(.init)}
+     ${RELOCATING+SHORT (0x0d3e); /* jump [sp+] */}
+     ${RELOCATING+PROVIDE (__init__end = .);}
+     ${RELOCATING+PROVIDE (___init__end = .);}
+ 
+     ${RELOCATING+. = ALIGN (2);}
+     ${RELOCATING+ ___fini__start = .;}
+     ${RELOCATING+PROVIDE (___do_global_dtors = .);}
+     ${RELOCATING+SHORT (0xe1fc); /* push srp */}
+     ${RELOCATING+SHORT (0xbe7e);}
+     ${RELOCATING+*(.fini)}
+     ${RELOCATING+SHORT (0x0d3e); /* jump [sp+] */}
+     ${RELOCATING+PROVIDE (__fini__end = .);}
+     ${RELOCATING+ ___fini__end = .;}
+ 
+     /* Putting constructors in constant store is sane as long as
+        there's no need for dynamic fixups.  */
+     /* The constructors and destructors set symbols are unused now that
+        collect2 has its wicked way.  */
+     ${CONSTRUCTING+ ___aout_ctors_dtors_begin = .;}
+     ${CONSTRUCTING+ SORT(CONSTRUCTORS);}
+     ${CONSTRUCTING+ ___aout_ctors_dtors_end = .;}
+ 
+     /* Cater to linking from ELF.  */
+     ${CONSTRUCTING+ PROVIDE(___ctors = .);}
+     ${CONSTRUCTING+ ___elf_ctors_dtors_begin = .;}
+     ${CONSTRUCTING+ KEEP (*crtbegin.o(.ctors))}
+     ${CONSTRUCTING+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))}
+     ${CONSTRUCTING+ KEEP (*(SORT(.ctors.*)))}
+     ${CONSTRUCTING+ KEEP (*(.ctors))}
+     ${CONSTRUCTING+ PROVIDE(___ctors_end = .);}
+ 
+     ${CONSTRUCTING+ PROVIDE(___dtors = .);}
+     ${CONSTRUCTING+ KEEP (*crtbegin.o(.dtors))}
+     ${CONSTRUCTING+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))}
+     ${CONSTRUCTING+ KEEP (*(SORT(.dtors.*)))}
+     ${CONSTRUCTING+ KEEP (*(.dtors))}
+     ${CONSTRUCTING+ PROVIDE(___dtors_end = .);}
+     ${CONSTRUCTING+ ___elf_ctors_dtors_end = .;}
+ 
+     ${RELOCATING+ __Etext = .;}
+ 
+     /* Deprecated, use __Etext.  */
+     ${RELOCATING+ PROVIDE(_etext = .);}
+   }
+ 
+   /* Any dot-relative start-expression (such as "ALIGN(2)", also including
+      the "default" .data alignment expression) will use the initial, raw
+      size of .text and will be incorrect if the alignment used is less
+      than the alignment for .text (which might depend on input and obj
+      format).  FIXME: Seems like a bug in ld.  Seems hard to fix.  Seems
+      unimportant.  */
+   .data :
+   {
+     ${RELOCATING+ __Sdata = .;}
+     *(.data);
+     ${RELOCATING+*(.data.*)}
+     ${RELOCATING+*(.gnu.linkonce.d*)}
+     ${RELOCATING+*(.eh_frame) /* FIXME: Make .text */}
+     ${RELOCATING+*(.gcc_except_table)}
+     ${RELOCATING+ __Edata = .;}
+ 
+     /* Deprecated, use __Edata.  */
+     ${RELOCATING+ PROVIDE(_edata = .);}
+   }
+ 
+   .bss :
+   {
+     /* Deprecated, use __Sbss.  */
+     ${RELOCATING+ PROVIDE(_bss_start = .);}
+ 
+     ${RELOCATING+ __Sbss = .;}
+     *(.bss)
+     ${RELOCATING+*(.bss.*)}
+     *(COMMON)
+     ${RELOCATING+ __Ebss = .;}
+ 
+     /* Deprecated, use __Ebss or __Eall as appropriate.  */
+     ${RELOCATING+ PROVIDE(_end = .);}
+     ${RELOCATING+ PROVIDE(__end = .);}
+   }
+   ${RELOCATING+ __Eall = .;}
+ 
+   /* Unfortunately, stabs are not mappable from ELF to a.out.
+      It can probably be fixed with some amount of work.  */
+   /DISCARD/ : { *(.stab) *(.stab*) *(.debug) *(.debug*) *(.comment) }
+ 
+   /* For the rsim and xsim simulators.  */
+   ${RELOCATING+ PROVIDE(__Endmem = 0x10000000);}
+ 
+   /* For elinux.  */
+   ${RELOCATING+ PROVIDE(__Stacksize = 0);}
+ }
+ EOF

brgds, H-P

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