2001-04-05 Steven J. Hill <sjhill@cotw.com>
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 8 Apr 2001 05:13:57 +0000 (05:13 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 8 Apr 2001 05:13:57 +0000 (05:13 +0000)
* Makefile.am (ALL_EMULATIONS): Add eelf32ltsmip.o.
(ALL_64_EMULATIONS): Add eelf64btsmip.o and eelf64ltsmip.o.
(eelf32ltsmip.c): New target.
(eelf64btsmip.c): Likewise.
(eelf64ltsmip.c): Likewise.
* Makefile.in: Regenerated.

* configure.tgt (mips*el-*-linux-gnu): Uses traditional MIPS
target.
(mips*-*-linux-gnu*): Likewise.

* emulparams/elf32ltsmip.sh: New. Traditional little endian
MIPS taget.
* emulparams/elf64btsmip.sh: New. Traditional 64bit big endian
target.
* emulparams/elf64ltsmip.sh: New. Traditional 64bit little
endian target.

ld/ChangeLog
ld/Makefile.am
ld/Makefile.in
ld/configure.tgt
ld/emulparams/elf32ltsmip.sh [new file with mode: 0644]
ld/emulparams/elf64btsmip.sh [new file with mode: 0644]
ld/emulparams/elf64ltsmip.sh [new file with mode: 0644]

index 2cea2f1..5266bf9 100644 (file)
@@ -1,3 +1,23 @@
+2001-04-05  Steven J. Hill  <sjhill@cotw.com>
+
+       * Makefile.am (ALL_EMULATIONS): Add eelf32ltsmip.o.
+       (ALL_64_EMULATIONS): Add eelf64btsmip.o and eelf64ltsmip.o.
+       (eelf32ltsmip.c): New target.
+       (eelf64btsmip.c): Likewise.
+       (eelf64ltsmip.c): Likewise.
+       * Makefile.in: Regenerated.
+
+       * configure.tgt (mips*el-*-linux-gnu): Uses traditional MIPS
+       target.
+       (mips*-*-linux-gnu*): Likewise.
+
+       * emulparams/elf32ltsmip.sh: New. Traditional little endian
+       MIPS taget.
+       * emulparams/elf64btsmip.sh: New. Traditional 64bit big endian 
+       target.
+       * emulparams/elf64ltsmip.sh: New. Traditional 64bit little
+       endian target.
+
 2001-04-05  Hans-Peter Nilsson  <hp@axis.com>
 
        * emulparams/criself.sh (EXECUTABLE_SYMBOLS): Cannot provide
index 2cdbf78..86574c6 100644 (file)
@@ -145,6 +145,7 @@ ALL_EMULATIONS = \
        eelf32bmip.o \
        eelf32bmipn32.o \
        eelf32btsmip.o \
+       eelf32ltsmip.o \
        eelf32ebmip.o \
        eelf32elmip.o \
        eelf32fr30.o \
@@ -256,6 +257,8 @@ ALL_64_EMULATIONS = \
        eelf64_sparc.o \
        eelf64alpha.o \
        eelf64bmip.o \
+       eelf64btsmip.o \
+       eelf64ltsmip.o \
        eelf64hppa.o
 
 ALL_EMUL_EXTRA_OFILES = \
@@ -452,6 +455,9 @@ eelf32bsmip.c: $(srcdir)/emulparams/elf32bsmip.sh \
 eelf32btsmip.c: $(srcdir)/emulparams/elf32btsmip.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32btsmip "$(tdir_elf32btsmip)"
+eelf32ltsmip.c: $(srcdir)/emulparams/elf32ltsmip.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf32ltsmip "$(tdir_elf32ltsmip)"
 eelf32ebmip.c: $(srcdir)/emulparams/elf32ebmip.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32ebmip "$(tdir_elf32ebmip)"
@@ -509,6 +515,12 @@ eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \
 eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf64bmip "$(tdir_elf64bmip)"
+eelf64btsmip.c: $(srcdir)/emulparams/elf64btsmip.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf64btsmip "$(tdir_elf64btsmip)"
+eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf64ltsmip "$(tdir_elf64ltsmip)"
 eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)"
