This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
PATCH: Enable x32 for x86_64-*-elf*
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: binutils at sourceware dot org
- Date: Wed, 24 Apr 2013 11:55:56 -0700
- Subject: PATCH: Enable x32 for x86_64-*-elf*
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
Hi,
I am checking in this patch to enable x32 for x86_64-*-elf* for embedded
target. I disabled rex tests since it uses '/' as prefix separator
which is `\' for x86_64-*-elf*.
H.J.
---
bfd/
2013-04-24 H.J. Lu <hongjiu.lu@intel.com>
* config.bfd (targ_selvecs): Add bfd_elf32_x86_64_vec for
x86_64-*-elf*.
gas/testsuite/
2013-04-24 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/rex.d: Skip x86_64-*-elf*.
* gas/i386/ilp32/rex.d: Likewise.
ld/
2013-04-24 H.J. Lu <hongjiu.lu@intel.com>
* configure.tgt (targ_extra_emuls): Adds elf32_x86_64 for
x86_64-*-elf*.
(targ_extra_libpath): Likewise.
(tdir_elf_i386): Replace x86_64 with i386 for x86_64-*-elf*.
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 10820e2..aef60c7 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -644,7 +644,7 @@ case "${targ}" in
;;
x86_64-*-elf*)
targ_defvec=bfd_elf64_x86_64_vec
- targ_selvecs="bfd_elf32_i386_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec i386coff_vec"
+ targ_selvecs="bfd_elf32_i386_vec bfd_elf32_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec"
want64=true
;;
x86_64-*-dragonfly*)
diff --git a/gas/testsuite/gas/i386/ilp32/rex.d b/gas/testsuite/gas/i386/ilp32/rex.d
index 7c704c9..36241c1 100644
--- a/gas/testsuite/gas/i386/ilp32/rex.d
+++ b/gas/testsuite/gas/i386/ilp32/rex.d
@@ -1,6 +1,7 @@
#source: ../rex.s
#objdump: -dw
#name: x86-64 (ILP32) manual rex prefix use
+#not-target: x86_64-*-elf*
.*: +file format .*
diff --git a/gas/testsuite/gas/i386/rex.d b/gas/testsuite/gas/i386/rex.d
index bf783c6..3c52e16 100644
--- a/gas/testsuite/gas/i386/rex.d
+++ b/gas/testsuite/gas/i386/rex.d
@@ -1,5 +1,6 @@
#objdump: -dw
#name: x86-64 manual rex prefix use
+#not-target: x86_64-*-elf*
.*: +file format .*
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 3b06dd3..cd840e9 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -278,7 +278,9 @@ x86_64-*-netbsd*) targ_emul=elf_x86_64
i[3-7]86-*-netware) targ_emul=i386nw ;;
i[3-7]86-*-elf*) targ_emul=elf_i386 ;;
x86_64-*-elf*) targ_emul=elf_x86_64
- targ_extra_emuls="elf_i386 elf_l1om elf_k1om"
+ targ_extra_emuls="elf_i386 elf32_x86_64 elf_l1om elf_k1om"
+ targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om"
+ tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
;;
i[3-7]86-*-kaos*) targ_emul=elf_i386 ;;
i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | i[3-7]86-*-freebsd[12])