[PATCH] Fixes for new kfreebsd-gnu triplet

Robert Millan zeratul2@wanadoo.es
Tue Jul 29 23:35:00 GMT 2003


Hello!

As per Richard's request the GNU/FreeBSD system triplet has been changed
to "kfreebsd*-gnu" in config.guess. I'm attaching a patch that fixes
binutils triplet detections in a few places to match with the new triplet.

Note that there are still some problems with ld for GNU/FreeBSD (I'll
comment on this later), but this patch just turns binutils into using the
new triplet, which works just as well as with the old one.

I don't really mind if you don't regenerate configure and update config.guess
and libtool, since libtool is not fully ported yet anyway. I'll just wait
that you update all these things eventualy.

Patch is attached; separate ChangeLog entries follow.

for ChangeLog:

2003-07-30  Robert Millan  <robertmh@gnu.org>

	* configure.in: Match GNU/FreeBSD with new kfreebsd*-gnu triplet.

for bfd/ChangeLog:

2003-07-30  Robert Millan  <robertmh@gnu.org>

	* configure.in: Match GNU/FreeBSD with new kfreebsd*-gnu triplet.
	* config.bfd: Likewise.

for gas/ChangeLog:

2003-07-30  Robert Millan  <robertmh@gnu.org>

	* configure.in: Match GNU/FreeBSD with new kfreebsd*-gnu triplet.
	* testsuite/gas/alpha/alpha.exp: Likewise.

for ld/ChangeLog:

2003-07-30  Robert Millan  <robertmh@gnu.org>

	* configure.host: Match GNU/FreeBSD with new kfreebsd*-gnu triplet.
	* configure.tgt: Likewise.

-- 
Robert Millan

"[..] but the delight and pride of Aule is in the deed of making, and in the
thing made, and neither in possession nor in his own mastery; wherefore he
gives and hoards not, and is free from care, passing ever on to some new work."

 -- J.R.R.T, Ainulindale (Silmarillion)
-------------- next part --------------
diff -ur binutils.old/bfd/config.bfd binutils/bfd/config.bfd
--- binutils.old/bfd/config.bfd	2003-07-17 16:27:38.000000000 +0200
+++ binutils/bfd/config.bfd	2003-07-29 18:42:53.000000000 +0200
@@ -86,7 +86,7 @@
 
 # START OF targmatch.h
 #ifdef BFD64
-  alpha*-*-freebsd*)
+  alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
     targ_defvec=bfd_elf64_alpha_freebsd_vec
     targ_selvecs=ecoffalpha_little_vec
     # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling.
@@ -117,7 +117,7 @@
   alpha*-*-*)
     targ_defvec=ecoffalpha_little_vec
     ;;
-  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf*)
+  ia64*-*-freebsd* | ia64*-*-kfreebsd*-gnu | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf*)
     targ_defvec=bfd_elf64_ia64_little_vec
     targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
     ;;
@@ -125,7 +125,7 @@
     targ_defvec=bfd_elf32_ia64_hpux_big_vec
     targ_selvecs="bfd_elf64_ia64_hpux_big_vec"
     ;;
-  sparc64-*-freebsd* | sparc64-*-netbsd* | sparc64-*-openbsd*)
+  sparc64-*-freebsd* | sparc64-*-kfreebsd*-gnu | sparc64-*-netbsd* | sparc64-*-openbsd*)
     targ_defvec=bfd_elf64_sparc_vec
     targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
     ;;
@@ -208,7 +208,7 @@
     targ_defvec=bfd_elf32_littlearm_vec
     targ_selvecs=bfd_elf32_bigarm_vec
     ;;
-  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | arm*-*-uclinux*)
+  arm-*-elf | arm-*-freebsd* | arm-*-kfreebsd*-gnu | arm*-*-linux-gnu* | arm*-*-conix* | arm*-*-uclinux*)
     targ_defvec=bfd_elf32_littlearm_vec
     targ_selvecs=bfd_elf32_bigarm_vec
     ;;
@@ -438,7 +438,7 @@
     targ_selvecs=i386bsd_vec
     targ_underscore=yes
     ;;
