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
;;
29 arc-
*-elf*) bfd_name
=arc-elf
;;
31 arm-
*-riscix*) bfd_name
=riscix
;;
32 arm-
*-pe*) bfd_name
=arm-pe strip_underscore
=yes ;;
33 arm-
*-aout | armel-
*-aout)
35 armeb-
*-aout) bfd_name
=armb-aout
;;
36 a29k-
*-ebmon*) bfd_name
=a29k-coff strip_underscore
=yes ;;
37 a29k-
*-udi*) bfd_name
=a29k-coff strip_underscore
=yes ;;
38 a29k-
*-aout*) bfd_name
=a29k-aout strip_underscore
=yes ;;
39 a29k-
*-coff*) bfd_name
=a29k-coff strip_underscore
=yes ;;
40 a29k-
*-sym1*) bfd_name
=a29k-coff strip_underscore
=yes ;;
41 a29k-
*-vxworks*) bfd_name
=a29k-coff strip_underscore
=yes ;;
42 h8300
*-*-*) bfd_name
=h8300-coff strip_underscore
=yes ;;
43 h8500-
*-*) bfd_name
=h8500-coff strip_underscore
=yes ;;
44 sh-
*-*) bfd_name
=sh-coff strip_underscore
=yes ;;
46 rce-
*-aout) bfd_name
=rce-aout
;;
48 hppa
*-*-*elf
*) bfd_name
=hppa-elf
;;
49 hppa
*-*-lites*) bfd_name
=hppa-elf
;;
50 hppa
*-*-bsd*) bfd_name
=hppabsd
;;
51 hppa
*-*-hpux*) bfd_name
=hppahpux
;;
52 hppa
*-*-hiux*) bfd_name
=hppahpux
;;
53 hppa
*-*-osf*) bfd_name
=hppaosf
;;
54 i
[345]86-*-sysv4*) bfd_name
=i386-elf
;;
55 i
[345]86-*-unixware) bfd_name
=i386-elf
;;
56 i
[345]86-*-solaris2*) bfd_name
=i386-elf
;;
57 i
[345]86-*-sysv*) bfd_name
=i386-coff
;;
58 i
[345]86-*-isc*) bfd_name
=i386-coff
;;
59 i
[345]86-*-sco*) bfd_name
=i386-coff
;;
60 i
[345]86-sequent-bsd*) bfd_name
=i386-dynix strip_underscore
=yes ;;
61 i
[345]86-*-bsd*) bfd_name
=i386-bsd strip_underscore
=yes ;;
62 i
[345]86-*-coff) bfd_name
=i386-coff
;;
63 i
[345]86-*-aix*) bfd_name
=i386-coff
;;
64 i
[345]86-*-elf) bfd_name
=i386-elf
;;
65 i
[345]86-*-freebsd*) bfd_name
=i386-bsd strip_underscore
=yes ;;
66 i
[345]86-*-netbsd*) bfd_name
=i386-nbsd strip_underscore
=yes ;;
67 i
[345]86-*-netware*) bfd_name
=i386-nlm
;;
68 i
[345]86-*-linuxaout*) bfd_name
=i386-laout strip_underscore
=yes ;;
69 i
[345]86-*-linux*) bfd_name
=i386-linux strip_underscore
=yes ;;
70 i
[345]86-*-lynxos*) bfd_name
=i386-lynx
;;
71 i
[345]86-*-gnu*) bfd_name
=i386-gelf strip_underscore
=yes ;;
72 i
[345]86-*-mach*) bfd_name
=i386-mach3 strip_underscore
=yes ;;
73 i
[345]86-*-osf1mk*) bfd_name
=i386-mach3 strip_underscore
=yes ;;
74 i
[345]86-*-os9k) bfd_name
=i386-os9k
;;
75 i
[345]86-*-msdos*) bfd_name
=i386-msdos
;;
76 i
[345]86-*-moss*) bfd_name
=i386-moss
;;
77 i
[345]86-*-win32) bfd_name
=i386-pe
;;
78 i
[345]86-*-winnt) bfd_name
=i386-pe
;;
79 i
[345]86-*-pe) bfd_name
=i386-pe
;;
80 i
[345]86-none-*) bfd_name
=i386-coff
;;
81 i960-
*-vxworks4*) bfd_name
=i960-bout strip_underscore
=yes ;;
82 i960-
*-vxworks5.0
) bfd_name
=i960-bout strip_underscore
=yes ;;
83 i960-
*-vxworks5.
*) bfd_name
=i960-coff strip_underscore
=yes ;;
84 i960-
*-vxworks*) bfd_name
=i960-bout strip_underscore
=yes ;;
85 i960-
*-aout*) bfd_name
=i960-bout strip_underscore
=yes ;;
86 i960-
*-bout*) bfd_name
=i960-bout strip_underscore
=yes ;;
87 i960-
*-coff*) bfd_name
=i960-coff strip_underscore
=yes ;;
88 i960-
*-nindy*) bfd_name
=i960-bout strip_underscore
=yes ;;
89 m68
*-apollo-*) bfd_name
=apollo
;;
90 m68
*-bull-sysv*) bfd_name
=u68k-coff strip_underscore
=yes ;;
91 m68
*-hp-bsd*) bfd_name
=hp300bsd strip_underscore
=yes ;;
92 m68
*-*-aout*) bfd_name
=m68k-0aout strip_underscore
=yes ;;
93 m68
*-*-coff*) bfd_name
=m68k-coff
;;
94 m68
*-*-elf*) bfd_name
=m68k-elf
;;
95 m68
*-*-hpux*) bfd_name
=hp300hpux strip_underscore
=yes ;;
96 m68
*-*-lynxos*) bfd_name
=m68k-lynx
;;
97 m68
*-*-netbsd*) bfd_name
=m68k-nbsd strip_underscore
=yes ;;
98 m68
*-*-os68k*) bfd_name
=m68k-aout strip_underscore
=yes ;;
99 m68
*-*-sunos*) bfd_name
=m68k-aout strip_underscore
=yes ;;
100 m68
*-*-sysv4*) bfd_name
=m68k-elf
;;
101 m68
*-*-sysv*) bfd_name
=m68k-coff
;;
102 m68
*-*-vxworks*) bfd_name
=m68k-aout strip_underscore
=yes ;;
103 m68
*-ericsson-*) bfd_name
=m68k-ose strip_underscore
=yes ;;
104 m68
*-netx-*) bfd_name
=m68k-aout strip_underscore
=yes ;;
106 m88
*-harris-cxux*) bfd_name
=m88k-elf
;;
107 # DGUX used to use COFF, but now (Jan 94) I believe it uses ELF by default.
108 m88
*-*-dgux*) bfd_name
=m88k-elf
;;
109 m88
*-*-mach3*) bfd_name
=m88k-mach3
;;
110 m88
*-*-sysv4*) bfd_name
=m88k-elf
;;
111 m88
*-*-*) bfd_name
=m88k-coff strip_underscore
=yes ;;
113 mips
*-big-*) bfd_name
=bigmips
;;
114 mips
*-dec-bsd*) bfd_name
=mipsdecbsd strip_underscore
=yes ;;
115 mips
*-dec-mach3*) bfd_name
=mips-mach3
;;
116 mips
*-dec-*) bfd_name
=decstation
;;
117 mips
*el-
*-ecoff*) bfd_name
=decstation
;;
118 mips
*-*-ecoff*) bfd_name
=bigmips
;;
119 mips
*-*-irix5*) bfd_name
=mipsbelf
;;
120 mips
*-sgi-*) bfd_name
=bigmips
;;
121 mips
*-*-mach3*) bfd_name
=mips-mach3
;;
122 mips
*-*-sysv4*) bfd_name
=mipsbelf
;;
123 mips
*-*-sysv*) bfd_name
=riscos
;;
124 mips
*-*-riscos*) bfd_name
=riscos
;;
125 mips
*-*-bsd*) bfd_name
=bigmips
;; # Sony News
126 mips
*el-
*-elf*) bfd_name
=mipslelf
;;
127 mips
*-*-elf*) bfd_name
=mipsbelf
;;
128 ns32k-pc532-mach
*) bfd_name
=pc532-mach strip_underscore
=yes;;
129 ns32k-
*-netbsd*) bfd_name
=ns32k-nbsd strip_underscore
=yes;;
130 powerpc-
*-aix*) bfd_name
=rs6000
;;
131 powerpc-
*-elf*) bfd_name
=ppc-elf
;;
132 powerpc-
*-sysv4*) bfd_name
=ppc-elf
;;
133 powerpc-
*-eabi*) bfd_name
=ppc-elf
;;
134 powerpc-
*-netware*) bfd_name
=ppc-nlm
;;
135 powerpcle-
*-elf*) bfd_name
=ppcle-elf
;;
136 powerpcle-
*-sysv4*) bfd_name
=ppcle-elf
;;
137 powerpcle-
*-eabi*) bfd_name
=ppcle-elf
;;
138 rs6000-
*-*) bfd_name
=rs6000
;;
139 sparc-
*-lynxos*) bfd_name
=sparc-lynx
;;
140 sparc-
*-netbsd*) bfd_name
=sparc-nbsd strip_underscore
=yes;;
141 sparc-
*-solaris2*) bfd_name
=sparc-elf
;;
142 sparc-
*-sysv4*) bfd_name
=sparc-elf
;;
143 sparc64-
*-aout*) bfd_name
=sparc-aout strip_underscore
=yes ;;
144 sparc64-
*-elf*) bfd_name
=sparc64-elf
;;
145 sparc-
*-netware*) bfd_name
=sparc-nlm
;;
146 sparc
*-*-coff*) bfd_name
=sparc-coff
;;
147 sparc
*-*-*) bfd_name
=sparc-aout strip_underscore
=yes ;;
148 tahoe-
*-*) bfd_name
=tahoe strip_underscore
=yes ;;
149 vax-
*-vms*) bfd_name
=vax-vms
;;
150 vax-
*-*) bfd_name
=vax strip_underscore
=yes ;;
151 we32k-
*-*) bfd_name
=we32k
;;
152 w65-
*-*) bfd_name
=w65
;;
153 z8k
*-*-*) bfd_name
=z8k-coff strip_underscore
=yes ;;
155 *-*-aout*) bfd_name
=${cpu}-aout strip_underscore
=yes ;;
156 *-*-bsd*) bfd_name
=${cpu}-aout strip_underscore
=yes ;;
157 *-*-netware*) bfd_name
=${cpu}-nlm ;;
158 *-*-sysv4*) bfd_name
=${cpu}-elf ;;
159 *-*-solaris2*) bfd_name
=${cpu}-elf ;;
160 *-*-vsta*) bfd_name
=${cpu}-aout strip_underscore
=yes ;;
161 *-*-go32*) bfd_name
=${cpu}-coff ;;
162 *-*-sysv*) bfd_name
=${cpu}-coff ;;
164 *-*-aout64*) bfd_name
=${cpu}-aout64 strip_underscore
=yes ;;
165 *-*-elf64*) bfd_name
=${cpu}-elf64 ;;
167 *-adobe-*) bfd_name
=adobe strip_underscore
=yes ;;
168 *-sony-*) bfd_name
=news strip_underscore
=yes ;;
169 *-intel-*) bfd_name
=${cpu}-coff ;;
170 *-stratus-*) bfd_name
=${cpu}-elf ;;
171 *-cbm-*) bfd_name
=${cpu}-elf ;;
172 *-ncr-*) bfd_name
=${cpu}-elf ;;
173 *-tandem-*) bfd_name
=st2000
;;
175 # Allow targets that config.sub doesn't recognize, like "all".
176 *) bfd_name
=$canon ;;
179 if [ "x$2" = "x_" ]; then
180 echo $strip_underscore