* scripttempl/elfppc.sc: Remove.
authorGeoffrey Keating <geoffk@geoffk.org>
Fri, 14 Apr 2000 21:18:23 +0000 (21:18 +0000)
committerGeoffrey Keating <geoffk@geoffk.org>
Fri, 14 Apr 2000 21:18:23 +0000 (21:18 +0000)
* emulparams/elf32ppc.sh: Use elf.sc.
* emulparams/elf32lppc.sh: Use elf.sc.
* emulparams/elf32ppclinux.sh: Use elf.sc.
* emulparams/elf32ppcsim.sh: New file.
* emulparams/elf32lppcsim.sh: New file.
* Makefile.am: Update dependencies.  Add elf32ppcsim ad elf32lppcsim.
(ALL_EMULATIONS): Add elf32ppcsim ad elf32lppcsim.
* Makefile.in: Regenerate.
* configure.tgt (powerpc-*): Add elf32ppcsim and elf32lppcsim.

ld/ChangeLog
ld/Makefile.am
ld/Makefile.in
ld/configure.tgt
ld/emulparams/elf32lppc.sh
ld/emulparams/elf32lppcsim.sh [new file with mode: 0644]
ld/emulparams/elf32ppc.sh
ld/emulparams/elf32ppclinux.sh
ld/emulparams/elf32ppcsim.sh [new file with mode: 0644]
ld/scripttempl/elfppc.sc [deleted file]

index 6c2939e..d24b36e 100644 (file)
@@ -1,3 +1,16 @@
+2000-04-14  Geoff Keating  <geoffk@cygnus.com>
+
+       * scripttempl/elfppc.sc: Remove.
+       * emulparams/elf32ppc.sh: Use elf.sc.
+       * emulparams/elf32lppc.sh: Use elf.sc.
+       * emulparams/elf32ppclinux.sh: Use elf.sc.
+       * emulparams/elf32ppcsim.sh: New file.
+       * emulparams/elf32lppcsim.sh: New file.
+       * Makefile.am: Update dependencies.  Add elf32ppcsim ad elf32lppcsim.
+       (ALL_EMULATIONS): Add elf32ppcsim ad elf32lppcsim.
+       * Makefile.in: Regenerate.
+       * configure.tgt (powerpc-*): Add elf32ppcsim and elf32lppcsim.
+
 2000-04-14  Alan Modra  <alan@linuxcare.com.au>
 
        * emultempl/elf32.em (gld${EMULATION_NAME}_place_section): Process
index 0ed8d22..45c703a 100644 (file)
@@ -140,7 +140,9 @@ ALL_EMULATIONS = \
        eelf32l4300.o \
        eelf32lmip.o \
        eelf32lppc.o \
+       eelf32lppcsim.o \
        eelf32ppc.o \
+       eelf32ppcsim.o \
        eelf32ppclinux.o \
        eelf_i386.o \
        eelf_i386_be.o \
@@ -424,16 +426,22 @@ eelf32lmip.c: $(srcdir)/emulparams/elf32lmip.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32lmip "$(tdir_elf32lmip)"
 eelf32lppc.c: $(srcdir)/emulparams/elf32lppc.sh \
-  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfppc.sc ${GEN_DEPENDS}
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32lppc "$(tdir_elf32lppc)"
+eelf32lppcsim.c: $(srcdir)/emulparams/elf32lppcsim.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf32lppcsim "$(tdir_elf32lppcsim)"
 eelf32lsmip.c: $(srcdir)/emulparams/elf32lsmip.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32lsmip "$(tdir_elf32lsmip)"
 eelf32ppc.c: $(srcdir)/emulparams/elf32ppc.sh \
-  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfppc.sc ${GEN_DEPENDS}
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32ppc "$(tdir_elf32ppc)"
+eelf32ppcsim.c: $(srcdir)/emulparams/elf32ppcsim.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf32ppcsim "$(tdir_elf32ppcsim)"
 eelf32ppclinux.c: $(srcdir)/emulparams/elf32ppclinux.sh \
-  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfppc.sc ${GEN_DEPENDS}
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32ppclinux "$(tdir_elf32ppclinux)"
 eelf32i370.c: $(srcdir)/emulparams/elf32i370.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfi370.sc ${GEN_DEPENDS}
index 692dde5..ab152f0 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.4a from Makefile.am
 
 # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
@@ -46,9 +46,10 @@ AUTOMAKE = @AUTOMAKE@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_FLAG =
 transform = @program_transform_name@
 
 NORMAL_INSTALL = :
@@ -146,49 +147,19 @@ HOSTING_LIBS = @HOSTING_LIBS@
 HOSTING_EMU = -m $(EMUL)
 
 # Setup the testing framework, if you have one
