4 # Convert a canonical host type into a BFD host type.
5 # Call with canonical name as the argument.
7 # If second argument is _, echoes whether underscores are stripped.
10 cpu
=`echo $canon | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
12 # The binutils c++filt program wants to know whether underscores are
13 # stripped or not. It uses this information to choose a default.
14 # This information is duplicated in the symbol_leading_char field of
15 # the BFD target vector, but c++filt does not deal with object files
16 # and is not linked against libbfd.a. It is not terribly important
17 # that c++filt get this right; it is just convenient.
20 # WHEN ADDING ENTRIES TO THIS MATRIX:
21 # Make sure that the left side always has two dashes. Otherwise you
22 # can get spurious matches. Even for unambiguous cases, do this as a
23 # convention, else the table becomes a real mess to understand and maintain.
26 alpha-
*-netware*) bfd_name
=alpha-nlm
;;
27 alpha-
*-*) bfd_name
=alphaosf
;;
28 arm-
*-riscix*) bfd_name
=riscix
;;
29 a29k-
*-ebmon*) bfd_name
=a29k-coff strip_underscore
=yes ;;
30 a29k-
*-udi*) bfd_name
=a29k-coff strip_underscore
=yes ;;
31 a29k-
*-aout*) bfd_name
=a29k-aout strip_underscore
=yes ;;
32 a29k-
*-coff*) bfd_name
=a29k-coff strip_underscore
=yes ;;
33 a29k-
*-sym1*) bfd_name
=a29k-coff strip_underscore
=yes ;;
34 h8300
*-*-*) bfd_name
=h8300-coff strip_underscore
=yes ;;
35 h8500-
*-*) bfd_name
=h8500-coff strip_underscore
=yes ;;
36 sh-
*-*) bfd_name
=sh-coff strip_underscore
=yes ;;
38 rce-
*-aout) bfd_name
=rce-aout
;;
40 hppa
*-*-*elf
*) bfd_name
=hppa-elf
;;
41 hppa
*-*-bsd*) bfd_name
=hppabsd
;;
42 hppa
*-*-hpux*) bfd_name
=hppahpux
;;
43 hppa
*-*-hiux*) bfd_name
=hppahpux
;;
44 hppa
*-*-osf*) bfd_name
=hppaosf
;;
45 i
[345]86-*-sysv4*) bfd_name
=i386-elf
;;
46 i
[345]86-*-unixware) bfd_name
=i386-elf
;;
47 i
[345]86-*-solaris2*) bfd_name
=i386-elf
;;
48 i
[345]86-*-sysv*) bfd_name
=i386-coff
;;
49 i
[345]86-*-isc*) bfd_name
=i386-coff
;;
50 i
[345]86-*-sco*) bfd_name
=i386-coff
;;
51 i
[345]86-sequent-bsd*) bfd_name
=i386-dynix strip_underscore
=yes ;;
52 i
[345]86-*-bsd*) bfd_name
=i386-bsd strip_underscore
=yes ;;
53 i
[345]86-*-coff) bfd_name
=i386-coff
;;
54 i
[345]86-*-aix*) bfd_name
=i386-coff
;;
55 i
[345]86-*-elf) bfd_name
=i386-elf
;;
56 i
[345]86-*-freebsd*) bfd_name
=i386-bsd strip_underscore
=yes ;;
57 i
[345]86-*-netbsd*) bfd_name
=i386-nbsd strip_underscore
=yes ;;
58 i
[345]86-*-netware*) bfd_name
=i386-nlm
;;
59 i
[345]86-*-linux*) bfd_name
=i386-linux strip_underscore
=yes ;;
60 i
[345]86-*-lynxos*) bfd_name
=i386-lynx
;;
61 i
[345]86-*-gnu*) bfd_name
=i386-mach3 strip_underscore
=yes ;;
62 i
[345]86-*-mach*) bfd_name
=i386-mach3 strip_underscore
=yes ;;
63 i
[345]86-*-osf1mk*) bfd_name
=i386-mach3 strip_underscore
=yes ;;
64 i
[345]86-*-os9k) bfd_name
=i386-os9k
;;
65 i
[345]86-none-*) bfd_name
=i386-coff
;;
66 i960-
*-vxworks4*) bfd_name
=i960-bout strip_underscore
=yes ;;
67 i960-
*-vxworks5.0
) bfd_name
=i960-bout strip_underscore
=yes ;;
68 i960-
*-vxworks5.
*) bfd_name
=i960-coff strip_underscore
=yes ;;
69 i960-
*-vxworks*) bfd_name
=i960-bout strip_underscore
=yes ;;
70 i960-
*-aout*) bfd_name
=i960-bout strip_underscore
=yes ;;
71 i960-
*-bout*) bfd_name
=i960-bout strip_underscore
=yes ;;
72 i960-
*-coff*) bfd_name
=i960-coff strip_underscore
=yes ;;
73 i960-
*-nindy*) bfd_name
=i960-bout strip_underscore
=yes ;;
74 m68
*-apollo-*) bfd_name
=apollo
;;
75 m68
*-bull-sysv*) bfd_name
=u68k-coff
;;
76 m68
*-hp-bsd*) bfd_name
=hp300bsd strip_underscore
=yes ;;
77 m68
*-*-aout*) bfd_name
=m68k-0aout strip_underscore
=yes ;;
78 m68
*-*-coff*) bfd_name
=m68k-coff
;;
79 m68
*-*-hpux*) bfd_name
=hp300hpux strip_underscore
=yes ;;
80 m68
*-*-lynxos*) bfd_name
=m68k-lynx
;;
81 m68
*-*-netbsd*) bfd_name
=m68k-nbsd strip_underscore
=yes ;;
82 m68
*-*-os68k*) bfd_name
=m68k-aout strip_underscore
=yes ;;
83 m68
*-*-sunos*) bfd_name
=m68k-aout strip_underscore
=yes ;;
84 m68
*-*-sysv4*) bfd_name
=m68k-elf
;;
85 m68
*-*-sysv*) bfd_name
=m68k-coff
;;
86 m68
*-*-vxworks*) bfd_name
=m68k-aout strip_underscore
=yes ;;
87 m68
*-ericsson-*) bfd_name
=m68k-ose strip_underscore
=yes ;;
88 m68
*-netx-*) bfd_name
=m68k-aout strip_underscore
=yes ;;
90 m88
*-harris-cxux*) bfd_name
=m88k-elf
;;
91 # DGUX used to use COFF, but now (Jan 94) I believe it uses ELF by default.
92 m88
*-*-dgux*) bfd_name
=m88k-elf
;;
93 m88
*-*-mach3*) bfd_name
=m88k-mach3
;;
94 m88
*-*-sysv4*) bfd_name
=m88k-elf
;;
95 m88
*-*-*) bfd_name
=m88k-coff strip_underscore
=yes ;;
97 mips
*-big-*) bfd_name
=bigmips
;;
98 mips
*-dec-bsd*) bfd_name
=mipsdecbsd strip_underscore
=yes ;;
99 mips
*-dec-mach3*) bfd_name
=mips-mach3
;;
100 mips
*-dec-*) bfd_name
=decstation
;;
101 mips
*el-
*-ecoff*) bfd_name
=decstation
;;
102 mips
*-*-ecoff*) bfd_name
=bigmips
;;
103 mips
*-*-irix5*) bfd_name
=mipsbelf
;;
104 mips
*-sgi-*) bfd_name
=bigmips
;;
105 mips
*-*-mach3*) bfd_name
=mips-mach3
;;
106 mips
*-*-sysv4*) bfd_name
=mipsbelf
;;
107 mips
*-*-sysv*) bfd_name
=riscos
;;
108 mips
*-*-riscos*) bfd_name
=riscos
;;
109 mips
*-*-bsd*) bfd_name
=bigmips
;; # Sony News
110 mips
*el-
*-elf*) bfd_name
=mipslelf
;;
111 mips
*-*-elf*) bfd_name
=mipsbelf
;;
112 ns32k-pc532-mach
*) bfd_name
=pc532-mach strip_underscore
=yes;;
113 ns32k-
*-netbsd*) bfd_name
=ns32k-nbsd strip_underscore
=yes;;
114 powerpc-
*-aix*) bfd_name
=rs6000
;;
115 powerpc-
*-elf*) bfd_name
=ppc-elf
;;
116 powerpc-
*-sysv4*) bfd_name
=ppc-elf
;;
117 powerpc-
*-netware*) bfd_name
=ppc-nlm
;;
118 rs6000-
*-*) bfd_name
=rs6000
;;
119 sparc-
*-lynxos*) bfd_name
=sparc-lynx
;;
120 sparc-
*-netbsd*) bfd_name
=sparc-nbsd strip_underscore
=yes;;
121 sparc-
*-solaris2*) bfd_name
=sparc-elf
;;
122 sparc-
*-sysv4*) bfd_name
=sparc-elf
;;
123 sparc64-
*-aout*) bfd_name
=sparc-aout strip_underscore
=yes ;;
124 sparc64-
*-elf*) bfd_name
=sparc64-elf
;;
125 sparc-
*-netware*) bfd_name
=sparc-nlm
;;
126 sparc
*-*-coff*) bfd_name
=sparc-coff
;;
127 sparc
*-*-*) bfd_name
=sparc-aout strip_underscore
=yes ;;
128 tahoe-
*-*) bfd_name
=tahoe strip_underscore
=yes ;;
129 vax-
*-vms*) bfd_name
=vax-vms
;;
130 vax-
*-*) bfd_name
=vax strip_underscore
=yes ;;
131 we32k-
*-*) bfd_name
=we32k
;;
132 z8k
*-*-*) bfd_name
=z8k-coff strip_underscore
=yes ;;
134 *-*-aout*) bfd_name
=${cpu}-aout strip_underscore
=yes ;;
135 *-*-bsd*) bfd_name
=${cpu}-aout strip_underscore
=yes ;;
136 *-*-netware*) bfd_name
=${cpu}-nlm ;;
137 *-*-sysv4*) bfd_name
=${cpu}-elf ;;
138 *-*-solaris2*) bfd_name
=${cpu}-elf ;;
139 *-*-vsta*) bfd_name
=${cpu}-aout strip_underscore
=yes ;;
140 *-*-go32*) bfd_name
=${cpu}-coff ;;
141 *-*-sysv*) bfd_name
=${cpu}-coff ;;
143 *-*-aout64*) bfd_name
=${cpu}-aout64 strip_underscore
=yes ;;
144 *-*-elf64*) bfd_name
=${cpu}-elf64 ;;
146 *-adobe-*) bfd_name
=adobe strip_underscore
=yes ;;
147 *-sony-*) bfd_name
=news strip_underscore
=yes ;;
148 *-intel-*) bfd_name
=${cpu}-coff ;;
149 *-stratus-*) bfd_name
=${cpu}-elf ;;
150 *-cbm-*) bfd_name
=${cpu}-elf ;;
151 *-ncr-*) bfd_name
=${cpu}-elf ;;
152 *-tandem-*) bfd_name
=st2000
;;
154 # Allow targets that config.sub doesn't recognize, like "all".
155 *) bfd_name
=$canon ;;
158 if [ "x$2" = "x_" ]; then
159 echo $strip_underscore