[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
binutils porting
From: |
Roland McGrath |
Subject: |
binutils porting |
Date: |
Thu, 1 Nov 2001 16:03:59 -0800 |
User-agent: |
SEMI/1.13.7 (Awazu) CLIME/1.13.6 (中 ノ庄) Emacs/20.7 (i386-redhat-linux-gnu) MULE/4.0 (HANANOEN) |
That was pretty painless (of course I'm only assuming it actually works,
but I had no trouble building cross-tools for the ppc-gnu target). It was
so easy that I decided to just go through those three files for all the
-gnu* targets. I just changed all the -linux* and -linux-gnu* patterns to
-gnu* so they will match both linux-gnu and gnu. I think this is the right
approach for binutils: we want GNU/Hurd native tools to support the same
formats that are supported on GNU/Linux. I don't see any downside to this
off hand. All the Linux targets use ELF as the primary format, and there
is no harm in building in the support for obsolete formats once used with
Linux too. A few of the CPUs (but not i?86, powerpc, or mips--the only
ones Hurd has ever supported heretofore) use special linux variants of the
ELF format code instead of the generic ELF format code for that CPU. I
don't know what the details of these are or what they mean. But I tend to
think that whatever the details, we'll always want to use on GNU/Hurd the
same ELF format details for a particular CPU that GNU/Linux is using.
What do you think?
Index: bfd/config.bfd
===================================================================
RCS file: /cvs/src/src/bfd/config.bfd,v
retrieving revision 1.71
diff -b -u -r1.71 config.bfd
--- bfd/config.bfd 2001/10/31 09:50:05 1.71
+++ bfd/config.bfd 2001/11/01 23:52:30
@@ -80,7 +80,7 @@
targ_defvec=ecoffalpha_little_vec
targ_selvecs=bfd_elf64_alpha_vec
;;
- alpha*-*-linux-gnu* | alpha*-*-elf*)
+ alpha*-*-gnu* | alpha*-*-elf*)
targ_defvec=bfd_elf64_alpha_vec
targ_selvecs=ecoffalpha_little_vec
;;
@@ -94,7 +94,7 @@
targ_defvec=bfd_elf64_ia64_aix_little_vec
targ_selvecs="bfd_elf64_ia64_aix_big_vec bfd_efi_app_ia64_vec"
;;
- ia64*-*-freebsd* | ia64*-*-linux-gnu* | ia64*-*-elf*)
+ ia64*-*-freebsd* | ia64*-*-gnu* | ia64*-*-elf*)
targ_defvec=bfd_elf64_ia64_little_vec
targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
;;
@@ -160,11 +160,11 @@
targ_defvec=bfd_elf32_littlearm_vec
targ_selvecs=bfd_elf32_bigarm_vec
;;
- armeb-*-elf | arm*b-*-linux-gnu*)
+ armeb-*-elf | arm*b-*-gnu*)
targ_defvec=bfd_elf32_bigarm_vec
targ_selvecs=bfd_elf32_littlearm_vec
;;
- arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* |
arm*-*-uclinux*)
+ arm-*-elf | arm-*-freebsd* | arm*-*-gnu* | arm*-*-conix* | arm*-*-uclinux*)
targ_defvec=bfd_elf32_littlearm_vec
targ_selvecs=bfd_elf32_bigarm_vec
;;
@@ -282,7 +282,7 @@
;;
#ifdef BFD64
- hppa*64*-*-linux-gnu*)
+ hppa*64*-*-gnu*)
targ_defvec=bfd_elf64_hppa_linux_vec
targ_selvecs=bfd_elf64_hppa_vec
;;
@@ -293,7 +293,7 @@
;;
#endif
- hppa*-*-linux-gnu*)
+ hppa*-*-gnu*)
targ_defvec=bfd_elf32_hppa_linux_vec
targ_selvecs=bfd_elf32_hppa_vec
;;
@@ -385,7 +385,7 @@
targ_selvecs=bfd_elf32_i386_vec
targ_underscore=yes
;;
- i[3456]86-*-linux-gnu*)
+ i[3456]86-*-gnu*)
targ_defvec=bfd_elf32_i386_vec
targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
;;
@@ -394,7 +394,7 @@
targ_defvec=bfd_elf64_x86_64_vec
targ_selvecs="bfd_elf32_i386_vec i386coff_vec bfd_efi_app_ia32_vec"
;;
- x86_64-*-linux-gnu*)
+ x86_64-*-gnu*)
targ_defvec=bfd_elf64_x86_64_vec
targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
;;
@@ -403,9 +403,6 @@
targ_defvec=i386lynx_coff_vec
targ_selvecs=i386lynx_aout_vec
;;
- i[3456]86-*-gnu*)
- targ_defvec=bfd_elf32_i386_vec
- ;;
i[3456]86-*-mach* | i[3456]86-*-osf1mk*)
targ_defvec=i386mach3_vec
targ_cflags=-DSTAT_FOR_EXEC
@@ -546,14 +543,9 @@
targ_selvecs=bfd_elf32_m68k_vec
targ_underscore=yes
;;
- m68*-*-linux-gnu*)
- targ_defvec=bfd_elf32_m68k_vec
- targ_selvecs=m68klinux_vec
- ;;
m68*-*-gnu*)
targ_defvec=bfd_elf32_m68k_vec
- # targ_selvecs=m68kmach3_vec
- # targ_cflags=-DSTAT_FOR_EXEC
+ targ_selvecs=m68klinux_vec
;;
m68*-*-lynxos*)
targ_defvec=m68klynx_coff_vec
@@ -695,19 +687,19 @@
targ_defvec=bfd_elf32_bigmips_vec
targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec
bfd_elf64_littlemips_vec ecoff_big_vec ecoff_little_vec"
;;
- mips64*el-*-linux*)
+ mips64*el-*-gnu*)
targ_defvec=bfd_elf32_tradlittlemips_vec
targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf64_tradlittlemips_vec
bfd_elf64_tradbigmips_vec"
;;
- mips*el-*-linux*)
+ mips*el-*-gnu*)
targ_defvec=bfd_elf32_tradlittlemips_vec
targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf64_tradlittlemips_vec
bfd_elf64_tradbigmips_vec ecoff_little_vec ecoff_big_vec"
;;
- mips64*-*-linux*)
+ mips64*-*-gnu*)
targ_defvec=bfd_elf32_tradbigmips_vec
targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec
bfd_elf64_tradlittlemips_vec"
;;
- mips*-*-linux*)
+ mips*-*-gnu*)
targ_defvec=bfd_elf32_tradbigmips_vec
targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec
bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec"
;;
@@ -766,7 +758,7 @@
targ_defvec=rs6000coff64_vec
targ_selvecs=rs6000coff_vec
;;
- powerpc64-*-elf* | powerpc-*-elf64* | powerpc64-*-linux*)
+ powerpc64-*-elf* | powerpc-*-elf64* | powerpc64-*-gnu*)
targ_defvec=bfd_elf64_powerpc_vec
targ_selvecs="bfd_elf64_powerpcle_vec bfd_elf32_powerpc_vec
bfd_elf32_powerpcle_vec rs6000coff_vec rs6000coff64_vec"
;;
@@ -776,8 +768,8 @@
;;
#endif
powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
- powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
- powerpc-*-chorus* | powerpc-*-vxworks*)
+ powerpc-*-solaris2* | powerpc-*-gnu* | \
+ powerpc-*-rtems* | powerpc-*-chorus* | powerpc-*-vxworks*)
targ_defvec=bfd_elf32_powerpc_vec
targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
@@ -790,8 +782,8 @@
targ_selvecs="nlm32_powerpc_vec rs6000coff_vec"
;;
powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
- powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
- powerpcle-*-rtems*)
+ powerpcle-*-solaris2* | powerpcle-*-gnu* | \
+ powerpcle-*-vxworks* | powerpcle-*-rtems*)
targ_defvec=bfd_elf32_powerpcle_vec
targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
@@ -802,23 +794,23 @@
targ_selvecs="bfd_powerpcle_pei_vec bfd_powerpc_pei_vec
bfd_powerpcle_pe_vec bfd_powerpc_pe_vec"
;;
- s390-*-linux*)
+ s390-*-gnu*)
targ_defvec=bfd_elf32_s390_vec
;;
#ifdef BFD64
- s390x-*-linux*)
+ s390x-*-gnu*)
targ_defvec=bfd_elf64_s390_vec
;;
#endif
- sh-*-linux*)
+ sh-*-gnu*)
targ_defvec=bfd_elf32_shblin_vec
targ_selvecs=bfd_elf32_shlin_vec
;;
- sh*eb-*-linux*)
+ sh*eb-*-gnu*)
targ_defvec=bfd_elf32_shblin_vec
;;
- sh*-*-linux*)
+ sh*-*-gnu*)
targ_defvec=bfd_elf32_shlin_vec
;;
@@ -858,7 +850,7 @@
targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
targ_underscore=yes
;;
- sparc-*-linux-gnu*)
+ sparc-*-gnu*)
targ_defvec=bfd_elf32_sparc_vec
targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
;;
@@ -901,7 +893,7 @@
targ_defvec=sunos_big_vec
targ_underscore=yes
;;
- sparc64-*-linux-gnu*)
+ sparc64-*-gnu*)
targ_defvec=bfd_elf64_sparc_vec
targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
;;
Index: gas/configure.in
===================================================================
RCS file: /cvs/src/src/gas/configure.in,v
retrieving revision 1.82
diff -b -u -r1.82 configure.in
--- gas/configure.in 2001/10/31 09:50:08 1.82
+++ gas/configure.in 2001/11/01 23:52:31
@@ -376,6 +376,7 @@
*) AC_MSG_ERROR(GNU/Linux must be configured big
endian) ;;
esac
;;
+ ppc-*-gnu*) fmt=elf ;;
ppc-*-solaris*) fmt=elf
if test ${this_target} = $target; then
AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
Index: ld/configure.tgt
===================================================================
RCS file: /cvs/src/src/ld/configure.tgt,v
retrieving revision 1.66
diff -b -u -r1.66 configure.tgt
--- ld/configure.tgt 2001/10/31 09:50:09 1.66
+++ ld/configure.tgt 2001/11/01 23:52:31
@@ -54,14 +54,14 @@
tdir_elf32_sparc=`echo ${targ_alias} | sed -e
's/aout//'`
tdir_sun4=sparc-sun-sunos4
;;
-sparc64-*-linux-gnu*) targ_emul=elf64_sparc
+sparc64-*-gnu*) targ_emul=elf64_sparc
targ_extra_emuls="elf32_sparc sparclinux sun4"
targ_extra_libpath=elf32_sparc
tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
tdir_sparclinux=${tdir_elf32_sparc}aout
tdir_sun4=sparc-sun-sunos4
;;
-sparc*-*-linux-gnu*) targ_emul=elf32_sparc
+sparc*-*-gnu*) targ_emul=elf32_sparc
targ_extra_emuls="sparclinux elf64_sparc sun4"
targ_extra_libpath=elf64_sparc
tdir_sparclinux=${targ_alias}aout
@@ -101,7 +101,7 @@
i960-*-elf*) targ_emul=elf32_i960 ;;
ia64-*-elf*) targ_emul=elf64_ia64 ;;
ia64-*-freebsd*) targ_emul=elf64_ia64 ;;
-ia64-*-linux*) targ_emul=elf64_ia64 ;;
+ia64-*-gnu*) targ_emul=elf64_ia64 ;;
ia64-*-aix*) targ_emul=elf64_aix ;;
m32r-*-*) targ_emul=m32relf ;;
m68hc11-*-*|m6811-*-*) targ_emul=m68hc11elf
@@ -113,7 +113,7 @@
m68*-ericsson-ose) targ_emul=sun3 ;;
m68*-apple-aux*) targ_emul=m68kaux ;;
*-tandem-none) targ_emul=st2000 ;;
-i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;;
+i370-*-elf* | i370-*-gnu*) targ_emul=elf32i370 ;;
i[3456]86-*-vsta) targ_emul=vsta ;;
i[3456]86-go32-rtems*) targ_emul=i386go32 ;;
i[3456]86-*-go32) targ_emul=i386go32 ;;
@@ -135,11 +135,11 @@
tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'`
;;
i[3456]86-*-linux*oldld) targ_emul=i386linux; targ_extra_emuls=elf_i386
;;
-i[3456]86-*-linux-gnu*) targ_emul=elf_i386
+i[3456]86-*-gnu*) targ_emul=elf_i386
targ_extra_emuls=i386linux
tdir_i386linux=${targ_alias}aout
;;
-x86_64-*-linux-gnu*) targ_emul=elf_x86_64
+x86_64-*-gnu*) targ_emul=elf_x86_64
targ_extra_emuls="elf_i386 i386linux"
tdir_i386linux=${targ_alias}aout
;;
@@ -202,10 +202,10 @@
arm-*-elf) targ_emul=armelf ;;
arm9e-*-elf) targ_emul=armelf ;;
arm-*-oabi) targ_emul=armelf_oabi ;;
-arm*-*-linux-gnu*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
+arm*-*-gnu*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
arm*-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
arm*-*-conix*) targ_emul=armelf ;;
-thumb-*-linux-gnu* | thumb-*-uclinux*) targ_emul=armelf_linux;
targ_extra_emuls=armelf ;;
+thumb-*-gnu* | thumb-*-uclinux*) targ_emul=armelf_linux;
targ_extra_emuls=armelf ;;
strongarm-*-coff) targ_emul=armcoff ;;
strongarm-*-elf) targ_emul=armelf ;;
thumb-*-coff) targ_emul=armcoff ;;
@@ -228,15 +228,15 @@
targ_emul=h8500
targ_extra_emuls="h8500s h8500b h8500m h8500c"
;;
-sh-*-linux*)
+sh-*-gnu*)
targ_emul=shelf_linux
targ_extra_emuls=shlelf_linux
targ_extra_libpath=shelf_linux
;;
-sh*eb-*-linux*)
+sh*eb-*-gnu*)
targ_emul=shelf_linux
;;
-sh*-*-linux*)
+sh*-*-gnu*)
targ_emul=shlelf_linux
;;
sh-*-elf* | sh-*-rtemself*)
@@ -257,7 +257,7 @@
targ_extra_emuls=m68kelf
tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'`
;;
-m68k-*-linux-gnu*) targ_emul=m68kelf
+m68k-*-gnu*) targ_emul=m68kelf
targ_extra_emuls=m68klinux
tdir_m68klinux=`echo ${targ_alias} | sed -e
's/linux/linuxaout/'`
;;
@@ -268,9 +268,9 @@
m68*-*-psos*) targ_emul=m68kpsos ;;
m68*-*-rtemscoff*) targ_emul=m68kcoff ;;
m68*-*-rtems*) targ_emul=m68kelf ;;
-hppa*64*-*-linux-gnu*) targ_emul=hppa64linux ;;
+hppa*64*-*-gnu*) targ_emul=hppa64linux ;;
hppa*64*-*) targ_emul=elf64hppa ;;
-hppa*-*-linux-gnu*) targ_emul=hppalinux ;;
+hppa*-*-gnu*) targ_emul=hppalinux ;;
hppa*-*-*elf*) targ_emul=hppaelf ;;
hppa*-*-lites*) targ_emul=hppaelf ;;
hppa*-*-rtems*) targ_emul=hppaelf ;;
@@ -301,10 +301,10 @@
mips*-*-rtems*) targ_emul=elf32ebmip ;;
mips*el-*-vxworks*) targ_emul=elf32elmip ;;
mips*-*-vxworks*) targ_emul=elf32ebmip ;;
-mips*el-*-linux-gnu*) targ_emul=elf32ltsmip
+mips*el-*-gnu*) targ_emul=elf32ltsmip
targ_extra_emuls="elf32btsmip elf64ltsmip elf64btsmip"
;;
-mips*-*-linux-gnu*) targ_emul=elf32btsmip
+mips*-*-gnu*) targ_emul=elf32btsmip
targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip"
;;
mips*-*-lnews*) targ_emul=mipslnews ;;
@@ -321,7 +321,7 @@
alpha*-*-linuxecoff*) targ_emul=alpha targ_extra_emuls=elf64alpha
tdir_elf64alpha=`echo ${targ_alias} | sed -e
's/ecoff//'`
;;
-alpha*-*-linux-gnu*) targ_emul=elf64alpha targ_extra_emuls=alpha
+alpha*-*-linux*) targ_emul=elf64alpha targ_extra_emuls=alpha
tdir_alpha=`echo ${targ_alias} | sed -e
's/linux/linuxecoff/'`
;;
alpha*-*-osf*) targ_emul=alpha ;;
@@ -340,7 +340,7 @@
targ_extra_libpath=elf32ppc;
tdir_elf32ppcsim=`echo ${targ_alias} | sed -e
's/ppc/ppcsim/'`
;;
-powerpc*-*-linux*)
+powerpc*-*-gnu* | powerpc-*-gnu*)
case "${targ}" in
*64*) targ_emul=elf64ppc
targ_extra_emuls="elf32ppclinux elf32ppc elf32ppcsim" ;;
@@ -390,8 +390,8 @@
mcore-*-pe) targ_emul=mcorepe ;
targ_extra_ofiles="deffilep.o pe-dll.o" ;;
mcore-*-elf) targ_emul=elf32mcore ;;
-s390x-*-linux*) targ_emul=elf64_s390 ;;
-s390-*-linux*) targ_emul=elf_s390 ;;
+s390x-*-gnu*) targ_emul=elf64_s390 ;;
+s390-*-gnu*) targ_emul=elf_s390 ;;
*-*-ieee*) targ_emul=vanilla ;;
*)
- binutils porting,
Roland McGrath <=