-EXPECT = `if [ -f $$r/../expect/expect ] ; \
-       then echo $$r/../expect/expect ; \
-       else echo expect ; fi`
+EXPECT = `if [ -f $$r/../expect/expect ] ;     then echo $$r/../expect/expect ;        else echo expect ; fi`
 
 
-RUNTEST = `if [ -f $${srcroot}/../dejagnu/runtest ] ; \
-       then echo $${srcroot}/../dejagnu/runtest ; \
-       else echo runtest ; fi`
+RUNTEST = `if [ -f $${srcroot}/../dejagnu/runtest ] ;  then echo $${srcroot}/../dejagnu/runtest ;      else echo runtest ; fi`
 
 
 RUNTESTFLAGS = 
 
-CC_FOR_TARGET = ` \
-  if [ -f $$r/../gcc/xgcc ] ; then \
-    if [ -f $$r/../newlib/Makefile ] ; then \
-      echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \
-    else \
-      echo $$r/../gcc/xgcc -B$$r/../gcc/; \
-    fi; \
-  else \
-    if [ "@host@" = "@target@" ] ; then \
-      echo $(CC); \
-    else \
-      echo gcc | sed '$(transform)'; \
-    fi; \
-  fi`
+CC_FOR_TARGET = `   if [ -f $$r/../gcc/xgcc ] ; then     if [ -f $$r/../newlib/Makefile ] ; then       echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc;     else       echo $$r/../gcc/xgcc -B$$r/../gcc/;     fi;   else     if [ "@host@" = "@target@" ] ; then       echo $(CC);     else       echo gcc | sed '$(transform)';     fi;   fi`
 
 
 CXX = gcc
-CXX_FOR_TARGET = ` \
-  if [ -f $$r/../gcc/xgcc ] ; then \
-    if [ -f $$r/../newlib/Makefile ] ; then \
-      echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \
-    else \
-      echo $$r/../gcc/xgcc -B$$r/../gcc/; \
-    fi; \
-  else \
-    if [ "@host@" = "@target@" ] ; then \
-      echo $(CXX); \
-    else \
-      echo gcc | sed '$(transform)'; \
-    fi; \
-  fi`
+CXX_FOR_TARGET = `   if [ -f $$r/../gcc/xgcc ] ; then     if [ -f $$r/../newlib/Makefile ] ; then       echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc;     else       echo $$r/../gcc/xgcc -B$$r/../gcc/;     fi;   else     if [ "@host@" = "@target@" ] ; then       echo $(CXX);     else       echo gcc | sed '$(transform)';     fi;   fi`
 
 
 noinst_PROGRAMS = ld-new