index 11f1f65..58306be 100644 (file)
@@ -183,10 +183,10 @@ 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_linux.o         earmelf_oabi.o  earmnbsd.o      earmpe.o        eavr1200.o      eavr23xx.o      eavr4433.o      eavr44x4.o      eavr85xx.o      eavrmega103.o   eavrmega161.o   eavrmega603.o   ecoff_sparc.o   ecrisaout.o     ecriself.o      ecrislinux.o    ed10velf.o      ed30v_e.o       ed30v_o.o       ed30velf.o      edelta68.o      eebmon29k.o     eelf32_i960.o   eelf32_i860.o   eelf32_sparc.o  eelf32b4300.o   eelf32bmip.o    eelf32bmipn32.o         eelf32btsmip.o  eelf32ebmip.o   eelf32elmip.o   eelf32fr30.o    eelf32i370.o    eelf32l4300.o   eelf32lmip.o    eelf32lppc.o    eelf32lppcsim.o         eelf32mcore.o   eelf32ppc.o     eelf32ppclinux.o        eelf32ppcsim.o  eelf_i386.o     eelf_i386_be.o  eelf_i386_chaos.o       eelf_s390.o     egld960.o       egld960coff.o   eh8300.o        eh8300h.o       eh8300s.o       eh8500.o        eh8500b.o       eh8500c.o       eh8500m.o       eh8500s.o       ehp300bsd.o     ehp3hpux.o      ehppaelf.o      ehppalinux.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       em68hc11elf.o   em68hc11elfb.o  em68hc12elf.o   em68hc12elfb.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         ens32knbsd.o    epc532macha.o   epdp11.o        epjelf.o        epjlelf.o       eppcmacos.o     eppcnw.o        eppcpe.o        eriscix.o       esa29200.o      esh.o   eshelf.o        eshelf_linux.o  eshlelf_linux.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  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_linux.o         earmelf_oabi.o  earmnbsd.o      earmpe.o        eavr1200.o      eavr23xx.o      eavr4433.o      eavr44x4.o      eavr85xx.o      eavrmega103.o   eavrmega161.o   eavrmega603.o   ecoff_sparc.o   ecrisaout.o     ecriself.o      ecrislinux.o    ed10velf.o      ed30v_e.o       ed30v_o.o       ed30velf.o      edelta68.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   eelf32ppc.o     eelf32ppclinux.o        eelf32ppcsim.o  eelf_i386.o     eelf_i386_be.o  eelf_i386_chaos.o       eelf_s390.o     egld960.o       egld960coff.o   eh8300.o        eh8300h.o       eh8300s.o       eh8500.o        eh8500b.o       eh8500c.o       eh8500m.o       eh8500s.o       ehp300bsd.o     ehp3hpux.o      ehppaelf.o      ehppalinux.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       em68hc11elf.o   em68hc11elfb.o  em68hc12elf.o   em68hc12elfb.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         ens32knbsd.o    epc532macha.o   epdp11.o        epjelf.o        epjlelf.o       eppcmacos.o     eppcnw.o        eppcpe.o        eriscix.o       esa29200.o      esh.o   eshelf.o        eshelf_linux.o  eshlelf_linux.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  evsta.o         ew65.o  ez8001.o        ez8002.o
 
 
-ALL_64_EMULATIONS =    eelf64_aix.o    eelf64_ia64.o   eelf_x86_64.o   eelf64_s390.o   eelf64_sparc.o  eelf64alpha.o   eelf64bmip.o    eelf64hppa.o
+ALL_64_EMULATIONS =    eelf64_aix.o    eelf64_ia64.o   eelf_x86_64.o   eelf64_s390.o   eelf64_sparc.o  eelf64alpha.o   eelf64bmip.o    eelf64btsmip.o  eelf64ltsmip.o  eelf64hppa.o
 
 
 ALL_EMUL_EXTRA_OFILES =        deffilep.o      pe-dll.o