-  i[3-7]86-*-freebsd*)
+  i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
     targ_defvec=bfd_elf32_i386_freebsd_vec
     targ_selvecs=i386coff_vec
     # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling.
@@ -480,7 +480,7 @@
     targ64_selvecs=bfd_elf64_x86_64_vec
     ;;
 #ifdef BFD64
-  x86_64-*-freebsd*)
+  x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
     targ_defvec=bfd_elf64_x86_64_vec
     targ_selvecs="bfd_elf32_i386_vec i386coff_vec bfd_efi_app_ia32_vec"
     ;;
diff -ur binutils.old/bfd/configure.in binutils/bfd/configure.in
--- binutils.old/bfd/configure.in	2003-07-17 00:48:58.000000000 +0200
+++ binutils/bfd/configure.in	2003-07-29 18:44:50.000000000 +0200
@@ -150,7 +150,7 @@
 TRAD_HEADER=
 if test "${target}" = "${host}"; then
   case "${host}" in
-  alpha*-*-freebsd*)
+  alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
 	COREFILE=''
 	;;
   alpha*-*-linux-gnu*)
@@ -161,7 +161,7 @@
 	COREFILE=netbsd-core.lo
 	;;
   alpha*-*-*)		COREFILE=osf-core.lo ;;
-  arm-*-freebsd*)	COREFILE='' ;;
+  arm-*-freebsd* | arm-*-kfreebsd*-gnu)	COREFILE='' ;;
   arm-*-netbsd*)	COREFILE=netbsd-core.lo ;;
   arm-*-riscix)		COREFILE=trad-core.lo ;;
   hppa*-*-hpux*)	COREFILE=hpux-core.lo ;;
@@ -199,7 +199,7 @@
 	TRAD_HEADER='"hosts/i386bsd.h"'
 	;;
 changequote(,)dnl
-  i[3-7]86-*-freebsd*)
+  i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
 changequote([,])dnl
 	COREFILE=''
 	TRAD_HEADER='"hosts/i386bsd.h"'
@@ -347,7 +347,7 @@
   powerpc-*-aix4*)	COREFILE=rs6000-core.lo ;;
   powerpc-*-aix*)	COREFILE=rs6000-core.lo ;;
   powerpc-*-beos*)	;;
-  powerpc-*-freebsd*)	COREFILE='' ;;
+  powerpc-*-freebsd* | powerpc-*-kfreebsd*-gnu)	COREFILE='' ;;
   powerpc-*-netbsd*)	COREFILE=netbsd-core.lo ;;
   powerpc-*-*bsd*)	COREFILE=netbsd-core.lo ;;
   s390*-*-*)            COREFILE=trad-core.lo ;;
diff -ur binutils.old/configure.in binutils/configure.in
--- binutils.old/configure.in	2003-07-28 05:27:46.000000000 +0200
+++ binutils/configure.in	2003-07-29 18:53:37.000000000 +0200
@@ -374,7 +374,7 @@
     # newlib is not 64 bit ready
     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
     ;;
-  alpha*-*-freebsd*)
+  alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
     ;;
   alpha*-*-*)
@@ -495,7 +495,7 @@
   i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
-  i[[3456789]]86-*-freebsd*)
+  i[[3456789]]86-*-freebsd* | i[[3456789]]86-*-kfreebsd*-gnu)
     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
     ;;
   i[[3456789]]86-*-linux*)
diff -ur binutils.old/gas/configure.in binutils/gas/configure.in
--- binutils.old/gas/configure.in	2003-07-10 06:44:55.000000000 +0200
+++ binutils/gas/configure.in	2003-07-29 18:45:43.000000000 +0200
@@ -278,7 +278,7 @@
       i386-*-freebsd[12].*)		fmt=aout em=386bsd ;;
       i386-*-freebsd[12])		fmt=aout em=386bsd ;;
 changequote([,])dnl
