2002-06-18 Dave Brolley <brolley@redhat.com>
authorDave Brolley <brolley@redhat.com>
Tue, 18 Jun 2002 21:17:27 +0000 (21:17 +0000)
committerDave Brolley <brolley@redhat.com>
Tue, 18 Jun 2002 21:17:27 +0000 (21:17 +0000)
From Catherine Moore, Michael Meissner, Jim Blandy:
* emulparams/elf32frv.sh: New file.
* configure.tgt: Support frv-*-*.
* Makefile.am (ALL_EMULATIONS): Add eelf32frv.o.
(eelf32frv.c): New target.

ld/ChangeLog
ld/Makefile.am
ld/Makefile.in
ld/NEWS
ld/configure.tgt
ld/emulparams/elf32frv.sh [new file with mode: 0755]

index 5c193fb..f5fe90c 100644 (file)
@@ -1,3 +1,11 @@
+2002-06-18  Dave Brolley  <brolley@redhat.com>
+
+       From Catherine Moore, Michael Meissner, Jim Blandy:
+       * emulparams/elf32frv.sh: New file.
+       * configure.tgt: Support frv-*-*.
+       * Makefile.am (ALL_EMULATIONS): Add eelf32frv.o.
+       (eelf32frv.c): New target.
+
 2002-06-17  Tom Rix  <trix@redhat.com>
 
        * emultempl/elf32.em: gld*_get_script:  Check for 
index eb6ae20..1cee3b7 100644 (file)
@@ -159,6 +159,7 @@ ALL_EMULATIONS = \
        eelf32ebmip.o \
        eelf32elmip.o \
        eelf32fr30.o \
+       eelf32frv.o \
        eelf32i370.o \
        eelf32l4300.o \
        eelf32lmip.o \
@@ -526,6 +527,9 @@ eelf32vax.c: $(srcdir)/emulparams/elf32vax.sh \
 eelf32fr30.c: $(srcdir)/emulparams/elf32fr30.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32fr30 "$(tdir_fr30)"
+eelf32frv.c: $(srcdir)/emulparams/elf32frv.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf32frv "$(tdir_frv)"
 eelf32mcore.c: $(srcdir)/emulparams/elf32mcore.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32mcore "$(tdir_mcore)"
