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