PATCH: Enable 64bit emulation if available

H. J. Lu hjl@lucon.org
Fri Feb 9 18:54:00 GMT 2007


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



More information about the Binutils mailing list