index 7879c42..407aab0 100644 (file)
@@ -186,7 +186,7 @@ INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) -I$(to
 BFDLIB = ../bfd/libbfd.la
 LIBIBERTY = ../libiberty/libiberty.a
 
-ALL_EMULATIONS =       ea29k.o         eaixppc.o       eaixrs6.o       ealpha.o        earcelf.o       earm_epoc_pe.o  earmaoutb.o     earmaoutl.o     earmcoff.o      earmelf.o       earmelf_fbsd.o  earmelf_linux.o         earmelf_nbsd.o  earmelfb_nbsd.o         earmelf_oabi.o  earmnbsd.o      earmpe.o        eavr1200.o      eavr23xx.o      eavr4433.o      eavr44x4.o      eavr85xx.o      eavrmega103.o   eavrmega161.o   eavrmega603.o   eavr1.o         eavr2.o         eavr3.o         eavr4.o         eavr5.o         ecoff_sparc.o   ecrisaout.o     ecriself.o      ecrislinux.o    ed10velf.o      ed30v_e.o       ed30v_o.o       ed30velf.o      edelta68.o      eelf32_dlx.o    eebmon29k.o     eelf32_i960.o   eelf32_i860.o   eelf32_sparc.o  eelf32b4300.o   eelf32bmip.o    eelf32bmipn32.o         eelf32btsmip.o  eelf32ltsmip.o  eelf32ebmip.o   eelf32elmip.o   eelf32fr30.o    eelf32i370.o    eelf32l4300.o   eelf32lmip.o    eelf32lppc.o    eelf32lppcsim.o         eelf32mcore.o   eelf32openrisc.o        eelf32ppc.o     eelf32ppc_fbsd.o        eelf32ppclinux.o        eelf32ppcsim.o  eelf32ppcwindiss.o      eelf32vax.o     eelf32xstormy16.o       eelf_i386.o     eelf_i386_be.o  eelf_i386_chaos.o       eelf_i386_fbsd.o        eelf_i386_ldso.o        eelf_s390.o     egld960.o       egld960coff.o   eh8300.o        eh8300h.o       eh8300s.o       eh8300elf.o     eh8300helf.o    eh8300self.o    eh8500.o        eh8500b.o       eh8500c.o       eh8500m.o       eh8500s.o       ehp300bsd.o     ehp3hpux.o      ehppaelf.o      ehppalinux.o    ehppanbsd.o     ei386aout.o     ei386beos.o     ei386bsd.o      ei386coff.o     ei386go32.o     ei386linux.o    ei386lynx.o     ei386mach.o     ei386moss.o     ei386msdos.o    ei386nbsd.o     ei386nto.o      ei386nw.o       ei386pe.o       ei386pe_posix.o         elnk960.o       em68hc11elf.o   em68hc11elfb.o  em68hc12elf.o   em68hc12elfb.o  em68k4knbsd.o   em68kaout.o     em68kaux.o      em68kcoff.o     em68kelf.o      em68kelfnbsd.o  em68klinux.o    em68klynx.o     em68knbsd.o     em68kpsos.o     em88kbcs.o      emcorepe.o      emipsbig.o      emipsbsd.o      emipsidt.o      emipsidtl.o     emipslit.o      emipslnews.o    emipspe.o       enews.o         ens32knbsd.o    eor32.o         eor32elf.o      epc532macha.o   epdp11.o        epjelf.o        epjlelf.o       eppcmacos.o     eppcnw.o        eppcpe.o        eriscix.o       esa29200.o      esh.o   eshelf32.o      eshlelf32.o     eshelf32_nbsd.o         eshlelf32_nbsd.o        eshelf.o        eshelf_linux.o  eshlelf_linux.o         eshelf_nbsd.o   eshlelf_nbsd.o  eshl.o  eshlelf.o       eshpe.o         esparcaout.o    esparclinux.o   esparclynx.o    esparcnbsd.o    est2000.o       esun3.o         esun4.o         etic30aout.o    etic30coff.o    etic54xcoff.o   etic80coff.o    evanilla.o      evax.o  evaxnbsd.o      evsta.o         ew65.o  ez8001.o        ez8002.o
+ALL_EMULATIONS =       ea29k.o         eaixppc.o       eaixrs6.o       ealpha.o        earcelf.o       earm_epoc_pe.o  earmaoutb.o     earmaoutl.o     earmcoff.o      earmelf.o       earmelf_fbsd.o  earmelf_linux.o         earmelf_nbsd.o  earmelfb_nbsd.o         earmelf_oabi.o  earmnbsd.o      earmpe.o        eavr1200.o      eavr23xx.o      eavr4433.o      eavr44x4.o      eavr85xx.o      eavrmega103.o   eavrmega161.o   eavrmega603.o   eavr1.o         eavr2.o         eavr3.o         eavr4.o         eavr5.o         ecoff_sparc.o   ecrisaout.o     ecriself.o      ecrislinux.o    ed10velf.o      ed30v_e.o       ed30v_o.o       ed30velf.o      edelta68.o      eelf32_dlx.o    eebmon29k.o     eelf32_i960.o   eelf32_i860.o   eelf32_sparc.o  eelf32b4300.o   eelf32bmip.o    eelf32bmipn32.o         eelf32btsmip.o  eelf32ltsmip.o  eelf32ebmip.o   eelf32elmip.o   eelf32fr30.o    eelf32frv.o     eelf32i370.o    eelf32l4300.o   eelf32lmip.o    eelf32lppc.o    eelf32lppcsim.o         eelf32mcore.o   eelf32openrisc.o        eelf32ppc.o     eelf32ppc_fbsd.o        eelf32ppclinux.o        eelf32ppcsim.o  eelf32ppcwindiss.o      eelf32vax.o     eelf32xstormy16.o       eelf_i386.o     eelf_i386_be.o  eelf_i386_chaos.o       eelf_i386_fbsd.o        eelf_i386_ldso.o        eelf_s390.o     egld960.o       egld960coff.o   eh8300.o        eh8300h.o       eh8300s.o       eh8300elf.o     eh8300helf.o    eh8300self.o    eh8500.o        eh8500b.o       eh8500c.o       eh8500m.o       eh8500s.o       ehp300bsd.o     ehp3hpux.o      ehppaelf.o      ehppalinux.o    ehppanbsd.o     ei386aout.o     ei386beos.o     ei386bsd.o      ei386coff.o     ei386go32.o     ei386linux.o    ei386lynx.o     ei386mach.o     ei386moss.o     ei386msdos.o    ei386nbsd.o     ei386nto.o      ei386nw.o       ei386pe.o       ei386pe_posix.o         elnk960.o       em68hc11elf.o   em68hc11elfb.o  em68hc12elf.o   em68hc12elfb.o  em68k4knbsd.o   em68kaout.o     em68kaux.o      em68kcoff.o     em68kelf.o      em68kelfnbsd.o  em68klinux.o    em68klynx.o     em68knbsd.o     em68kpsos.o     em88kbcs.o      emcorepe.o      emipsbig.o      emipsbsd.o      emipsidt.o      emipsidtl.o     emipslit.o      emipslnews.o    emipspe.o       enews.o         ens32knbsd.o    eor32.o         eor32elf.o      epc532macha.o   epdp11.o        epjelf.o        epjlelf.o       eppcmacos.o     eppcnw.o        eppcpe.o        eriscix.o       esa29200.o      esh.o   eshelf32.o      eshlelf32.o     eshelf32_nbsd.o         eshlelf32_nbsd.o        eshelf.o        eshelf_linux.o  eshlelf_linux.o         eshelf_nbsd.o   eshlelf_nbsd.o  eshl.o  eshlelf.o       eshpe.o         esparcaout.o    esparclinux.o   esparclynx.o    esparcnbsd.o    est2000.o       esun3.o         esun4.o         etic30aout.o    etic30coff.o    etic54xcoff.o   etic80coff.o    evanilla.o      evax.o  evaxnbsd.o      evsta.o         ew65.o  ez8001.o        ez8002.o
 
 
 ALL_64_EMULATIONS =    eelf64_aix.o    eelf64_ia64.o   eelf64_ia64_fbsd.o      eshelf64.o      eshlelf64.o     eshelf64_nbsd.o         eshlelf64_nbsd.o        eelf_x86_64.o   eelf_x86_64_fbsd.o      eelf64_s390.o   eelf64_sparc.o  eelf64_sparc_fbsd.o     eelf64alpha.o   eelf64alpha_fbsd.o      eelf64alpha_nbsd.o      eelf64bmip.o    eelf64btsmip.o  eelf64ltsmip.o  eelf64hppa.o    eelf64mmix.o    emmo.o  eelf64ppc.o     eelf64lppc.o    ehppa64linux.o
@@ -1011,6 +1011,9 @@ eelf32vax.c: $(srcdir)/emulparams/elf32vax.sh \
 eelf32fr30.c: $(srcdir)/emulparams/elf32fr30.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32fr30 "$(tdir_fr30)"
+eelf32frv.c: $(srcdir)/emulparams/elf32frv.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf32frv "$(tdir_frv)"
 eelf32mcore.c: $(srcdir)/emulparams/elf32mcore.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32mcore "$(tdir_mcore)"
diff --git a/ld/NEWS b/ld/NEWS
index f3838d0..f2c1fbb 100644 (file)
--- a/ld/NEWS
+++ b/ld/NEWS
@@ -1,4 +1,7 @@
 -*- text -*-
+Support for the Fujitsu FRV architecture added by Red Hat. Models for FR400 and
+FR500 included.
+
 Changes in version 2.13:
 
 * DEC VAX ELF support, by Matt Thomas.
index 9deb504..c91da0e 100644 (file)
@@ -481,6 +481,7 @@ tic80-*-*)          targ_emul=tic80coff ;;
 v850-*-*)              targ_emul=v850 ;;
 v850e-*-*)             targ_emul=v850 ;;
 v850ea-*-*)            targ_emul=v850 ;;