@@ -672,7 +672,7 @@ distdir: $(DISTFILES)
        @for file in $(DISTFILES); do \
          if test -f $$file; then d=.; else d=$(srcdir); fi; \
          if test -d $$d/$$file; then \
-           cp -pr $$/$$file $(distdir)/$$file; \
+           cp -pr $$d/$$file $(distdir)/$$file; \
          else \
            test -f $(distdir)/$$file \
            || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
@@ -977,6 +977,9 @@ eelf32bsmip.c: $(srcdir)/emulparams/elf32bsmip.sh \
 eelf32btsmip.c: $(srcdir)/emulparams/elf32btsmip.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32btsmip "$(tdir_elf32btsmip)"
+eelf32ltsmip.c: $(srcdir)/emulparams/elf32ltsmip.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf32ltsmip "$(tdir_elf32ltsmip)"
 eelf32ebmip.c: $(srcdir)/emulparams/elf32ebmip.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf32ebmip "$(tdir_elf32ebmip)"
@@ -1034,6 +1037,12 @@ eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \
 eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf64bmip "$(tdir_elf64bmip)"
+eelf64btsmip.c: $(srcdir)/emulparams/elf64btsmip.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf64btsmip "$(tdir_elf64btsmip)"
+eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf64ltsmip "$(tdir_elf64ltsmip)"
 eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)"
index a38d31f..f96fbd3 100644 (file)
@@ -276,11 +276,11 @@ mips*el-*-rtems*) targ_emul=elf32elmip ;;
 mips*-*-rtems*)                targ_emul=elf32ebmip ;;
 mips*el-*-vxworks*)    targ_emul=elf32elmip ;;
 mips*-*-vxworks*)      targ_emul=elf32ebmip ;;
-mips*el-*-linux-gnu*)  targ_emul=elf32lsmip
-                       targ_extra_emuls="elf32bsmip mipslit mipsbig"
+mips*el-*-linux-gnu*)  targ_emul=elf32ltsmip
+                       targ_extra_emuls="elf32btsmip elf64ltsmip elf64btsmip"
                        ;;
-mips*-*-linux-gnu*)    targ_emul=elf32bsmip
-                       targ_extra_emuls="elf32lsmip mipsbig mipslit"
+mips*-*-linux-gnu*)    targ_emul=elf32btsmip
+                       targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip"
                        ;;
 mips*-*-lnews*)                targ_emul=mipslnews ;;
 mips*-*-sysv4*)         targ_emul=elf32btsmip ;;