-      i386-*-freebsd*)			fmt=elf em=freebsd ;;
+      i386-*-freebsd* | i386-*-kfreebsd*-gnu)			fmt=elf em=freebsd ;;
       i386-*-sysv*)			fmt=coff ;;
       i386-*-sco3.2v5*coff)		fmt=coff ;;
       i386-*-isc*)			fmt=coff ;;
@@ -497,7 +497,7 @@
       z8k-*-coff | z8k-*-sim)		fmt=coff ;;
 
       *-*-aout | *-*-scout)		fmt=aout ;;
-      *-*-freebsd*)			fmt=elf em=freebsd ;;
+      *-*-freebsd* | *-*-kfreebsd*-gnu)			fmt=elf em=freebsd ;;
       *-*-nindy*)			fmt=bout ;;
       *-*-bsd*)				fmt=aout em=sun3 ;;
       *-*-generic)			fmt=generic ;;
diff -ur binutils.old/gas/testsuite/gas/alpha/alpha.exp binutils/gas/testsuite/gas/alpha/alpha.exp
--- binutils.old/gas/testsuite/gas/alpha/alpha.exp	2003-06-05 05:27:03.000000000 +0200
+++ binutils/gas/testsuite/gas/alpha/alpha.exp	2003-07-29 18:46:33.000000000 +0200
@@ -20,6 +20,7 @@
     set elf [expr [istarget *-*-elf*] \
 		  || [istarget *-*-linux*] \
 		  || [istarget *-*-freebsd*] \
+		  || [istarget *-*-kfreebsd*-gnu] \
 		  || [istarget *-*-netbsd*] ]
 
     if $elf {
diff -ur binutils.old/ld/configure.host binutils/ld/configure.host
--- binutils.old/ld/configure.host	2003-07-10 06:45:16.000000000 +0200
+++ binutils/ld/configure.host	2003-07-29 18:48:04.000000000 +0200
@@ -18,7 +18,7 @@
 
 case "${host}" in
 
-*-*-freebsd*)
+*-*-freebsd* | *-*-kfreebsd*-gnu)
   HOSTING_CRT0='-dynamic-linker `[ -f \`${CC} --print-prog-name=ld-elf.so.1\` ] || echo /usr/libexec/``${CC} --print-prog-name=ld-elf.so.1` `${CC} --print-file-name=crt1.o` `${CC} --print-file-name=crti.o` `${CC} --print-file-name=crtbegin.o`'
   HOSTING_LIBS='-L`dirname \`${CC} --print-file-name=libc.so\`` '"$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} --print-file-name=crtend.o; fi` `${CC} --print-file-name=crtn.o`'
   ;;
@@ -237,7 +237,7 @@
   HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`egrep.*\"\\\`,/lib64/ld-linux-x86-64.so.2,"`
   ;;
 
-*-*-freebsd*)
+*-*-freebsd* | *-*-kfreebsd*-gnu)
   ;;
 
 *-*-linux*)
diff -ur binutils.old/ld/configure.tgt binutils/ld/configure.tgt
--- binutils.old/ld/configure.tgt	2003-07-10 06:45:16.000000000 +0200
+++ binutils/ld/configure.tgt	2003-07-29 18:52:15.000000000 +0200
@@ -48,7 +48,7 @@
 sparc*-*-coff)		targ_emul=coff_sparc ;;
 sparc*-*-elf)		targ_emul=elf32_sparc ;;
 sparc*-*-sysv4*)	targ_emul=elf32_sparc ;;
-sparc64-*-freebsd* | sparcv9-*-freebsd*)
+sparc64-*-freebsd* | sparc64-*-kfreebsd*-gnu | sparcv9-*-freebsd* | sparcv9-*-kfreebsd*-gnu)
 			targ_emul=elf64_sparc_fbsd
 			targ_extra_emuls="elf64_sparc elf32_sparc"
 			targ_extra_libpath=$targ_extra_emuls
@@ -108,7 +108,7 @@
 i960-*-rtems*)		targ_emul=gld960coff ;;
 i960-*-elf*)		targ_emul=elf32_i960 ;;
 ia64-*-elf*)		targ_emul=elf64_ia64 ;;