@@ -201,159 +172,25 @@ 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 \
-       earmelf.o \
-       earmelf_oabi.o \
-       earmelf_linux.o \
-       earmelf_linux26.o \
-       earmaoutb.o \
-       earmaoutl.o \
-       earmcoff.o \
-       earmnbsd.o \
-       earmpe.o \
-       earm_epoc_pe.o \
-       eavr1200.o \
-       eavr23xx.o \
-       eavr44x4.o \
-       eavr4433.o \
-       eavr85xx.o \
-       eavrmega603.o \
-       eavrmega103.o \
-       eavrmega161.o \
-       ecoff_sparc.o \
-       ed10velf.o \
-       ed30velf.o \
-       ed30v_e.o \
-       ed30v_o.o \
-       edelta68.o \
-       eebmon29k.o \
-       eelf32_sparc.o \
-       eelf32_i960.o \
-       eelf32b4300.o \
-       eelf32bmip.o \
-       eelf32ebmip.o \
-       eelf32elmip.o \
-       eelf32bmipn32.o \
-       eelf32i370.o \
-       eelf32l4300.o \
-       eelf32lmip.o \
-       eelf32lppc.o \
-       eelf32ppc.o \
-       eelf32ppclinux.o \
-       eelf_i386.o \
-       eelf_i386_be.o \
-       egld960.o \
-       egld960coff.o \
-       eelf32fr30.o \
-       eelf32mcore.o \
-       eh8300.o \
-       eh8300h.o \
-       eh8300s.o \
-       eh8500.o \
-       eh8500b.o \
-       eh8500c.o \
-       eh8500m.o \
-       eh8500s.o \
-       ehp300bsd.o \
-       ehp3hpux.o \
-       ei386aout.o \
-       ei386beos.o \
-       ei386bsd.o \
-       ei386coff.o \
-       ei386go32.o \
-       ei386linux.o \
-       ei386lynx.o \
-       ei386mach.o \
-       ei386moss.o \
-       ei386msdos.o \
-       ei386nbsd.o \
-       ei386nw.o \
-       ei386pe.o \
-       ei386pe_posix.o \
-       elnk960.o \
-       em68k4knbsd.o \
-       em68kaout.o \
-       em68kaux.o \
-       em68kcoff.o \
-       em68kelf.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 \
-       epjelf.o \
-       epjlelf.o \
-       ens32knbsd.o \
-       epc532macha.o \
-       eppcmacos.o \
-       eppcnw.o \
-       eppcpe.o \
-       eriscix.o \
-       esa29200.o \
-       esh.o \
-       eshelf.o \
-       eshlelf.o \
-       eshl.o \
-       eshpe.o \
-       esparcaout.o \
-       esparclinux.o \
-       esparclynx.o \
-       esparcnbsd.o \
-       est2000.o \
-       esun3.o \
-       esun4.o \
-       etic30aout.o \
-       etic30coff.o \
-       etic80coff.o \
-       evanilla.o \
-       evax.o \
-       evsta.o \
-       ew65.o \
-       ez8001.o \
-       ez8002.o
-
-
-ALL_64_EMULATIONS = \
-       eelf64_sparc.o \
-       eelf64alpha.o \
-       eelf64bmip.o
-
-
-ALL_EMUL_EXTRA_OFILES = \
-       pe-dll.o \
-       deffilep.o
-
-
-CFILES = ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c \
-       ldmain.c ldmisc.c ldver.c ldwrite.c lexsup.c \
-       mri.c ldcref.c pe-dll.c
-
-
-HFILES = ld.h ldctor.h ldemul.h ldexp.h ldfile.h \
-       ldlang.h ldlex.h ldmain.h ldmisc.h ldver.h \
-       ldwrite.h mri.h deffile.h pe-dll.h
+ALL_EMULATIONS =       ea29k.o         eaixppc.o       eaixrs6.o       ealpha.o        earcelf.o       earmelf.o       earmelf_oabi.o  earmelf_linux.o         earmelf_linux26.o       earmaoutb.o     earmaoutl.o     earmcoff.o      earmnbsd.o      earmpe.o        earm_epoc_pe.o  eavr1200.o      eavr23xx.o      eavr44x4.o      eavr4433.o      eavr85xx.o      eavrmega603.o   eavrmega103.o   eavrmega161.o   ecoff_sparc.o   ed10velf.o      ed30velf.o      ed30v_e.o       ed30v_o.o       edelta68.o      eebmon29k.o     eelf32_sparc.o  eelf32_i960.o   eelf32b4300.o   eelf32bmip.o    eelf32ebmip.o   eelf32elmip.o   eelf32bmipn32.o         eelf32i370.o    eelf32l4300.o   eelf32lmip.o    eelf32lppc.o    eelf32lppcsim.o         eelf32ppc.o     eelf32ppcsim.o  eelf32ppclinux.o        eelf_i386.o     eelf_i386_be.o  egld960.o       egld960coff.o   eelf32fr30.o    eelf32mcore.o   eh8300.o        eh8300h.o       eh8300s.o       eh8500.o        eh8500b.o       eh8500c.o       eh8500m.o       eh8500s.o       ehp300bsd.o     ehp3hpux.o      ei386aout.o     ei386beos.o     ei386bsd.o      ei386coff.o     ei386go32.o     ei386linux.o    ei386lynx.o     ei386mach.o     ei386moss.o     ei386msdos.o    ei386nbsd.o     ei386nw.o       ei386pe.o       ei386pe_posix.o         elnk960.o       em68k4knbsd.o   em68kaout.o     em68kaux.o      em68kcoff.o     em68kelf.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         epjelf.o        epjlelf.o       ens32knbsd.o    epc532macha.o   eppcmacos.o     eppcnw.o        eppcpe.o        eriscix.o       esa29200.o      esh.o   eshelf.o        eshlelf.o       eshl.o  eshpe.o         esparcaout.o    esparclinux.o   esparclynx.o    esparcnbsd.o    est2000.o       esun3.o         esun4.o         etic30aout.o    etic30coff.o    etic80coff.o    evanilla.o      evax.o  evsta.o         ew65.o  ez8001.o        ez8002.o
+
+
+ALL_64_EMULATIONS =    eelf64_sparc.o  eelf64alpha.o   eelf64bmip.o
+
+
+ALL_EMUL_EXTRA_OFILES =        pe-dll.o        deffilep.o
+
+
+CFILES = ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c   ldmain.c ldmisc.c ldver.c ldwrite.c lexsup.c    mri.c ldcref.c pe-dll.c
+
+
+HFILES = ld.h ldctor.h ldemul.h ldexp.h ldfile.h       ldlang.h ldlex.h ldmain.h ldmisc.h ldver.h      ldwrite.h mri.h deffile.h pe-dll.h
 
 
 GENERATED_CFILES = ldgram.c ldlex.c deffilep.c
 GENERATED_HFILES = ldgram.h ldemul-list.h deffilep.h
 
