#!/bin/sh # config.bfd # Convert a canonical host type into a BFD host type. # Call with canonical name as the argument. # Echos the result. # If second argument is _, echoes whether underscores are stripped. canon="$1" cpu=`echo $canon | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` # The binutils c++filt program wants to know whether underscores are # stripped or not. It uses this information to choose a default. # This information is duplicated in the symbol_leading_char field of # the BFD target vector, but c++filt does not deal with object files # and is not linked against libbfd.a. It is not terribly important # that c++filt get this right; it is just convenient. strip_underscore=no # 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 # convention, else the table becomes a real mess to understand and maintain. case "${canon}" in alpha-*-netware*) bfd_name=alpha-nlm ;; alpha-*-*) bfd_name=alphaosf ;; # start-sanitize-arc arc-*-elf*) bfd_name=arc-elf ;; # end-sanitize-arc arm-*-riscix*) bfd_name=riscix ;; arm-*-pe*) bfd_name=arm-pe strip_underscore=yes ;; arm-*-aout | armel-*-aout) bfd_name=arml-aout ;; armeb-*-aout) bfd_name=armb-aout ;; a29k-*-ebmon*) bfd_name=a29k-coff strip_underscore=yes ;; a29k-*-udi*) bfd_name=a29k-coff strip_underscore=yes ;; a29k-*-aout*) bfd_name=a29k-aout strip_underscore=yes ;; a29k-*-coff*) bfd_name=a29k-coff strip_underscore=yes ;; a29k-*-sym1*) bfd_name=a29k-coff strip_underscore=yes ;; a29k-*-vxworks*) bfd_name=a29k-coff strip_underscore=yes ;; h8300*-*-*) bfd_name=h8300-coff strip_underscore=yes ;; h8500-*-*) bfd_name=h8500-coff strip_underscore=yes ;; sh-*-*) bfd_name=sh-coff strip_underscore=yes ;; # start-sanitize-rce rce-*-aout) bfd_name=rce-aout ;; # end-sanitize-rce hppa*-*-*elf*) bfd_name=hppa-elf ;; hppa*-*-lites*) bfd_name=hppa-elf ;; hppa*-*-bsd*) bfd_name=hppabsd ;; hppa*-*-hpux*) bfd_name=hppahpux ;; hppa*-*-hiux*) bfd_name=hppahpux ;; hppa*-*-osf*) bfd_name=hppaosf ;; i[345]86-*-sysv4*) bfd_name=i386-elf ;; i[345]86-*-unixware) bfd_name=i386-elf ;; i[345]86-*-solaris2*) bfd_name=i386-elf ;; i[345]86-*-sysv*) bfd_name=i386-coff ;; i[345]86-*-isc*) bfd_name=i386-coff ;; i[345]86-*-sco*) bfd_name=i386-coff ;; i[345]86-sequent-bsd*) bfd_name=i386-dynix strip_underscore=yes ;; i[345]86-*-bsd*) bfd_name=i386-bsd strip_underscore=yes ;; i[345]86-*-coff) bfd_name=i386-coff ;; i[345]86-*-aix*) bfd_name=i386-coff ;; i[345]86-*-elf) bfd_name=i386-elf ;; i[345]86-*-freebsd*) bfd_name=i386-bsd strip_underscore=yes ;; i[345]86-*-netbsd*) bfd_name=i386-nbsd strip_underscore=yes ;; i[345]86-*-netware*) bfd_name=i386-nlm ;; i[345]86-*-linuxaout*) bfd_name=i386-laout strip_underscore=yes ;; i[345]86-*-linux*) bfd_name=i386-linux strip_underscore=yes ;; i[345]86-*-lynxos*) bfd_name=i386-lynx ;; i[345]86-*-gnu*) bfd_name=i386-gelf strip_underscore=yes ;; i[345]86-*-mach*) bfd_name=i386-mach3 strip_underscore=yes ;; i[345]86-*-osf1mk*) bfd_name=i386-mach3 strip_underscore=yes ;; i[345]86-*-os9k) bfd_name=i386-os9k ;; i[345]86-*-msdos*) bfd_name=i386-msdos ;; i[345]86-*-moss*) bfd_name=i386-moss ;; i[345]86-*-win32) bfd_name=i386-pe ;; i[345]86-*-winnt) bfd_name=i386-pe ;; i[345]86-*-pe) bfd_name=i386-pe ;; i[345]86-none-*) bfd_name=i386-coff ;; i960-*-vxworks4*) bfd_name=i960-bout strip_underscore=yes ;; i960-*-vxworks5.0) bfd_name=i960-bout strip_underscore=yes ;; i960-*-vxworks5.*) bfd_name=i960-coff strip_underscore=yes ;; i960-*-vxworks*) bfd_name=i960-bout strip_underscore=yes ;; i960-*-aout*) bfd_name=i960-bout strip_underscore=yes ;; i960-*-bout*) bfd_name=i960-bout strip_underscore=yes ;; i960-*-coff*) bfd_name=i960-coff strip_underscore=yes ;; i960-*-nindy*) bfd_name=i960-bout strip_underscore=yes ;; m68*-apollo-*) bfd_name=apollo ;; m68*-bull-sysv*) bfd_name=u68k-coff strip_underscore=yes ;; m68*-hp-bsd*) bfd_name=hp300bsd strip_underscore=yes ;; m68*-*-aout*) bfd_name=m68k-0aout strip_underscore=yes ;; m68*-*-coff*) bfd_name=m68k-coff ;; m68*-*-elf*) bfd_name=m68k-elf ;; m68*-*-hpux*) bfd_name=hp300hpux strip_underscore=yes ;; m68*-*-lynxos*) bfd_name=m68k-lynx ;; m68*-*-netbsd*) bfd_name=m68k-nbsd strip_underscore=yes ;; m68*-*-os68k*) bfd_name=m68k-aout strip_underscore=yes ;; m68*-*-sunos*) bfd_name=m68k-aout strip_underscore=yes ;; m68*-*-sysv4*) bfd_name=m68k-elf ;; m68*-*-sysv*) bfd_name=m68k-coff ;; m68*-*-vxworks*) bfd_name=m68k-aout strip_underscore=yes ;; m68*-ericsson-*) bfd_name=m68k-ose strip_underscore=yes ;; m68*-netx-*) bfd_name=m68k-aout strip_underscore=yes ;; m88*-harris-cxux*) bfd_name=m88k-elf ;; # DGUX used to use COFF, but now (Jan 94) I believe it uses ELF by default. m88*-*-dgux*) bfd_name=m88k-elf ;; m88*-*-mach3*) bfd_name=m88k-mach3 ;; m88*-*-sysv4*) bfd_name=m88k-elf ;; m88*-*-*) bfd_name=m88k-coff strip_underscore=yes ;; mips*-big-*) bfd_name=bigmips ;; mips*-dec-bsd*) bfd_name=mipsdecbsd strip_underscore=yes ;; mips*-dec-mach3*) bfd_name=mips-mach3 ;; mips*-dec-*) bfd_name=decstation ;; mips*el-*-ecoff*) bfd_name=decstation ;; mips*-*-ecoff*) bfd_name=bigmips ;; mips*-*-irix5*) bfd_name=mipsbelf ;; mips*-sgi-*) bfd_name=bigmips ;; mips*-*-mach3*) bfd_name=mips-mach3 ;; mips*-*-sysv4*) bfd_name=mipsbelf ;; mips*-*-sysv*) bfd_name=riscos ;; mips*-*-riscos*) bfd_name=riscos ;; mips*-*-bsd*) bfd_name=bigmips ;; # Sony News mips*el-*-elf*) bfd_name=mipslelf ;; mips*-*-elf*) bfd_name=mipsbelf ;; ns32k-pc532-mach*) bfd_name=pc532-mach strip_underscore=yes;; ns32k-*-netbsd*) bfd_name=ns32k-nbsd strip_underscore=yes;; powerpc-*-aix*) bfd_name=rs6000 ;; powerpc-*-elf*) bfd_name=ppc-elf ;; powerpc-*-sysv4*) bfd_name=ppc-elf ;; powerpc-*-eabi*) bfd_name=ppc-elf ;; powerpc-*-netware*) bfd_name=ppc-nlm ;; powerpcle-*-elf*) bfd_name=ppcle-elf ;; powerpcle-*-sysv4*) bfd_name=ppcle-elf ;; powerpcle-*-eabi*) bfd_name=ppcle-elf ;; rs6000-*-*) bfd_name=rs6000 ;; sparc-*-lynxos*) bfd_name=sparc-lynx ;; sparc-*-netbsd*) bfd_name=sparc-nbsd strip_underscore=yes;; sparc-*-solaris2*) bfd_name=sparc-elf ;; sparc-*-sysv4*) bfd_name=sparc-elf ;; sparc64-*-aout*) bfd_name=sparc-aout strip_underscore=yes ;; sparc64-*-elf*) bfd_name=sparc64-elf ;; sparc-*-netware*) bfd_name=sparc-nlm ;; sparc*-*-coff*) bfd_name=sparc-coff ;; sparc*-*-*) bfd_name=sparc-aout strip_underscore=yes ;; tahoe-*-*) bfd_name=tahoe strip_underscore=yes ;; vax-*-vms*) bfd_name=vax-vms ;; vax-*-*) bfd_name=vax strip_underscore=yes ;; we32k-*-*) bfd_name=we32k ;; w65-*-*) bfd_name=w65 ;; z8k*-*-*) bfd_name=z8k-coff strip_underscore=yes ;; *-*-aout*) bfd_name=${cpu}-aout strip_underscore=yes ;; *-*-bsd*) bfd_name=${cpu}-aout strip_underscore=yes ;; *-*-netware*) bfd_name=${cpu}-nlm ;; *-*-sysv4*) bfd_name=${cpu}-elf ;; *-*-solaris2*) bfd_name=${cpu}-elf ;; *-*-vsta*) bfd_name=${cpu}-aout strip_underscore=yes ;; *-*-go32*) bfd_name=${cpu}-coff ;; *-*-sysv*) bfd_name=${cpu}-coff ;; *-*-aout64*) bfd_name=${cpu}-aout64 strip_underscore=yes ;; *-*-elf64*) bfd_name=${cpu}-elf64 ;; *-adobe-*) bfd_name=adobe strip_underscore=yes ;; *-sony-*) bfd_name=news strip_underscore=yes ;; *-intel-*) bfd_name=${cpu}-coff ;; *-stratus-*) bfd_name=${cpu}-elf ;; *-cbm-*) bfd_name=${cpu}-elf ;; *-ncr-*) bfd_name=${cpu}-elf ;; *-tandem-*) bfd_name=st2000 ;; # Allow targets that config.sub doesn't recognize, like "all". *) bfd_name=$canon ;; esac if [ "x$2" = "x_" ]; then echo $strip_underscore else echo $bfd_name fi