diff --git a/ld/emulparams/elf32ltsmip.sh b/ld/emulparams/elf32ltsmip.sh
new file mode 100644 (file)
index 0000000..90d7d64
--- /dev/null
@@ -0,0 +1,31 @@
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf32-tradlittlemips"
+BIG_OUTPUT_FORMAT="elf32-tradbigmips"
+LITTLE_OUTPUT_FORMAT="elf32-tradlittlemips"
+TEXT_START_ADDR=0x0400000
+DATA_ADDR=0x10000000
+MAXPAGESIZE=0x40000
+NONPAGED_TEXT_START_ADDR=0x0400000
+SHLIB_TEXT_START_ADDR=0x0
+TEXT_DYNAMIC=
+INITIAL_READONLY_SECTIONS='.reginfo : { *(.reginfo) }'
+OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)'
+OTHER_GOT_SYMBOLS='
+  _gp = ALIGN(16) + 0x7ff0;
+'
+OTHER_GOT_SECTIONS='
+  .lit8 : { *(.lit8) }
+  .lit4 : { *(.lit4) }
+'
+TEXT_START_SYMBOLS='_ftext = . ;'
+DATA_START_SYMBOLS='_fdata = . ;'
+OTHER_BSS_SYMBOLS='_fbss = .;'
+OTHER_SECTIONS='
+  .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
+  .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
+'
+ARCH=mips
+MACHINE=
+TEMPLATE_NAME=elf32
+GENERATE_SHLIB_SCRIPT=yes
+ENTRY=__start
diff --git a/ld/emulparams/elf64btsmip.sh b/ld/emulparams/elf64btsmip.sh
new file mode 100644 (file)
index 0000000..f3d917c
--- /dev/null
@@ -0,0 +1,44 @@
+# This is an ELF platform.
+SCRIPT_NAME=elf
+
+# Handle both big- and little-ended 64-bit MIPS objects.
+ARCH=mips
+OUTPUT_FORMAT="elf64-tradbigmips"
+BIG_OUTPUT_FORMAT="elf64-tradbigmips"
+LITTLE_OUTPUT_FORMAT="elf64-tradlittlemips"
+
+# Note that the elf32 template is used for 64-bit emulations as well 
+# as 32-bit emulations.
+ELFSIZE=64
+TEMPLATE_NAME=elf32
+GENERATE_SHLIB_SCRIPT=yes
+
+TEXT_START_ADDR=0x10000000
+DATA_ADDR=0x0400000000
+MAXPAGESIZE=0x100000
+NONPAGED_TEXT_START_ADDR=0x10000000
+SHLIB_TEXT_START_ADDR=0x0
+TEXT_DYNAMIC=
+ENTRY=__start
+
+# GOT-related settings.  
+OTHER_GOT_SYMBOLS='
+  _gp = ALIGN(16) + 0x7ff0;
+'
+OTHER_GOT_SECTIONS='
+  .lit8 : { *(.lit8) }
+  .lit4 : { *(.lit4) }
+'
+
+# Magic symbols.
+TEXT_START_SYMBOLS='_ftext = . ;'
+DATA_START_SYMBOLS='_fdata = . ;'
+OTHER_BSS_SYMBOLS='_fbss = .;'
+
+# Magic sections.
+INITIAL_READONLY_SECTIONS='.reginfo : { *(.reginfo) }'
+OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)'
+OTHER_SECTIONS='
+  .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
+  .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
+'
diff --git a/ld/emulparams/elf64ltsmip.sh b/ld/emulparams/elf64ltsmip.sh
new file mode 100644 (file)
index 0000000..ac2dcfc
--- /dev/null
@@ -0,0 +1,44 @@
+# This is an ELF platform.
+SCRIPT_NAME=elf
+
+# Handle both big- and little-ended 64-bit MIPS objects.
+ARCH=mips
+OUTPUT_FORMAT="elf64-tradlittlemips"
+BIG_OUTPUT_FORMAT="elf64-tradbigmips"
+LITTLE_OUTPUT_FORMAT="elf64-tradlittlemips"
+
+# Note that the elf32 template is used for 64-bit emulations as well 
+# as 32-bit emulations.
+ELFSIZE=64
+TEMPLATE_NAME=elf32
+GENERATE_SHLIB_SCRIPT=yes
+
+TEXT_START_ADDR=0x10000000
+DATA_ADDR=0x0400000000
+MAXPAGESIZE=0x100000
+NONPAGED_TEXT_START_ADDR=0x10000000
+SHLIB_TEXT_START_ADDR=0x0
+TEXT_DYNAMIC=
+ENTRY=__start
+
+# GOT-related settings.  
+OTHER_GOT_SYMBOLS='
+  _gp = ALIGN(16) + 0x7ff0;
+'
+OTHER_GOT_SECTIONS='
+  .lit8 : { *(.lit8) }
+  .lit4 : { *(.lit4) }
+'
+
+# Magic symbols.
+TEXT_START_SYMBOLS='_ftext = . ;'
+DATA_START_SYMBOLS='_fdata = . ;'
+OTHER_BSS_SYMBOLS='_fbss = .;'
+
+# Magic sections.
+INITIAL_READONLY_SECTIONS='.reginfo : { *(.reginfo) }'
+OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)'
+OTHER_SECTIONS='
+  .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
+  .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
+'