This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: PATCH: Enable 64bit emulation if available
On Sat, Feb 10, 2007 at 04:19:11AM +1030, Alan Modra wrote:
> On Fri, Feb 09, 2007 at 09:29:39AM -0800, H. J. Lu wrote:
> > --- ld/configure.tgt.wrap 2007-01-08 09:28:56.000000000 -0800
> > +++ ld/configure.tgt 2007-02-04 16:46:07.000000000 -0800
> > @@ -167,10 +167,8 @@ i[3-7]86-*-linux*aout*) targ_emul=i386li
> > i[3-7]86-*-linux*oldld) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
> > i[3-7]86-*-linux-*) targ_emul=elf_i386
> > targ_extra_emuls=i386linux
> > - if test x${want64} = xtrue; then
> > - targ_extra_emuls="$targ_extra_emuls elf_x86_64"
> > - targ_extra_libpath=elf_x86_64
> > - fi
> > + targ64_extra_emuls="$targ_extra_emuls elf_x86_64"
> > + targ64_extra_libpath=elf_x86_64
>
> Please don't add targ_extra_emuls to targ64_extra_emuls here and other
> places in this file. You add them in configure.in. I know this
> doesn't matter, but it's messy. Please also explicitly initialise
> target64_extra_{emuls,libpath} to empty at the start of configure.tgt
> and add a comment for them in the block describing shell variables.
> OK with those changes.
>
This is the patch I am checking in.
H.J.
---
2007-02-09 H.J. Lu <hongjiu.lu@intel.com>
* configure.in (targ_extra_emuls): Add $targ64_extra_emuls if
want64 is true.
(targ_extra_libpath): Add $targ64_extra_libpath if want64 is
true
* configure: Regenerated.
* configure.tgt
(i[3-7]86-*-linux-*): Set targ64_extra_emuls
and targ64_extra_libpath.
(powerpc*-*-linux*): Likewise.
(s390-*-linux*): Likewise.
--- ld/configure.64 2006-12-11 09:23:06.000000000 -0800
+++ ld/configure 2007-02-09 09:07:34.000000000 -0800
@@ -7453,6 +7453,11 @@ do
. ${srcdir}/../bfd/config.bfd
fi
+ if test x${want64} = xtrue; then
+ targ_extra_emuls="$targ_extra_emuls $targ64_extra_emuls"
+ targ_extra_libpath="$targ_extra_libpath $targ64_extra_libpath"
+ fi
+
for i in $targ_emul $targ_extra_emuls $targ_extra_libpath; do
case " $all_emuls " in
*" e${i}.o "*) ;;
--- ld/configure.in.64 2006-12-11 09:23:06.000000000 -0800
+++ ld/configure.in 2007-02-09 09:07:34.000000000 -0800
@@ -175,6 +175,11 @@ do
. ${srcdir}/../bfd/config.bfd
fi
+ if test x${want64} = xtrue; then
+ targ_extra_emuls="$targ_extra_emuls $targ64_extra_emuls"
+ targ_extra_libpath="$targ_extra_libpath $targ64_extra_libpath"
+ fi
+
for i in $targ_emul $targ_extra_emuls $targ_extra_libpath; do
case " $all_emuls " in
*" e${i}.o "*) ;;
--- ld/configure.tgt.64 2007-02-08 09:31:41.000000000 -0800
+++ ld/configure.tgt 2007-02-09 10:09:08.000000000 -0800
@@ -9,11 +9,18 @@
# targ_extra_emuls additional linker emulations to provide
# targ_extra_libpath additional linker emulations using LIB_PATH
# targ_extra_ofiles additional objects needed by the emulation
+# targ64_extra_emuls additional linker emulations to provide if
+# --enable-64-bit-bfd is given or if host is 64 bit.
+# targ64_extra_libpath additional linker emulations using LIB_PATH if
+# --enable-64-bit-bfd is given or if host is 64 bit.
# NATIVE_LIB_DIRS library directories to search on this host
# (if we are a native or sysrooted linker)
targ_extra_emuls=
+targ_extra_libpath=
targ_extra_ofiles=
+targ64_extra_emuls=
+targ64_extra_libpath=
# Please try to keep this table in alphabetic order - it makes it
# much easier to lookup a specific archictecture. Naturally any
@@ -171,10 +178,8 @@ i[3-7]86-*-linux*aout*) targ_emul=i386li
i[3-7]86-*-linux*oldld) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
i[3-7]86-*-linux-*) targ_emul=elf_i386
targ_extra_emuls=i386linux
- if test x${want64} = xtrue; then
- targ_extra_emuls="$targ_extra_emuls elf_x86_64"
- targ_extra_libpath=elf_x86_64
- fi
+ targ64_extra_emuls=elf_x86_64
+ targ64_extra_libpath=elf_x86_64
tdir_i386linux=${targ_alias}aout ;;
x86_64-*-linux-*) targ_emul=elf_x86_64
targ_extra_emuls="elf_i386 i386linux"
@@ -416,10 +421,9 @@ powerpc*-*-linux*) case "${targ}" in
*) targ_emul=elf32ppclinux
targ_extra_emuls="elf32ppc elf32ppcsim"
targ_extra_libpath=elf32ppc
- if test "${want64}" = "true"; then
- targ_extra_emuls="$targ_extra_emuls elf64ppc"
- targ_extra_libpath="$targ_extra_libpath elf64ppc"
- fi ;;
+ targ64_extra_emuls=elf64ppc
+ targ64_extra_libpath=elf64ppc
+ ;;
esac ;;
powerpc*le-*-elf* | powerpc*le-*-eabi* | powerpc*le-*-solaris* \
| powerpc*le-*-sysv* | powerpc*le-*-vxworks*)
@@ -470,11 +474,9 @@ s390x-*-linux*) targ_emul=elf64_
s390x-*-tpf*) targ_emul=elf64_s390
tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'` ;;
s390-*-linux*) targ_emul=elf_s390
- if test "${want64}" = "true"; then
- targ_extra_emuls=elf64_s390
- targ_extra_libpath=$targ_extra_emuls
- tdir_elf64_s390=`echo ${targ_alias} | sed -e 's/s390/s390x/'`
- fi
+ targ64_extra_emuls=elf64_s390
+ targ64_extra_libpath=elf64_s390
+ tdir_elf64_s390=`echo ${targ_alias} | sed -e 's/s390/s390x/'`
;;
score-*-elf) targ_emul=scoreelf ;;
sh-*-linux*) targ_emul=shlelf_linux