From bdbe5705753d6ea9e6d19405f47a2af91231399b Mon Sep 17 00:00:00 2001 From: Geoffrey Keating Date: Fri, 14 Apr 2000 21:18:23 +0000 Subject: [PATCH] * 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. --- ld/ChangeLog | 13 ++ ld/Makefile.am | 14 +- ld/Makefile.in | 227 +++++--------------------------- ld/configure.tgt | 7 +- ld/emulparams/elf32lppc.sh | 18 ++- ld/emulparams/elf32lppcsim.sh | 20 +++ ld/emulparams/elf32ppc.sh | 14 +- ld/emulparams/elf32ppclinux.sh | 12 +- ld/emulparams/elf32ppcsim.sh | 20 +++ ld/scripttempl/elfppc.sc | 288 ----------------------------------------- 10 files changed, 141 insertions(+), 492 deletions(-) create mode 100644 ld/emulparams/elf32lppcsim.sh create mode 100644 ld/emulparams/elf32ppcsim.sh delete mode 100644 ld/scripttempl/elfppc.sc diff --git a/ld/ChangeLog b/ld/ChangeLog index 6c2939e..d24b36e 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,16 @@ +2000-04-14 Geoff Keating + + * 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 * emultempl/elf32.em (gld${EMULATION_NAME}_place_section): Process diff --git a/ld/Makefile.am b/ld/Makefile.am index 0ed8d22..45c703a 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -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} diff --git a/ld/Makefile.in b/ld/Makefile.in index 692dde5..ab152f0 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -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} diff --git a/ld/configure.tgt b/ld/configure.tgt index 52715f4..0cf81bd 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -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 ;; diff --git a/ld/emulparams/elf32lppc.sh b/ld/emulparams/elf32lppc.sh index edffc61..e8d5270 100644 --- a/ld/emulparams/elf32lppc.sh +++ b/ld/emulparams/elf32lppc.sh @@ -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 index 0000000..8ecf117 --- /dev/null +++ b/ld/emulparams/elf32lppcsim.sh @@ -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) } +' diff --git a/ld/emulparams/elf32ppc.sh b/ld/emulparams/elf32ppc.sh index 3e3880c..049c1d2 100644 --- a/ld/emulparams/elf32ppc.sh +++ b/ld/emulparams/elf32ppc.sh @@ -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) } +' diff --git a/ld/emulparams/elf32ppclinux.sh b/ld/emulparams/elf32ppclinux.sh index 9996c7b..7c458a2 100644 --- a/ld/emulparams/elf32ppclinux.sh +++ b/ld/emulparams/elf32ppclinux.sh @@ -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 index 0000000..28f5840 --- /dev/null +++ b/ld/emulparams/elf32ppcsim.sh @@ -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 index ddab8f8..0000000 --- a/ld/scripttempl/elfppc.sc +++ /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 <