targ_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
case "${targ_cpu}" in
+alpha*) targ_archs=bfd_alpha_arch ;;
arm*) targ_archs=bfd_arm_arch ;;
+c30*) targ_archs=bfd_tic30_arch ;;
+thumb*) targ_archs=bfd_arm_arch ;;
hppa*) targ_archs=bfd_hppa_arch ;;
i[3456]86) targ_archs=bfd_i386_arch ;;
m68*) targ_archs=bfd_m68k_arch ;;
mips*) targ_archs=bfd_mips_arch ;;
powerpc*) targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
rs6000) targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
-sparc*) targ_archs=bfd_sparc_arch ;;
+sparc*) targ_archs=bfd_sparc_arch ;;
+v850*) targ_archs=bfd_v850_arch ;;
z8k*) targ_archs=bfd_z8k_arch ;;
*) targ_archs=bfd_${targ_cpu}_arch ;;
esac
+# start-sanitize-sky
+case "${targ}" in
+ mips64r5900-sky-elf*) targ_archs="${targ_archs} bfd_dvp_arch" ;;
+esac
+# end-sanitize-sky
+
# WHEN ADDING ENTRIES TO THIS MATRIX:
# Make sure that the left side always has two dashes. Otherwise you
# can get spurious matches. Even for unambiguous cases, do this as a
case "${targ}" in
# START OF targmatch.h
#ifdef BFD64
- alpha-*-netware*)
+ alpha*-*-netbsd*)
+ targ_defvec=bfd_elf64_alpha_vec
+ targ_selvecs=ecoffalpha_little_vec
+ ;;
+ alpha*-*-netware*)
targ_defvec=ecoffalpha_little_vec
targ_selvecs=nlm32_alpha_vec
;;
- alpha-*-linuxecoff*)
+ alpha*-*-linuxecoff*)
targ_defvec=ecoffalpha_little_vec
targ_selvecs=bfd_elf64_alpha_vec
;;
- alpha-*-linux* | alpha-*-elf*)
+ alpha*-*-linux-gnu* | alpha*-*-elf*)
targ_defvec=bfd_elf64_alpha_vec
targ_selvecs=ecoffalpha_little_vec
;;
- alpha-*-*vms*)
- targ_defvec=evax_alpha_vec
+ alpha*-*-*vms*)
+ targ_defvec=vms_alpha_vec
;;
- alpha-*-*)
+ alpha*-*-*)
targ_defvec=ecoffalpha_little_vec
;;
#endif /* BFD64 */
-# start-sanitize-arc
arc-*-elf*)
targ_defvec=bfd_elf32_littlearc_vec
targ_selvecs=bfd_elf32_bigarc_vec
;;
-# end-sanitize-arc
+
arm-*-riscix*)
targ_defvec=riscix_vec
;;
targ_selvecs=armcoff_big_vec
targ_underscore=yes
;;
-
+ arm-*-elf)
+ targ_defvec=bfd_elf32_littlearm_vec
+ targ_selvecs=bfd_elf32_bigarm_vec
+ targ_underscore=yes
+ ;;
+ thumb-*-coff)
+ targ_defvec=armcoff_little_vec
+ targ_selvecs=armcoff_big_vec
+ targ_underscore=yes
+ ;;
+ thumb-*-elf)
+ targ_defvec=bfd_elf32_littlearm_vec
+ targ_selvecs=bfd_elf32_bigarm_vec
+ targ_underscore=yes
+ ;;
+ thumb-*-pe*)
+ targ_defvec=armpe_little_vec
+ targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
+ targ_underscore=yes
+ ;;
a29k-*-ebmon* | a29k-*-udi* | a29k-*-coff* | a29k-*-sym1* | \
a29k-*-vxworks* | a29k-*-sysv*)
targ_defvec=a29kcoff_big_vec
targ_underscore=yes
;;
-# start-sanitize-d10v
+ c30-*-*aout* | tic30-*-*aout*)
+ targ_defvec=tic30_aout_vec
+ ;;
+ c30-*-*coff* | tic30-*-*coff*)
+ targ_defvec=tic30_coff_vec
+ ;;
+
d10v-*-*)
targ_defvec=bfd_elf32_d10v_vec
;;
-# end-sanitize-d10v
+
+ d30v-*-*)
+ targ_defvec=bfd_elf32_d30v_vec
+ ;;
+
+ fr30-*-elf)
+ targ_defvec=bfd_elf32_fr30_vec
+ ;;
+
+# start-sanitize-sky
+ dvp-*-*)
+ targ_defvec=bfd_elf32_littlemips_vec
+ targ_selvecs=bfd_elf64_littlemips_vec
+ ;;
+# end-sanitize-sky
h8300*-*-*)
targ_defvec=h8300coff_vec
targ_underscore=yes
;;
- hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4*)
+ hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-rtems*)
targ_defvec=bfd_elf32_hppa_vec
;;
#if defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF)
;;
#endif /* defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) */
+ i[3456]86-*-sco3.2v5*coff)
+ targ_defvec=i386coff_vec
+ targ_selvecs=bfd_elf32_i386_vec
+ ;;
i[3456]86-*-sysv4* | i[3456]86-*-unixware | i[3456]86-*-solaris2* | \
- i[3456]86-*-elf | i[3456]86-*-sco*elf* | i[3456]86-*-freebsdelf* | \
- i[3456]86-*-dgux*)
+ i[3456]86-*-elf | i[3456]86-*-sco3.2v5* | i[3456]86-*-freebsdelf* | \
+ i[3456]86-*-dgux* | i[3456]86-*-sysv5*)
targ_defvec=bfd_elf32_i386_vec
targ_selvecs=i386coff_vec
;;
+ i[3456]86-*-msdosdjgpp* | i[3456]*-*-go32* | i[3456]86-go32-rtems* )
+ targ_defvec=go32coff_vec
+ targ_selvecs="go32stubbedcoff_vec i386aout_vec"
+ ;;
i[3456]86-*-sysv* | i[3456]86-*-isc* | i[3456]86-*-sco* | i[3456]86-*-coff | \
- i[3456]86-*-aix* | i[3456]86-*-go32* | i[3456]86*-*-rtems*)
+ i[3456]86-*-aix* | i[3456]86*-*-rtems*)
targ_defvec=i386coff_vec
;;
i[3456]86-sequent-bsd*)
targ_selvecs=i386bsd_vec
targ_underscore=yes
;;
- i[3456]86-*-netbsd*)
+ i[3456]86-*-netbsd* | i[3456]86-*-openbsd*)
targ_defvec=i386netbsd_vec
targ_selvecs=i386bsd_vec
targ_underscore=yes
targ_defvec=bfd_elf32_i386_vec
targ_selvecs="nlm32_i386_vec i386coff_vec i386aout_vec"
;;
- i[3456]86-*-linuxaout*)
+ i[3456]86-*-linux*aout*)
targ_defvec=i386linux_vec
targ_selvecs=bfd_elf32_i386_vec
targ_underscore=yes
;;
- i[3456]86-*-linux*)
+ i[3456]86-*-linux-gnu*)
targ_defvec=bfd_elf32_i386_vec
targ_selvecs=i386linux_vec
- targ_underscore=yes
;;
i[3456]86-*-lynxos*)
targ_defvec=i386lynx_coff_vec
;;
i[3456]86-*-gnu*)
targ_defvec=bfd_elf32_i386_vec
- targ_selvecs=i386mach3_vec
- targ_cflags=-DSTAT_FOR_EXEC
- targ_underscore=yes
;;
i[3456]86-*-mach* | i[3456]86-*-osf1mk*)
targ_defvec=i386mach3_vec
targ_defvec=bfd_elf32_i386_vec
targ_selvecs="i386msdos_vec i386aout_vec"
;;
- i[3456]86-*-cygwin32 | i[3456]86-*-winnt | i[3456]86-*-pe)
+# start-sanitize-beos
+ i[3456]86-*-beospe*)
+ targ_defvec=i386pe_vec
+ targ_selvecs="i386pe_vec i386pei_vec"
+ ;;
+ i[3456]86-*-beoself* | i[3456]86-*-beos*)
+ targ_defvec=bfd_elf32_i386_vec
+ ;;
+# end-sanitize-beos
+ i[3456]86-*-mingw32* | i[3456]86-*-cygwin32* | i[3456]86-*-winnt | i[3456]86-*-pe)
targ_defvec=i386pe_vec
targ_selvecs="i386pe_vec i386pei_vec"
;;
targ_underscore=yes
;;
-# start-sanitize-m32r
m32r-*-*)
targ_defvec=bfd_elf32_m32r_vec
;;
-# end-sanitize-m32r
m68*-apollo-*)
targ_defvec=apollocoff_vec
targ_defvec=m68kcoffun_vec
targ_underscore=yes
;;
+ m68*-motorola-sysv*)
+ targ_defvec=m68ksysvcoff_vec
+ ;;
m68*-hp-bsd*)
targ_defvec=hp300bsd_vec
targ_underscore=yes
targ_defvec=hp300hpux_vec
targ_underscore=yes
;;
- m68*-*-linuxaout*)
+ m68*-*-linux*aout*)
targ_defvec=m68klinux_vec
targ_selvecs=bfd_elf32_m68k_vec
targ_underscore=yes
;;
- m68*-*-linux*)
+ m68*-*-linux-gnu*)
targ_defvec=bfd_elf32_m68k_vec
targ_selvecs=m68klinux_vec
;;
targ_selvecs="m68knetbsd_vec hp300bsd_vec sunos_big_vec"
targ_underscore=yes
;;
- m68*-*-netbsd*)
+ m68*-*-netbsd* | m68*-*-openbsd*)
targ_defvec=m68knetbsd_vec
targ_selvecs="m68k4knetbsd_vec hp300bsd_vec sunos_big_vec"
targ_underscore=yes
targ_defvec=ecoff_big_vec
targ_selvecs=ecoff_little_vec
;;
- mips-dec-netbsd*)
+ mips-dec-netbsd* | mips*el*-*-netbsd*)
targ_defvec=bfd_elf32_littlemips_vec
- targ_selvecs=bfd_elf32_bigmips_vec
+ targ_selvecs="bfd_elf32_bigmips_vec ecoff_little_vec ecoff_big_vec"
+ ;;
+ mips*-*-netbsd*)
+ targ_defvec=bfd_elf32_bigmips_vec
+ targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
;;
mips*-dec-bsd*)
targ_defvec=aout_mips_little_vec
targ_defvec=ecoff_little_vec
targ_selvecs=ecoff_big_vec
;;
-# start-sanitize-gm
- mips*-*-magic*)
- targ_defvec=ecoff_big_vec
- targ_selvecs=bfd_elf32_bigmips_vec
- ;;
-# end-sanitize-gm
mips*-*-ecoff*)
targ_defvec=ecoff_big_vec
targ_selvecs=ecoff_little_vec
targ_defvec=ecoff_big_vec
targ_selvecs=ecoff_little_vec
;;
+ mips*-*-lnews*)
+ targ_defvec=ecoff_biglittle_vec
+ targ_selvecs="ecoff_little_vec ecoff_big_vec"
+ ;;
mips*-*-mach3*)
targ_defvec=aout_mips_little_vec
targ_cflags=-DSTAT_FOR_EXEC
targ_defvec=bfd_elf32_bigmips_vec
targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
;;
- mips*el*-*-linux*)
+ mips*-*-none)
+ targ_defvec=bfd_elf32_bigmips_vec
+ targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
+ ;;
+ mips*el*-*-linux-gnu* | mips*el*-*-openbsd*)
targ_defvec=bfd_elf32_littlemips_vec
- targ_selvecs="bfd_elf32_bigmips_vec ecoff_little_vec ecoff_big_vec"
+ targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_little_vec ecoff_big_vec"
;;
- mips*-*-linux*)
+ mips*-*-linux-gnu* | mips*-*-openbsd*)
targ_defvec=bfd_elf32_bigmips_vec
- targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
+ targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_big_vec ecoff_little_vec"
;;
mn10200-*-*)
targ_defvec=pc532machaout_vec
targ_underscore=yes
;;
- ns32k-*-netbsd* | ns32k-*-lites*)
+ ns32k-*-netbsd* | ns32k-*-lites* | ns32k-*-openbsd*)
targ_defvec=pc532netbsd_vec
targ_underscore=yes
;;
- powerpc-*-aix*)
+ powerpc-*-aix* | powerpc-*-beos*)
targ_defvec=rs6000coff_vec
;;
- powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
- powerpc-*-solaris2* | powerpc-*-linux* | powerpc-*-rtems*)
+ powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
+ powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems*)
targ_defvec=bfd_elf32_powerpc_vec
- targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec ppcboot_vec"
+ targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
;;
powerpc-*-macos* | powerpc-*-mpw*)
targ_defvec=pmac_xcoff_vec
targ_selvecs="nlm32_powerpc_vec rs6000coff_vec"
;;
powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
- powerpcle-*-solaris2* | powerpcle-*-linux*)
+ powerpcle-*-solaris2* | powerpcle-*-linux-gnu*)
targ_defvec=bfd_elf32_powerpcle_vec
- targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec ppcboot_vec"
+ targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
;;
- powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin32)
+ powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin32*)
targ_defvec=bfd_powerpcle_pe_vec
targ_selvecs="bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec"
;;
sh-*-elf*)
targ_defvec=bfd_elf32_sh_vec
- targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec"
+ targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
targ_underscore=yes
;;
- sh-*-*)
+ sh-*-* | sh-*-rtems*)
targ_defvec=shcoff_vec
- targ_selvecs="shcoff_vec shlcoff_vec"
+ targ_selvecs="shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
targ_underscore=yes
;;
targ_selvecs=sparcle_aout_vec
targ_underscore=yes
;;
+ sparc86x-*-aout*)
+ targ_defvec=sunos_big_vec
+ targ_underscore=yes
+ ;;
+ sparclite-*-elf* | sparc86x-*-elf*)
+ targ_defvec=bfd_elf32_sparc_vec
+ ;;
+ sparc-*-linux*aout*)
+ targ_defvec=sparclinux_vec
+ targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
+ targ_underscore=yes
+ ;;
+ sparc-*-linux-gnu*)
+ targ_defvec=bfd_elf32_sparc_vec
+ targ_selvecs="sparclinux_vec sunos_big_vec"
+ ;;
sparc-*-lynxos*)
targ_defvec=sparclynx_coff_vec
targ_selvecs=sparclynx_aout_vec
;;
- sparc-*-netbsd*)
+ sparc-*-netbsd* | sparc-*-openbsd*)
targ_defvec=sparcnetbsd_vec
targ_underscore=yes
;;
sparc-*-sysv4*)
targ_defvec=bfd_elf32_sparc_vec
;;
+ sparc-*-netware*)
+ targ_defvec=bfd_elf32_sparc_vec
+ targ_selvecs="nlm32_sparc_vec sunos_big_vec"
+ ;;
+#ifdef BFD64
sparc64-*-aout*)
targ_defvec=sunos_big_vec
targ_underscore=yes
;;
-#ifdef BFD64
+ sparc64-*-linux-gnu*)
+ targ_defvec=bfd_elf64_sparc_vec
+ targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
+ ;;
sparc64-*-elf*)
targ_defvec=bfd_elf64_sparc_vec
targ_selvecs=bfd_elf32_sparc_vec
;;
#endif /* BFD64 */
- sparc-*-netware*)
- targ_defvec=bfd_elf32_sparc_vec
- targ_selvecs="nlm32_sparc_vec sunos_big_vec"
- ;;
sparc*-*-coff*)
targ_defvec=sparccoff_vec
;;
targ_underscore=yes
;;
-#if 0
+#if HAVE_host_aout_vec
tahoe-*-*)
targ_defvec=host_aout_vec
targ_underscore=yes
;;
#endif
-
# start-sanitize-tic80
- tic80*-*-coff*)
+
+ tic80*-*-*)
targ_defvec=tic80coff_vec
+ targ_underscore=yes
;;
# end-sanitize-tic80
-# start-sanitize-v850
+
v850-*-*)
targ_defvec=bfd_elf32_v850_vec
;;
-
-# end-sanitize-v850
-#if 0
+# start-sanitize-v850e
+ v850e-*-*)
+ targ_defvec=bfd_elf32_v850_vec
+ ;;
+ v850ea-*-*)
+ targ_defvec=bfd_elf32_v850_vec
+ ;;
+# end-sanitize-v850e
+#if HAVE_host_aout_vec
vax-*-bsd* | vax-*-ultrix*)
targ_defvec=host_aout_vec
targ_underscore=yes
;;
#endif
+ vax*-*-*vms*)
+ targ_defvec=vms_vax_vec
+ ;;
+
we32k-*-*)
targ_defvec=we32kcoff_vec
;;
exit 1
;;
esac
+
+# If we support any ELF target, then automatically add support for the
+# generic ELF targets. This permits an objdump with some ELF support
+# to be used on an arbitrary ELF file for anything other than
+# relocation information.
+case "${targ_defvec} ${targ_selvecs}" in
+ *bfd_elf64*)
+ targ_selvecs="${targ_selvecs} bfd_elf64_little_generic_vec bfd_elf64_big_generic_vec bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec"
+ ;;
+ *bfd_elf32*)
+ targ_selvecs="${targ_selvecs} bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec"
+ ;;
+esac