-ia64-*-freebsd*)	targ_emul=elf64_ia64_fbsd
+ia64-*-freebsd* | ia64-*-kfreebsd*-gnu)	targ_emul=elf64_ia64_fbsd
 			targ_extra_emuls="elf64_ia64" ;;
 ia64-*-netbsd*)		targ_emul=elf64_ia64 ;;
 ia64-*-linux*)		targ_emul=elf64_ia64 ;;
@@ -195,9 +195,9 @@
 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])
 			targ_emul=i386bsd ;;
-i[3-7]86-*-freebsd*)	targ_emul=elf_i386_fbsd
+i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)	targ_emul=elf_i386_fbsd
 			targ_extra_emuls="elf_i386 i386bsd" ;;
-x86_64-*-freebsd*)	targ_emul=elf_x86_64_fbsd
+x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)	targ_emul=elf_x86_64_fbsd
 			targ_extra_emuls="elf_i386_fbsd elf_x86_64 elf_i386"
 			tdir_elf_i386=`echo ${targ_alias} \
 			    | sed -e 's/x86_64/i386/'`
@@ -232,7 +232,7 @@
 armeb-*-aout)		targ_emul=armaoutb ;;
 arm-*-coff)		targ_emul=armcoff ;;
 arm-*-vxworks)		targ_emul=armcoff ;;
-arm-*-freebsd*)		targ_emul=armelf_fbsd
+arm-*-freebsd* | arm-*-kfreebsd*-gnu)		targ_emul=armelf_fbsd
 			targ_extra_emuls="armelf" ;;
 armeb-*-netbsdelf*)	targ_emul=armelfb_nbsd;
 			targ_extra_emuls="armelf_nbsd armelf armnbsd" ;;
@@ -436,7 +436,7 @@
 mn10300-*-*)		targ_emul=mn10300 ;;
 msp430-*-*)             targ_emul=msp430x149
                         targ_extra_emuls="msp430x148 msp430x147 msp430x133 msp430x135 msp430x110 msp430x112 msp430x122 msp430x123 msp430x412 msp430x413 msp430x311 msp430x312 msp430x313 msp430x314 msp430x315 msp430x323 msp430x325 msp430x336 msp430x337 msp430x1101 msp430x1111 msp430x1121 msp430x1331 msp430x1351 msp430x435 msp430x436 msp430x437 msp430x447 msp430x448 msp430x449 msp430x1222 msp430x1232 msp430x169 msp430x168 msp430x167 msp430x155  msp430x156 msp430x157 msp430x1122 msp430x1132" ;;
-alpha*-*-freebsd*)	targ_emul=elf64alpha_fbsd
+alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)	targ_emul=elf64alpha_fbsd
 			targ_extra_emuls="elf64alpha alpha"
 			tdir_alpha=`echo ${targ_alias} | sed -e 's/freebsd/freebsdecoff/'`
 			;;
@@ -461,7 +461,7 @@
 pdp11-*-*)		targ_emul=pdp11 ;;
 pjl*-*-*)	        targ_emul=pjlelf ; targ_extra_emuls="elf_i386" ;;
 pj*-*-*)	        targ_emul=pjelf ;;
-powerpc-*-freebsd*)	targ_emul=elf32ppc_fbsd;
+powerpc-*-freebsd* | powerpc-*-kfreebsd*-gnu)	targ_emul=elf32ppc_fbsd;
 			targ_extra_emuls="elf32ppc elf32ppcsim";
 			targ_extra_libpath=elf32ppc;
 			tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'`
@@ -559,7 +559,7 @@
 NATIVE_LIB_DIRS='/usr/local/lib /lib /usr/lib'
 case "${target}" in
 
-*-*-freebsd*)
+*-*-freebsd* | *-*-kfreebsd*-gnu)
   NATIVE_LIB_DIRS='/lib /usr/lib /usr/local/lib'
   ;;
 
@@ -594,7 +594,7 @@
 *-*-linux*)
   ;;
 
-*-*-freebsd*)
+*-*-freebsd* | *-*-kfreebsd*-gnu)
   ;;
 
 *-*-netbsd*)


More information about the Binutils mailing list