[PATCH] Add/update VxWorks targets for ld

Phil Edwards phil@codesourcery.com
Thu Oct 23 22:39:00 GMT 2003
The new targets recently added to GCC also require corresponding changes in
binutils.  This is the patch and changelog for the ld directory.  (I do not
have write access.  Also, while I've regenerated Makefile.in here, whoever
does the commit will need to regen it there.)


2003-10-23  Phil Edwards  <phil@codesourcery.com>

	* Makefile.am (ALL_EMULATIONS): Add elf32mipswindiss.o.
	(eelf32mipswindiss.c): New target.
	* Makefile.in:  Regenerated.
	* emulparams/elf32mipswindiss.sh:  New file.
	* configure.tgt (i[3-7]86-*-vxworks*, arm-*-vxworks, sh-*-vxworks,
	mips*-*-vxworks*):  Use ELF now.
	(mips*-*-windiss):  New stanza, use elf32mipswindiss.


Index: Makefile.am
===================================================================
RCS file: /home/pme/Repositories/srctree/src/ld/Makefile.am,v
retrieving revision 1.143
diff -u -p -c -r1.143 Makefile.am
cvs diff: conflicting specifications of output style
*** Makefile.am	16 Oct 2003 08:46:34 -0000	1.143
--- Makefile.am	23 Oct 2003 22:25:23 -0000
*************** ALL_EMULATIONS = \
*** 177,182 ****
--- 177,183 ----
   	eelf32lppcnto.o \
   	eelf32lppcsim.o \
   	eelf32mcore.o \
+ 	eelf32mipswindiss.o \
   	eelf32openrisc.o \
   	eelf32ppc.o \
   	eelf32ppc_fbsd.o \
*************** eelf32lppcsim.c: $(srcdir)/emulparams/el
*** 715,720 ****
--- 716,724 ----
     $(srcdir)/emultempl/ppc32elf.em \
     $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
   	${GENSCRIPTS} elf32lppcsim "$(tdir_elf32lppcsim)"
+ eelf32mipswindiss.c: $(srcdir)/emulparams/elf32mipswindiss.sh \
+   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ 	${GENSCRIPTS} elf32mipswindiss "$(tdir_elf32mipswindiss)"
   eelf32ppcnto.c: $(srcdir)/emulparams/elf32ppcnto.sh \
     $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emultempl/ppc32elf.em \
     $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
Index: configure.tgt
===================================================================
RCS file: /home/pme/Repositories/srctree/src/ld/configure.tgt,v
retrieving revision 1.138
diff -u -p -c -r1.138 configure.tgt
cvs diff: conflicting specifications of output style
*** configure.tgt	6 Oct 2003 09:12:36 -0000	1.138
--- configure.tgt	23 Oct 2003 22:11:59 -0000
*************** i[3-7]86-*-interix*)	targ_emul=i386pe_po
*** 227,233 ****
    			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
   i[3-7]86-*-beospe*)	targ_emul=i386beos ;;
   i[3-7]86-*-beos*)	targ_emul=elf_i386_be ;;
! i[3-7]86-*-vxworks*)	targ_emul=i386aout ;;
   i[3-7]86-*-chaos)	targ_emul=elf_i386_chaos ;;
   m8*-*-*)		targ_emul=m88kbcs ;;
   a29k-*-udi)		targ_emul=sa29200 ;;
--- 226,232 ----
    			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
   i[3-7]86-*-beospe*)	targ_emul=i386beos ;;
   i[3-7]86-*-beos*)	targ_emul=elf_i386_be ;;
! i[3-7]86-*-vxworks*)	targ_emul=elf_i386 ;;
   i[3-7]86-*-chaos)	targ_emul=elf_i386_chaos ;;
   m8*-*-*)		targ_emul=m88kbcs ;;
   a29k-*-udi)		targ_emul=sa29200 ;;
*************** a29k-*-*)		targ_emul=a29k ;;
*** 237,243 ****
   arm-*-aout | armel-*-aout) targ_emul=armaoutl ;;
   armeb-*-aout)		targ_emul=armaoutb ;;
   arm-*-coff)		targ_emul=armcoff ;;
! arm-*-vxworks)		targ_emul=armcoff ;;
   arm-*-freebsd* | arm-*-kfreebsd*-gnu)
   	       		targ_emul=armelf_fbsd
   			targ_extra_emuls="armelf" ;;
--- 236,242 ----
   arm-*-aout | armel-*-aout) targ_emul=armaoutl ;;
   armeb-*-aout)		targ_emul=armaoutb ;;
   arm-*-coff)		targ_emul=armcoff ;;
