aboutsummaryrefslogtreecommitdiff
path: root/bfd/config.bfd
blob: 0bc211172a493d7a36a6491b6d3b7a81f40c9c37 (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
#!/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 ;;
  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 ;;
  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*-*-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-*-linux*)	bfd_name=i386-linux strip_underscore=yes ;;
  i[345]86-*-lynxos*)	bfd_name=i386-lynx ;;
  i[345]86-*-gnu*)	bfd_name=i386-gnu 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-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 ;;
  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*-*-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 ;;
  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