-OFILES = ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o \
-       ldwrite.o ldexp.o  ldemul.o ldver.o ldmisc.o \
-       ldfile.o ldcref.o ${EMULATION_OFILES} ${EMUL_EXTRA_OFILES}
+OFILES = ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o    ldwrite.o ldexp.o  ldemul.o ldver.o ldmisc.o    ldfile.o ldcref.o ${EMULATION_OFILES} ${EMUL_EXTRA_OFILES}
 
 
 STAGESTUFF = *.o ldscripts/* e*.c
@@ -369,8 +206,7 @@ POTFILES = $(CFILES) $(HFILES) $(EMULATION_FILES)
 GENSCRIPTS = $(SHELL) $(srcdir)/genscripts.sh ${srcdir} ${libdir} @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@"
 GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed
 
-ld_new_SOURCES = ldgram.y ldlex.l lexsup.c ldlang.c mri.c ldctor.c ldmain.c \
-       ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c
+ld_new_SOURCES = ldgram.y ldlex.l lexsup.c ldlang.c mri.c ldctor.c ldmain.c    ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c
 
 ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(INTLDEPS)
 ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(INTLLIBS)
@@ -380,8 +216,7 @@ TESTBFDLIB = @TESTBFDLIB@
 
 MAINTAINERCLEANFILES = ldver.texi
 
-MOSTLYCLEANFILES = $(STAGESTUFF) ld1$(EXEEXT) ld2$(EXEEXT) ld3$(EXEEXT) \
-       ldemul-list.h crtbegin.o crtend.o ld.log ld.sum
+MOSTLYCLEANFILES = $(STAGESTUFF) ld1$(EXEEXT) ld2$(EXEEXT) ld3$(EXEEXT)        ldemul-list.h crtbegin.o crtend.o ld.log ld.sum
 
 CLEANFILES = dep.sed DEP DEP1 DEP2
 
@@ -428,7 +263,7 @@ ldgram.c ldlex.c
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 SOURCES = $(ld_new_SOURCES)
 OBJECTS = $(ld_new_OBJECTS)
@@ -885,7 +720,7 @@ uninstall: uninstall-recursive
 all-am: Makefile $(PROGRAMS) $(MANS) config.h
 all-redirect: all-recursive-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
 installdirs: installdirs-recursive
 installdirs-am:
        $(mkinstalldirs)  $(DESTDIR)$(mandir)/man1
@@ -1123,16 +958,22 @@ eelf32lmip.c: $(srcdir)/emulparams/elf32lmip.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32lmip "$(tdir_elf32lmip)"
 eelf32lppc.c: $(srcdir)/emulparams/elf32lppc.sh \
-  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfppc.sc ${GEN_DEPENDS}
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32lppc "$(tdir_elf32lppc)"
+eelf32lppcsim.c: $(srcdir)/emulparams/elf32lppcsim.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf32lppcsim "$(tdir_elf32lppcsim)"
 eelf32lsmip.c: $(srcdir)/emulparams/elf32lsmip.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32lsmip "$(tdir_elf32lsmip)"
 eelf32ppc.c: $(srcdir)/emulparams/elf32ppc.sh \
-  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfppc.sc ${GEN_DEPENDS}
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32ppc "$(tdir_elf32ppc)"
+eelf32ppcsim.c: $(srcdir)/emulparams/elf32ppcsim.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf32ppcsim "$(tdir_elf32ppcsim)"
 eelf32ppclinux.c: $(srcdir)/emulparams/elf32ppclinux.sh \
-  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfppc.sc ${GEN_DEPENDS}
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32ppclinux "$(tdir_elf32ppclinux)"
 eelf32i370.c: $(srcdir)/emulparams/elf32i370.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfi370.sc ${GEN_DEPENDS}
index 52715f4..0cf81bd 100644 (file)
@@ -253,16 +253,17 @@ alpha*-*-netbsd*) targ_emul=elf64alpha ;;
 z8k-*-coff)            targ_emul=z8002; targ_extra_emuls=z8001 ;;
 ns32k-pc532-mach* | ns32k-pc532-ux*)   targ_emul=pc532macha ;;
 ns32k-pc532-netbsd* | ns32k-pc532-lites*) targ_emul=ns32knbsd ;;
-powerpc-*-linux-gnu*)  targ_emul=elf32ppclinux; targ_extra_emuls=elf32ppc;
+powerpc-*-linux-gnu*)  targ_emul=elf32ppclinux; 
+                       targ_extra_emuls="elf32ppc elf32ppcsim";
                        targ_extra_libpath=elf32ppc ;;
 pjl*-*-*)              targ_emul=pjlelf ; targ_extra_emuls="elf_i386" ;;
 pj*-*-*)               targ_emul=pjelf ;;
 powerpc-*-elf* | powerpc-*-eabi* | powerpc-*-sysv* \
   | powerpc-*-netbsd* | powerpc-*-vxworks*)
-       targ_emul=elf32ppc ;;
+       targ_emul=elf32ppc targ_extra_emuls="elf32ppclinux elf32ppcsim";;
 powerpcle-*-elf* | powerpcle-*-eabi* | powerpcle-*-solaris* \
   | powerpcle-*-sysv* | powerpcle-*-vxworks*)
-       targ_emul=elf32lppc ;;
+       targ_emul=elf32lppc targ_extra_emuls="elf32ppcsim";;
 powerpcle-*-rtems*)    targ_emul=elf32leppc ;;
 powerpc-*-rtems*)      targ_emul=elf32ppc ;;
 powerpc-*-macos*)      targ_emul=ppcmacos ;;
index edffc61..e8d5270 100644 (file)
@@ -1,8 +1,20 @@
 TEMPLATE_NAME=elf32
+# If you change this, please also look at:
+# elf32ppc.sh elf32ppcsim.sh elf32lppc.sh elf32lppcsim.sh elf32ppclinux.sh
 GENERATE_SHLIB_SCRIPT=yes
-SCRIPT_NAME=elfppc
+SCRIPT_NAME=elf
 OUTPUT_FORMAT="elf32-powerpcle"
-TEXT_START_ADDR=0x40000
-MAXPAGESIZE=0x40000
+TEXT_START_ADDR=0x01800000
+MAXPAGESIZE=0x10000
 ARCH=powerpc
 MACHINE=
+BSS_PLT=
+EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);'
+OTHER_BSS_END_SYMBOLS='__end = .;'
+OTHER_READONLY_SECTIONS='
+  .fixup       : { *(.fixup) }
+'
+OTHER_READWRITE_SECTIONS='
+  .got1                : { *(.got1) }
+  .got2                : { *(.got2) }
+'
diff --git a/ld/emulparams/elf32lppcsim.sh b/ld/emulparams/elf32lppcsim.sh
new file mode 100644 (file)
index 0000000..8ecf117
--- /dev/null
@@ -0,0 +1,20 @@
+TEMPLATE_NAME=elf32
+# If you change this, please also look at:
+# elf32ppc.sh elf32ppcsim.sh elf32lppc.sh elf32lppcsim.sh elf32ppclinux.sh
+GENERATE_SHLIB_SCRIPT=yes
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf32-powerpcle"
+TEXT_START_ADDR=0x10000000
+MAXPAGESIZE=0x10000
+ARCH=powerpc
+MACHINE=
+BSS_PLT=
+EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);'
+OTHER_BSS_END_SYMBOLS='__end = .;'
+OTHER_READONLY_SECTIONS='
+  .fixup       : { *(.fixup) }
+'
+OTHER_READWRITE_SECTIONS='
+  .got1                : { *(.got1) }
+  .got2                : { *(.got2) }
+'
index 3e3880c..049c1d2 100644 (file)
@@ -1,8 +1,20 @@
 TEMPLATE_NAME=elf32
+# If you change this, please also look at:
+# elf32ppc.sh elf32ppcsim.sh elf32lppc.sh elf32lppcsim.sh elf32ppclinux.sh
 GENERATE_SHLIB_SCRIPT=yes
-SCRIPT_NAME=elfppc
+SCRIPT_NAME=elf
 OUTPUT_FORMAT="elf32-powerpc"
 TEXT_START_ADDR=0x01800000
 MAXPAGESIZE=0x10000
 ARCH=powerpc
 MACHINE=
+BSS_PLT=
+EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);'
+OTHER_BSS_END_SYMBOLS='__end = .;'
+OTHER_READONLY_SECTIONS='
+  .fixup       : { *(.fixup) }
+'
+OTHER_READWRITE_SECTIONS='
+  .got1                : { *(.got1) }
+  .got2                : { *(.got2) }
+'
index 9996c7b..7c458a2 100644 (file)
@@ -1,8 +1,18 @@
 TEMPLATE_NAME=elf32
+# If you change this, please also look at:
+# elf32ppc.sh elf32ppcsim.sh elf32lppc.sh elf32lppcsim.sh elf32ppclinux.sh
 GENERATE_SHLIB_SCRIPT=yes
-SCRIPT_NAME=elfppc
+SCRIPT_NAME=elf
 OUTPUT_FORMAT="elf32-powerpc"
 TEXT_START_ADDR=0x10000000
 MAXPAGESIZE=0x10000
 ARCH=powerpc
 MACHINE=
+BSS_PLT=
+OTHER_RELOCATING_SECTIONS='
+  /DISCARD/    : { *(.fixup) }
+'
+OTHER_READWRITE_SECTIONS='
+  .got1                : { *(.got1) }
+  .got2                : { *(.got2) }
+'
diff --git a/ld/emulparams/elf32ppcsim.sh b/ld/emulparams/elf32ppcsim.sh
new file mode 100644 (file)
index 0000000..28f5840
--- /dev/null
@@ -0,0 +1,20 @@
+TEMPLATE_NAME=elf32
+# If you change this, please also look at:
+# elf32ppc.sh elf32ppcsim.sh elf32lppc.sh elf32lppcsim.sh elf32ppclinux.sh
+GENERATE_SHLIB_SCRIPT=yes
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf32-powerpc"
+TEXT_START_ADDR=0x10000000
+MAXPAGESIZE=0x10000
+ARCH=powerpc
+MACHINE=
+BSS_PLT=
+EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);'
+OTHER_BSS_END_SYMBOLS='__end = .;'
+OTHER_READONLY_SECTIONS='
+  .fixup       : { *(.fixup) }
+'
+OTHER_READWRITE_SECTIONS='
+  .got1                : { *(.got1) }
+  .got2                : { *(.got2) }
+'
diff --git a/ld/scripttempl/elfppc.sc b/ld/scripttempl/elfppc.sc
deleted file mode 100644 (file)
index ddab8f8..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-#
-# Unusual variables checked by this code:
-#      NOP - two byte opcode for no-op (defaults to 0)
-#      DATA_ADDR - if end-of-text-plus-one-page isn't right for data start
-#      OTHER_READONLY_SECTIONS - other than .text .init .rodata ...
-#              (e.g., .PARISC.milli)
-#      OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ...
-#              (e.g., .PARISC.global)
-#      OTHER_SECTIONS - at the end
-#      EXECUTABLE_SYMBOLS - symbols that must be defined for an
-#              executable (e.g., _DYNAMIC_LINK)
-#      TEXT_START_SYMBOLS - symbols that appear at the start of the
-#              .text section.
-#      DATA_START_SYMBOLS - symbols that appear at the start of the
-#              .data section.
-#      OTHER_BSS_SYMBOLS - symbols that appear at the start of the
-#              .bss section besides __bss_start.
-#
-# When adding sections, do note that the names of some sections are used
-# when specifying the start address of the next.
-#
-test -z "$ENTRY" && ENTRY=_start
-test -z "${BIG_OUTPUT_FORMAT}" && BIG_OUTPUT_FORMAT=${OUTPUT_FORMAT}
-test -z "${LITTLE_OUTPUT_FORMAT}" && LITTLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
-test "$LD_FLAG" = "N" && DATA_ADDR=.
-SBSS2=".sbss2 ${RELOCATING-0} : { *(.sbss2) }"
-SDATA2=".sdata2 ${RELOCATING-0} : { *(.sdata2) }"
-INTERP=".interp ${RELOCATING-0} : { *(.interp) }"
-PLT=".plt ${RELOCATING-0} : { *(.plt) }"
-CTOR=".ctors ${CONSTRUCTING-0} : 
-  {
-    ${CONSTRUCTING+${CTOR_START}}
-    /* gcc uses crtbegin.o to find the start of
-       the constructors, so we make sure it is
-       first.  Because this is a wildcard, it
-       doesn't matter if the user does not
-       actually link against crtbegin.o; the
-       linker won't look for a file to match a
-       wildcard.  The wildcard also means that it
-       doesn't matter which directory crtbegin.o
-       is in.  */
-
-    KEEP (*crtbegin.o(.ctors))
-
-    /* We don't want to include the .ctor section from
-       from the crtend.o file until after the sorted ctors.
-       The .ctor section from the crtend file contains the
-       end of ctors marker and it must be last */
-
-    KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
-    KEEP (*(SORT(.ctors.*)))
-    KEEP (*(.ctors))
-    ${CONSTRUCTING+${CTOR_END}}
-  }"
-
-DTOR=" .dtors       ${CONSTRUCTING-0} :
-  {
-    ${CONSTRUCTING+${DTOR_START}}
-    KEEP (*crtbegin.o(.dtors))
-    KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
-    KEEP (*(SORT(.dtors.*)))
-    KEEP (*(.dtors))
-    ${CONSTRUCTING+${DTOR_END}}
-  }"
-
-cat <<EOF
-OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
-             "${LITTLE_OUTPUT_FORMAT}")
-OUTPUT_ARCH(${ARCH})
-ENTRY(${ENTRY})
-
-${RELOCATING+${LIB_SEARCH_DIRS}}
-${RELOCATING+/* Do we need any of these for elf?
-   __DYNAMIC = 0; ${STACKZERO+${STACKZERO}} ${SHLIB_PATH+${SHLIB_PATH}}  */}
-${RELOCATING+${EXECUTABLE_SYMBOLS}}
-${RELOCATING- /* For some reason, the Solaris linker makes bad executables
-  if gld -r is used and the intermediate file has sections starting
-  at non-zero addresses.  Could be a Solaris ld bug, could be a GNU ld
-  bug.  But for now assigning the zero vmas works.  */}
-
-${RELOCATING+PROVIDE (__stack = 0);}
-${RELOCATING+PROVIDE (___stack = 0);}
-SECTIONS
-{
-  /* Read-only sections, merged into text segment: */
-  ${CREATE_SHLIB-${RELOCATING+. = ${TEXT_START_ADDR} + SIZEOF_HEADERS;}}
-  ${CREATE_SHLIB+${RELOCATING+. = SIZEOF_HEADERS;}}
-  ${CREATE_SHLIB-${INTERP}}
-  .hash                ${RELOCATING-0} : { *(.hash)            }
-  .dynsym      ${RELOCATING-0} : { *(.dynsym)          }
-  .dynstr      ${RELOCATING-0} : { *(.dynstr)          }
-  .gnu.version ${RELOCATING-0} : { *(.gnu.version)      }
-  .gnu.version_d ${RELOCATING-0} : { *(.gnu.version_d)  }
-  .gnu.version_r ${RELOCATING-0} : { *(.gnu.version_r)  }
-  .rela.text   ${RELOCATING-0} :
-    {
-      *(.rela.text)
-      ${RELOCATING+*(.rela.text.*)}
-      ${RELOCATING+*(.rela.gnu.linkonce.t*)}
-    }
-  .rela.data   ${RELOCATING-0} :
-    {
-      *(.rela.data)
-      ${RELOCATING+*(.rela.data.*)}
-      ${RELOCATING+*(.rela.gnu.linkonce.d*)}
-    }
-  .rela.rodata ${RELOCATING-0} :
-    {
-      *(.rela.rodata)
-      ${RELOCATING+*(.rela.rodata.*)}
-      ${RELOCATING+*(.rela.gnu.linkonce.r*)}
-    }
-  .rela.got    ${RELOCATING-0} : { *(.rela.got)        }
-  .rela.got1   ${RELOCATING-0} : { *(.rela.got1)       }
-  .rela.got2   ${RELOCATING-0} : { *(.rela.got2)       }
-  .rela.ctors  ${RELOCATING-0} : { *(.rela.ctors)      }
-  .rela.dtors  ${RELOCATING-0} : { *(.rela.dtors)      }
-  .rela.init   ${RELOCATING-0} : { *(.rela.init)       }
-  .rela.fini   ${RELOCATING-0} : { *(.rela.fini)       }
-  .rela.bss    ${RELOCATING-0} : { *(.rela.bss)        }
-  .rela.plt    ${RELOCATING-0} : { *(.rela.plt)        }
-  .rela.sdata  ${RELOCATING-0} : { *(.rela.sdata)      }
-  .rela.sbss   ${RELOCATING-0} : { *(.rela.sbss)       }
-  .rela.sdata2 ${RELOCATING-0} : { *(.rela.sdata2)     }
-  .rela.sbss2  ${RELOCATING-0} : { *(.rela.sbss2)      }
-  .text    ${RELOCATING-0} :
-  {
-    ${RELOCATING+${TEXT_START_SYMBOLS}}
-    *(.text)
-    ${RELOCATING+*(.text.*)}
-    /* .gnu.warning sections are handled specially by elf32.em.  */
-    *(.gnu.warning)
-    ${RELOCATING+*(.gnu.linkonce.t*)}
-  } =${NOP-0}
-  .init                ${RELOCATING-0} : { KEEP (*(.init))     } =${NOP-0}
-  .fini                ${RELOCATING-0} : { KEEP (*(.fini))     } =${NOP-0}
-  .rodata  ${RELOCATING-0} :
-  {
-    *(.rodata)
-    ${RELOCATING+*(.rodata.*)}
-    ${RELOCATING+*(.gnu.linkonce.r*)}
-  }
-  .rodata1     ${RELOCATING-0} : { *(.rodata1) }
-  ${RELOCATING+_etext = .;}
-  ${RELOCATING+PROVIDE (etext = .);}
-  ${RELOCATING+PROVIDE (__etext = .);}
-  ${CREATE_SHLIB-${SDATA2}}
-  ${CREATE_SHLIB-${SBSS2}}
-  ${RELOCATING+${OTHER_READONLY_SECTIONS}}
-
-  /* Adjust the address for the data segment.  We want to adjust up to
-     the same address within the page on the next page up.  It would
-     be more correct to do this:
-       ${RELOCATING+. = ${DATA_ADDR-ALIGN(${MAXPAGESIZE}) + (ALIGN(8) & (${MAXPAGESIZE} - 1))};}
-     The current expression does not correctly handle the case of a
-     text segment ending precisely at the end of a page; it causes the
-     data segment to skip a page.  The above expression does not have
-     this problem, but it will currently (2/95) cause BFD to allocate
-     a single segment, combining both text and data, for this case.
-     This will prevent the text segment from being shared among
-     multiple executions of the program; I think that is more
-     important than losing a page of the virtual address space (note
-     that no actual memory is lost; the page which is skipped can not
-     be referenced).  */
-  ${RELOCATING+. = ${DATA_ADDR- ALIGN(8) + ${MAXPAGESIZE}};}
-
-  .data  ${RELOCATING-0} :
-  {
-    ${RELOCATING+${DATA_START_SYMBOLS}}
-    *(.data)
-    ${RELOCATING+*(.data.*)}
-    ${RELOCATING+*(.gnu.linkonce.d*)}
-    ${CONSTRUCTING+CONSTRUCTORS}
-  }
-  .data1 ${RELOCATING-0} : { *(.data1) }
-  ${RELOCATING+${OTHER_READWRITE_SECTIONS}}
-
-  .got1                ${RELOCATING-0} : { *(.got1) }
-  .dynamic     ${RELOCATING-0} : { *(.dynamic) }
-
-  /* Put .ctors and .dtors next to the .got2 section, so that the pointers
-     get relocated with -mrelocatable. Also put in the .fixup pointers.
-     The current compiler no longer needs this, but keep it around for 2.7.2  */
-
-               ${RELOCATING+PROVIDE (_GOT2_START_ = .);}
-               ${RELOCATING+PROVIDE (__GOT2_START_ = .);}
-  .got2                ${RELOCATING-0} :  { *(.got2) }
-
-               ${RELOCATING+PROVIDE (__CTOR_LIST__ = .);}
-               ${RELOCATING+PROVIDE (___CTOR_LIST__ = .);}
-                ${RELOCATING+${CTOR}}
-               ${RELOCATING+PROVIDE (__CTOR_END__ = .);}
-               ${RELOCATING+PROVIDE (___CTOR_END__ = .);}
-
-               ${RELOCATING+PROVIDE (__DTOR_LIST__ = .);}
-               ${RELOCATING+PROVIDE (___DTOR_LIST__ = .);}
-                ${RELOCATING+${DTOR}}
-               ${RELOCATING+PROVIDE (__DTOR_END__ = .);}
-               ${RELOCATING+PROVIDE (___DTOR_END__ = .);}
-
-               ${RELOCATING+PROVIDE (_FIXUP_START_ = .);}
-               ${RELOCATING+PROVIDE (__FIXUP_START_ = .);}
-  .fixup       ${RELOCATING-0} : { *(.fixup) }
-               ${RELOCATING+PROVIDE (_FIXUP_END_ = .);}
-               ${RELOCATING+PROVIDE (__FIXUP_END_ = .);}
-               ${RELOCATING+PROVIDE (_GOT2_END_ = .);}
-               ${RELOCATING+PROVIDE (__GOT2_END_ = .);}
-
-               ${RELOCATING+PROVIDE (_GOT_START_ = .);}
-               ${RELOCATING+PROVIDE (__GOT_START_ = .);}
-  .got         ${RELOCATING-0} : { *(.got) }
-  .got.plt     ${RELOCATING-0} : { *(.got.plt) }
-  ${CREATE_SHLIB+${SDATA2}}
-  ${CREATE_SHLIB+${SBSS2}}
-               ${RELOCATING+PROVIDE (_GOT_END_ = .);}
-               ${RELOCATING+PROVIDE (__GOT_END_ = .);}
-
-  /* We want the small data sections together, so single-instruction offsets
-     can access them all, and initialized data all before uninitialized, so
-     we can shorten the on-disk segment size.  */
-  .sdata       ${RELOCATING-0} : { *(.sdata) }
-  ${RELOCATING+_edata  =  .;}
-  ${RELOCATING+PROVIDE (edata = .);}
-  ${RELOCATING+PROVIDE (__edata = .);}
-  .sbss    ${RELOCATING-0} :
-  {
-    ${RELOCATING+PROVIDE (__sbss_start = .);}
-    ${RELOCATING+PROVIDE (___sbss_start = .);}
-    *(.sbss)
-    *(.scommon)
-    *(.dynsbss)
-    ${RELOCATING+PROVIDE (__sbss_end = .);}
-    ${RELOCATING+PROVIDE (___sbss_end = .);}
-  }
-  ${PLT}
-  .bss     ${RELOCATING-0} :
-  {
-   ${RELOCATING+${OTHER_BSS_SYMBOLS}}
-   ${RELOCATING+PROVIDE (__bss_start = .);}
-   ${RELOCATING+PROVIDE (___bss_start = .);}
-   *(.dynbss)
-   *(.bss)
-   *(COMMON)
-  }
-  ${RELOCATING+_end = . ;}
-  ${RELOCATING+PROVIDE (end = .);}
-  ${RELOCATING+PROVIDE (__end = .);}
-
-  /* These are needed for ELF backends which have not yet been
-     converted to the new style linker.  */
-  .stab 0 : { *(.stab) }
-  .stabstr 0 : { *(.stabstr) }
-
-  /* DWARF debug sections.
-     Symbols in the DWARF debugging sections are relative to the beginning
-     of the section so we begin them at 0.  */
-
-  /* DWARF 1 */
-  .debug          0 : { *(.debug) }
-  .line           0 : { *(.line) }
-
-  /* GNU DWARF 1 extensions */
-  .debug_srcinfo  0 : { *(.debug_srcinfo) }
-  .debug_sfnames  0 : { *(.debug_sfnames) }
-
-  /* DWARF 1.1 and DWARF 2 */
-  .debug_aranges  0 : { *(.debug_aranges) }
-  .debug_pubnames 0 : { *(.debug_pubnames) }
-
-  /* DWARF 2 */
-  .debug_info     0 : { *(.debug_info) }
-  .debug_abbrev   0 : { *(.debug_abbrev) }
-  .debug_line     0 : { *(.debug_line) }
-  .debug_frame    0 : { *(.debug_frame) }
-  .debug_str      0 : { *(.debug_str) }
-  .debug_loc      0 : { *(.debug_loc) }
-  .debug_macinfo  0 : { *(.debug_macinfo) }
-
-  /* SGI/MIPS DWARF 2 extensions */
-  .debug_weaknames 0 : { *(.debug_weaknames) }
-  .debug_funcnames 0 : { *(.debug_funcnames) }
-  .debug_typenames 0 : { *(.debug_typenames) }
-  .debug_varnames  0 : { *(.debug_varnames) }
-
-  /* These must appear regardless of ${RELOCATING}.  */
-  ${OTHER_SECTIONS}
-}
-EOF