! arm-*-vxworks)		targ_emul=armelf ;;
   arm-*-freebsd* | arm-*-kfreebsd*-gnu)
   	       		targ_emul=armelf_fbsd
   			targ_extra_emuls="armelf" ;;
*************** shle*-*-elf* | sh[1234]*le*-*-elf | shle
*** 329,335 ****
   			targ_emul=shlelf
   			targ_extra_emuls="shelf shl sh"
   			;;
! sh-*-elf* | sh[1234]*-*-elf | sh-*-rtemself* | sh-*-kaos*)
   			targ_emul=shelf
   			targ_extra_emuls="shlelf sh shl"
   			;;
--- 328,334 ----
   			targ_emul=shlelf
   			targ_extra_emuls="shelf shl sh"
   			;;
! sh-*-elf* | sh[1234]*-*-elf | sh-*-rtemself* | sh-*-kaos* | sh-*-vxworks)
   			targ_emul=shelf
   			targ_extra_emuls="shlelf sh shl"
   			;;
*************** mips*-*-elf*)		targ_emul=elf32ebmip ;;
*** 421,427 ****
   mips*el-*-rtems*)	targ_emul=elf32elmip ;;
   mips*-*-rtems*)		targ_emul=elf32ebmip ;;
   mips*el-*-vxworks*)	targ_emul=elf32elmip ;;
! mips*-*-vxworks*)	targ_emul=elf32ebmip ;;
   mips64*el-*-linux-gnu*)	targ_emul=elf32ltsmipn32
   			targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip 
elf64btsmip"
   			;;
--- 420,428 ----
   mips*el-*-rtems*)	targ_emul=elf32elmip ;;
   mips*-*-rtems*)		targ_emul=elf32ebmip ;;
   mips*el-*-vxworks*)	targ_emul=elf32elmip ;;
! mips*-*-vxworks*)	targ_emul=elf32ebmip
! 			targ_extra_emuls="elf32elmip" ;;
! mips*-*-windiss)	targ_emul=elf32mipswindiss ;;
   mips64*el-*-linux-gnu*)	targ_emul=elf32ltsmipn32
   			targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip 
elf64btsmip"
   			;;
Index: emulparams/elf32mipswindiss.sh
===================================================================
RCS file: emulparams/elf32mipswindiss.sh
diff -N emulparams/elf32mipswindiss.sh
cvs diff: conflicting specifications of output style
*** /dev/null	1 Jan 1970 00:00:00 -0000
--- emulparams/elf32mipswindiss.sh	23 Oct 2003 22:20:05 -0000
***************
*** 0 ****
--- 1,27 ----
+ TEMPLATE_NAME=elf32
+ SCRIPT_NAME=elf
+ OUTPUT_FORMAT="elf32-bigmips"
+ BIG_OUTPUT_FORMAT="elf32-bigmips"
+ LITTLE_OUTPUT_FORMAT="elf32-littlemips"
+ ARCH=mips
+ MACHINE=
+ EMBEDDED=yes
+ MAXPAGESIZE=0x40000
+
+ # The data below is taken from the windiss.dld linker script that comes with
+ # the Diab linker.
+ TEXT_START_ADDR=0x100000
+ DATA_START_SYMBOLS='__DATA_ROM = .; __DATA_RAM = .;'
+ SDATA_START_SYMBOLS='_SDA_BASE_ = .; _gp = . + 0x7ff0;'
+ SDATA2_START_SYMBOLS='_SDA2_BASE_ = .;'
+ EXECUTABLE_SYMBOLS='__HEAP_START = .; __SP_INIT = 0x800000; __SP_END = 
__SP_INIT - 0x20000; __HEAP_END = __SP_END; __DATA_END = _edata; __BSS_START = 
__bss_start; __BSS_END = _end; __HEAP_START = _end;'
+
+ # The Diab tools use a different init/fini convention.  Initialization code
+ # is place in sections named ".init$NN".  These sections are then concatenated
+ # into the .init section.  It is important that .init$00 be first and .init$99
+ # be last. The other sections should be sorted, but the current linker script
+ # parse does not seem to allow that with the SORT keyword in this context.
+ INIT_START='*(.init$00); *(.init$0[1-9]); *(.init$[1-8][0-9]); *(.init$9[0-8])'
+ INIT_END='*(.init$99)'
+ FINI_START='*(.fini$00); *(.fini$0[1-9]); *(.fini$[1-8][0-9]); *(.fini$9[0-8])'
+ FINI_END='*(.fini$99)'



More information about the Binutils mailing list