blob: 249be6ea8eff44c9d05b75c460437883786e02c3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
|
#!/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
# CYGNUS LOCAL jsmith/vr4300 : we use the existing definition for little-endian
mips*vr4300-*-elf*) bfd_name=mipsbvr4300 ;; # NEC VR4300 ELF only
# END CYGNUS LOCAL
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 ;;
*-*-ieee*) bfd_name=ieee ;;
*-*-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
|