This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
PATCH: Support powerpc-*-windiss
- From: Mark Mitchell <mark at codesourcery dot com>
- To: binutils at sources dot redhat dot com
- Date: Mon, 29 Apr 2002 11:11:10 -0700
- Subject: PATCH: Support powerpc-*-windiss
- Reply-to: mark at codesourcery dot com
This patch implements support for powerpc-*-windiss. WindISS is Wind
River's instruction-level simulator. (The right way to think about
WindISS is that it is an operating system; it comes with include
files, a C library, and a simulator.)
Ben Elliston has already approved the config.sub change, and has
likely already committed it.
May I commit the changes below?
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
2002-04-29 Mark Mitchell <mark@codesourcery.com>
* config.sub (powerpc-*-windiss): New triplet.
2002-04-29 Mark Mitchell <mark@codesourcery.com>
* config.bfd: Add support for powerpc-*-windiss.
2002-04-29 Mark Mitchell <mark@codesourcery.com>
* configure.in: Add support for powerpc-*-windiss.
2002-04-29 Mark Mitchell <mark@codesourcery.com>
* Makefile.am (ALL_EMULATIONS): Add elf32ppcwindiss.o.
(eelf32ppcwindiss.c): New target.
* configure.tgt: Add support for powerpc-*-windiss.
* eelf32ppcwindiss.sh: New file.
Index: config.sub
===================================================================
RCS file: /cvs/src/src/config.sub,v
retrieving revision 1.31
diff -c -p -r1.31 config.sub
*** config.sub 24 Feb 2002 00:04:00 -0000 1.31
--- config.sub 29 Apr 2002 17:58:24 -0000
***************
*** 3,9 ****
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002 Free Software Foundation, Inc.
! timestamp='2002-02-22'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
--- 3,9 ----
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002 Free Software Foundation, Inc.
! timestamp='2002-04-24'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
*************** case $os in
*** 1090,1096 ****
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
! | -morphos* | -superux* | -rtmk* | -rtmk-nova*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
--- 1090,1096 ----
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
! | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* )
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
*************** case $basic_machine in
*** 1409,1415 ****
-ptx*)
vendor=sequent
;;
! -vxsim* | -vxworks*)
vendor=wrs
;;
-aux*)
--- 1409,1415 ----
-ptx*)
vendor=sequent
;;
! -vxsim* | -vxworks* | -windiss*)
vendor=wrs
;;
-aux*)
Index: bfd/config.bfd
===================================================================
RCS file: /cvs/src/src/bfd/config.bfd,v
retrieving revision 1.87
diff -c -p -r1.87 config.bfd
*** bfd/config.bfd 18 Mar 2002 12:45:37 -0000 1.87
--- bfd/config.bfd 29 Apr 2002 17:58:24 -0000
*************** case "${targ}" in
*** 823,829 ****
#endif
powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
! powerpc-*-chorus* | powerpc-*-vxworks*)
targ_defvec=bfd_elf32_powerpc_vec
targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
--- 823,829 ----
#endif
powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
! powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*)
targ_defvec=bfd_elf32_powerpc_vec
targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
Index: gas/configure.in
===================================================================
RCS file: /cvs/src/src/gas/configure.in,v
retrieving revision 1.98
diff -c -p -r1.98 configure.in
*** gas/configure.in 18 Mar 2002 12:46:09 -0000 1.98
--- gas/configure.in 29 Apr 2002 17:58:28 -0000
*************** changequote([,])dnl
*** 409,414 ****
--- 409,415 ----
fmt=coff em=macos ;;
ppc-*-netware*) fmt=elf em=ppcnw ;;
ppc-*-vxworks*) fmt=elf ;;
+ ppc-*-windiss*) fmt=elf ;;
s390x-*-linux-gnu*) fmt=elf em=linux ;;
s390-*-linux-gnu*) fmt=elf em=linux ;;
Index: ld/Makefile.am
===================================================================
RCS file: /cvs/src/src/ld/Makefile.am,v
retrieving revision 1.91
diff -c -p -r1.91 Makefile.am
*** ld/Makefile.am 4 Apr 2002 14:07:57 -0000 1.91
--- ld/Makefile.am 29 Apr 2002 17:58:32 -0000
*************** ALL_EMULATIONS = \
*** 163,168 ****
--- 163,169 ----
eelf32ppc_fbsd.o \
eelf32ppclinux.o \
eelf32ppcsim.o \
+ eelf32ppcwindiss.o \
eelf32xstormy16.o \
eelf_i386.o \
eelf_i386_be.o \
*************** eelf32lppcsim.c: $(srcdir)/emulparams/el
*** 540,545 ****
--- 541,548 ----
$(srcdir)/emulparams/elf32lppc.sh $(srcdir)/emulparams/elf32ppc.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf32lppcsim "$(tdir_elf32lppcsim)"
+ eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh ${GEN_DEPENDS}
+ ${GENSCRIPTS} elf32ppcwindiss "$(tdir_elf32ppcwindiss)"
eelf32lsmip.c: $(srcdir)/emulparams/elf32lsmip.sh \
$(srcdir)/emulparams/elf32lmip.sh $(srcdir)/emulparams/elf32bmip.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
Index: ld/configure.tgt
===================================================================
RCS file: /cvs/src/src/ld/configure.tgt,v
retrieving revision 1.84
diff -c -p -r1.84 configure.tgt
*** ld/configure.tgt 18 Mar 2002 16:42:42 -0000 1.84
--- ld/configure.tgt 29 Apr 2002 17:58:33 -0000
*************** powerpcle-*-cygwin*) targ_emul=ppcpe
*** 425,430 ****
--- 425,431 ----
powerpc-*-aix5*) targ_emul=aix5ppc ;;
powerpc-*-aix*) targ_emul=aixppc ;;
powerpc-*-beos*) targ_emul=aixppc ;;
+ powerpc-*-windiss*) targ_emul=elf32ppcwindiss ;;
rs6000-*-aix5*) targ_emul=aix5rs6 ;;
rs6000-*-aix*) targ_emul=aixrs6 ;;
tic30-*-*aout*) targ_emul=tic30aout ;;
*** /dev/null Thu Aug 30 13:30:55 2001
--- ld/emulparams/elf32ppcwindiss.sh Fri Apr 26 17:37:18 2002
***************
*** 0 ****
--- 1,23 ----
+ TEMPLATE_NAME=elf32
+ SCRIPT_NAME=elf
+ OUTPUT_FORMAT="elf32-powerpc"
+ ARCH=powerpc
+ MACHINE=
+ EMBEDDED=yes
+ MAXPAGESIZE=0x10000
+
+ # 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 = .;'
+ 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)'