This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
[PATCH] MIPS ld: n32 ABI support
- From: Thiemo Seufer <ica2_ts at csv dot ica dot uni-stuttgart dot de>
- To: binutils at sources dot redhat dot com
- Date: Fri, 19 Jul 2002 23:30:11 +0200
- Subject: [PATCH] MIPS ld: n32 ABI support
Hi All,
this adds support for n32 ABI vectors to ld.
Thiemo
2002-07-19 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
/ld/ChangeLog
* Makefile.am (eelf32btsmipn32.o, eelf32ltsmipn32.o): New emulations
for n32 ABI support.
* Makefile.in: Regenerate.
* configure.tgt (mips64*el-*-linux-gnu*,mips64*-*-linux-gnu*): Add
n32 ABI emulations for these 64 bit targets.
* emulparams/elf32bmipn32.sh: Expand comment.
* emulparams/elf32btsmipn32.sh: New file, for traditional big endian
n32 ABI.
* emulparams/elf32ltsmipn32.sh: Likewise for little endian.
diff -BurpNX /bigdisk/src/gcc-exclude source-orig/ld/Makefile.am source/ld/Makefile.am
--- source-orig/ld/Makefile.am Fri Jul 19 18:12:16 2002
+++ source/ld/Makefile.am Fri Jul 19 18:12:23 2002
@@ -155,7 +155,9 @@ ALL_EMULATIONS = \
eelf32bmip.o \
eelf32bmipn32.o \
eelf32btsmip.o \
+ eelf32btsmipn32.o \
eelf32ltsmip.o \
+ eelf32ltsmipn32.o \
eelf32ebmip.o \
eelf32elmip.o \
eelf32fr30.o \
@@ -562,10 +564,18 @@ eelf32btsmip.c: $(srcdir)/emulparams/elf
$(srcdir)/emulparams/elf32bmip.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf32btsmip "$(tdir_elf32btsmip)"
+eelf32btsmipn32.c: $(srcdir)/emulparams/elf32btsmipn32.sh \
+ $(srcdir)/emulparams/elf32bmip.sh \
+ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} elf32btsmipn32 "$(tdir_elf32btsmipn32)"
eelf32ltsmip.c: $(srcdir)/emulparams/elf32ltsmip.sh \
$(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf32ltsmip "$(tdir_elf32ltsmip)"
+eelf32ltsmipn32.c: $(srcdir)/emulparams/elf32ltsmipn32.sh \
+ $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \
+ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} elf32ltsmipn32 "$(tdir_elf32ltsmipn32)"
eelf32ebmip.c: $(srcdir)/emulparams/elf32ebmip.sh \
$(srcdir)/emulparams/elf32bmip.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
diff -BurpNX /bigdisk/src/gcc-exclude source-orig/ld/configure.tgt source/ld/configure.tgt
--- source-orig/ld/configure.tgt Fri Jul 19 18:12:16 2002
+++ source/ld/configure.tgt Fri Jul 19 18:12:23 2002
@@ -388,6 +388,12 @@ mips*el-*-rtems*) targ_emul=elf32elmip ;
mips*-*-rtems*) targ_emul=elf32ebmip ;;
mips*el-*-vxworks*) targ_emul=elf32elmip ;;
mips*-*-vxworks*) targ_emul=elf32ebmip ;;
+mips64*el-*-linux-gnu*) targ_emul=elf32ltsmipn32
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
+ ;;
+mips64*-*-linux-gnu*) targ_emul=elf32btsmipn32
+ targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
+ ;;
mips*el-*-linux-gnu*) targ_emul=elf32ltsmip
targ_extra_emuls="elf32btsmip elf64ltsmip elf64btsmip"
;;
diff -BurpNX /bigdisk/src/gcc-exclude source-orig/ld/emulparams/elf32bmipn32.sh source/ld/emulparams/elf32bmipn32.sh
--- source-orig/ld/emulparams/elf32bmipn32.sh Sun Nov 25 04:27:54 2001
+++ source/ld/emulparams/elf32bmipn32.sh Fri Jul 12 13:18:58 2002
@@ -1,5 +1,5 @@
# If you change this file, please also look at files which source this one:
-# elf64bmip.sh elf64btsmip.sh
+# elf64bmip.sh elf64btsmip.sh elf32btsmipn32.sh
# This is an ELF platform.
SCRIPT_NAME=elf
diff -BurpNX /bigdisk/src/gcc-exclude source-orig/ld/emulparams/elf32btsmipn32.sh source/ld/emulparams/elf32btsmipn32.sh
--- source-orig/ld/emulparams/elf32btsmipn32.sh Thu Jan 1 01:00:00 1970
+++ source/ld/emulparams/elf32btsmipn32.sh Fri Jul 12 13:18:58 2002
@@ -0,0 +1,17 @@
+# If you change this file, please also look at files which source this one:
+# elf32ltsmipn32.sh
+
+. ${srcdir}/emulparams/elf32bmipn32.sh
+OUTPUT_FORMAT="elf32-ntradbigmips"
+BIG_OUTPUT_FORMAT="elf32-ntradbigmips"
+LITTLE_OUTPUT_FORMAT="elf32-ntradlittlemips"
+
+unset EXECUTABLE_SYMBOLS
+unset WRITABLE_RODATA
+
+# Magic sections.
+OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)'
+OTHER_SECTIONS='
+ .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
+ .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
+'
diff -BurpNX /bigdisk/src/gcc-exclude source-orig/ld/emulparams/elf32ltsmipn32.sh source/ld/emulparams/elf32ltsmipn32.sh
--- source-orig/ld/emulparams/elf32ltsmipn32.sh Thu Jan 1 01:00:00 1970
+++ source/ld/emulparams/elf32ltsmipn32.sh Fri Jul 12 13:18:58 2002
@@ -0,0 +1,4 @@
+. ${srcdir}/emulparams/elf32btsmipn32.sh
+OUTPUT_FORMAT="elf32-ntradlittlemips"
+BIG_OUTPUT_FORMAT="elf32-ntradbigmips"
+LITTLE_OUTPUT_FORMAT="elf32-ntradlittlemips"