+frv-*-*)               targ_emul=elf32frv ;;
 w65-*-*)               targ_emul=w65 ;;
 xstormy16-*-*)         targ_emul=elf32xstormy16 ;;
 fr30-*-*)              targ_emul=elf32fr30 ;;
diff --git a/ld/emulparams/elf32frv.sh b/ld/emulparams/elf32frv.sh
new file mode 100755 (executable)
index 0000000..2b04fa8
--- /dev/null
@@ -0,0 +1,20 @@
+MACHINE=
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf32-frv"
+TEXT_START_ADDR=0x10000
+ARCH=frv
+MAXPAGESIZE=256
+ENTRY=_start
+EMBEDDED=yes
+OTHER_EXCLUDE_FILES='*frvend.o'
+OTHER_BSS_END_SYMBOLS='__end = .;'
+DATA_START_SYMBOLS='__data_start = . ;'
+OTHER_RELOCATING_SECTIONS='
+  PROVIDE (_stack = 0x200000);
+  PROVIDE (__stack = 0x200000);'
+OTHER_GOT_SYMBOLS='
+  . = ALIGN(8);  _gp = . + 2048;
+  PROVIDE (gp = _gp);'
+OTHER_READONLY_SECTIONS='
+  .rofixup        : { *(.rofixup) }
+'