Commit | Line | Data |
---|---|---|
49df10b1 DM |
1 | #!/bin/sh |
2 | ||
3 | # config.bfd | |
4 | # Convert a canonical host type into a BFD host type. | |
5 | # Call with canonical name as the argument. | |
6 | # Echos the result. | |
1fb83be6 | 7 | # If second argument is _, echoes whether underscores are stripped. |
49df10b1 DM |
8 | |
9 | canon="$1" | |
10 | cpu=`echo $canon | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` | |
11 | ||
1fb83be6 KR |
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. | |
18 | strip_underscore=no | |
19 | ||
49df10b1 DM |
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. | |
24 | ||
25 | case "${canon}" in | |
1e02dc45 | 26 | alpha-*-netware*) bfd_name=alpha-nlm ;; |
49df10b1 | 27 | alpha-*-*) bfd_name=alphaosf ;; |
1fb83be6 KR |
28 | a29k-*-ebmon*) bfd_name=a29k-coff strip_underscore=yes ;; |
29 | a29k-*-udi*) bfd_name=a29k-coff strip_underscore=yes ;; | |
30 | a29k-*-aout*) bfd_name=a29k-aout strip_underscore=yes ;; | |
31 | a29k-*-coff*) bfd_name=a29k-coff strip_underscore=yes ;; | |
32 | a29k-*-sym1*) bfd_name=a29k-coff strip_underscore=yes ;; | |
33 | h8300*-*-*) bfd_name=h8300-coff strip_underscore=yes ;; | |
34 | h8500-*-*) bfd_name=h8500-coff strip_underscore=yes ;; | |
35 | sh-*-*) bfd_name=sh-coff strip_underscore=yes ;; | |
1e02dc45 | 36 | hppa*-*-*elf*) bfd_name=hppa-elf ;; |
49df10b1 DM |
37 | hppa*-*-bsd*) bfd_name=hppabsd ;; |
38 | hppa*-*-hpux*) bfd_name=hppahpux ;; | |
bdacad9c | 39 | hppa*-*-hiux*) bfd_name=hppahpux ;; |
1e02dc45 | 40 | hppa*-*-osf*) bfd_name=hppaosf ;; |
073e795f ILT |
41 | i[345]86-*-sysv4*) bfd_name=i386-elf ;; |
42 | i[345]86-*-unixware) bfd_name=i386-elf ;; | |
43 | i[345]86-*-solaris2*) bfd_name=i386-elf ;; | |
44 | i[345]86-*-sysv*) bfd_name=i386-coff ;; | |
45 | i[345]86-*-isc*) bfd_name=i386-coff ;; | |
46 | i[345]86-*-sco*) bfd_name=i386-coff ;; | |
47 | i[345]86-sequent-bsd*) bfd_name=i386-dynix strip_underscore=yes ;; | |
48 | i[345]86-*-bsd*) bfd_name=i386-bsd strip_underscore=yes ;; | |
49 | i[345]86-*-coff) bfd_name=i386-coff ;; | |
50 | i[345]86-*-aix*) bfd_name=i386-coff ;; | |
51 | i[345]86-*-elf) bfd_name=i386-elf ;; | |
52 | i[345]86-*-netbsd*) bfd_name=i386-netbsd strip_underscore=yes ;; | |
53 | i[345]86-*-netware*) bfd_name=i386-nlm ;; | |
54 | i[345]86-*-linux*) bfd_name=i386-linux strip_underscore=yes ;; | |
55 | i[345]86-*-lynxos*) bfd_name=i386-lynx ;; | |
56 | i[345]86-*-gnu*) bfd_name=i386-mach3 strip_underscore=yes ;; | |
57 | i[345]86-*-mach*) bfd_name=i386-mach3 strip_underscore=yes ;; | |
58 | i[345]86-*-osf1mk*) bfd_name=i386-mach3 strip_underscore=yes ;; | |
59 | i[345]86-*-os9k) bfd_name=i386-os9k ;; | |
60 | i[345]86-none-*) bfd_name=i386-coff ;; | |
1fb83be6 KR |
61 | i960-*-vxworks4*) bfd_name=i960-bout strip_underscore=yes ;; |
62 | i960-*-vxworks5.0) bfd_name=i960-bout strip_underscore=yes ;; | |
63 | i960-*-vxworks5.*) bfd_name=i960-coff strip_underscore=yes ;; | |
64 | i960-*-vxworks*) bfd_name=i960-bout strip_underscore=yes ;; | |
65 | i960-*-aout*) bfd_name=i960-bout strip_underscore=yes ;; | |
66 | i960-*-bout*) bfd_name=i960-bout strip_underscore=yes ;; | |
67 | i960-*-coff*) bfd_name=i960-coff strip_underscore=yes ;; | |
68 | i960-*-nindy*) bfd_name=i960-bout strip_underscore=yes ;; | |
127f8e91 | 69 | m68*-apollo-*) bfd_name=apollo ;; |
49df10b1 | 70 | m68*-bull-sysv*) bfd_name=u68k-coff ;; |
1fb83be6 KR |
71 | m68*-hp-bsd*) bfd_name=hp300bsd strip_underscore=yes ;; |
72 | m68*-*-aout*) bfd_name=m68k-0aout strip_underscore=yes ;; | |
ffa2b1df | 73 | m68*-*-coff*) bfd_name=m68k-coff ;; |
1fb83be6 | 74 | m68*-*-hpux*) bfd_name=hp300hpux strip_underscore=yes ;; |
bdacad9c | 75 | m68*-*-lynxos*) bfd_name=m68k-lynx ;; |
1fb83be6 KR |
76 | m68*-*-os68k*) bfd_name=m68k-aout strip_underscore=yes ;; |
77 | m68*-*-sunos*) bfd_name=m68k-aout strip_underscore=yes ;; | |
6198b7a1 | 78 | m68*-*-sysv4*) bfd_name=m68k-elf ;; |
1e02dc45 | 79 | m68*-*-sysv*) bfd_name=m68k-coff ;; |
1fb83be6 KR |
80 | m68*-*-vxworks*) bfd_name=m68k-aout strip_underscore=yes ;; |
81 | m68*-ericsson-*) bfd_name=m68k-ose strip_underscore=yes ;; | |
82 | m68*-netx-*) bfd_name=m68k-aout strip_underscore=yes ;; | |
1e02dc45 | 83 | |
073e795f | 84 | m88*-harris-cxux*) bfd_name=m88k-elf ;; |
1e02dc45 KR |
85 | # DGUX used to use COFF, but now (Jan 94) I believe it uses ELF by default. |
86 | m88*-*-dgux*) bfd_name=m88k-elf ;; | |
1fb83be6 KR |
87 | m88*-*-mach3*) bfd_name=m88k-mach3 ;; |
88 | m88*-*-sysv4*) bfd_name=m88k-elf ;; | |
89 | m88*-*-*) bfd_name=m88k-coff strip_underscore=yes ;; | |
1e02dc45 | 90 | |
6198b7a1 | 91 | mips*-big-*) bfd_name=bigmips ;; |
1fb83be6 KR |
92 | mips*-dec-bsd*) bfd_name=mipsdecbsd strip_underscore=yes ;; |
93 | mips*-dec-mach3*) bfd_name=mips-mach3 ;; | |
6198b7a1 JK |
94 | mips*-dec-*) bfd_name=decstation ;; |
95 | mips*el-*-ecoff*) bfd_name=decstation ;; | |
96 | mips*-*-ecoff*) bfd_name=bigmips ;; | |
5dac2dd5 | 97 | mips*-*-irix5*) bfd_name=mipsbelf ;; |
6198b7a1 | 98 | mips*-sgi-*) bfd_name=bigmips ;; |
1fb83be6 | 99 | mips*-*-mach3*) bfd_name=mips-mach3 ;; |
dbf13547 | 100 | mips*-*-sysv4*) bfd_name=mipsbelf ;; |
6198b7a1 JK |
101 | mips*-*-sysv*) bfd_name=riscos ;; |
102 | mips*-*-riscos*) bfd_name=riscos ;; | |
242f60e2 | 103 | mips*-*-bsd*) bfd_name=bigmips ;; # Sony News |
6198b7a1 JK |
104 | mips*el-*-elf*) bfd_name=mipslelf ;; |
105 | mips*-*-elf*) bfd_name=mipsbelf ;; | |
1fb83be6 | 106 | ns32k-pc532-mach*) bfd_name=pc532-mach strip_underscore=yes;; |
073e795f | 107 | ns32k-*-netbsd*) bfd_name=ns32k-nbsd strip_underscore=yes;; |
ce8f1f60 | 108 | powerpc-*-aix*) bfd_name=rs6000 ;; |
1fb83be6 | 109 | powerpc-*-elf*) bfd_name=ppc-elf ;; |
ce8f1f60 | 110 | powerpc-*-sysv4*) bfd_name=ppc-elf ;; |
ce8f1f60 | 111 | powerpc-*-netware*) bfd_name=ppc-nlm ;; |
49df10b1 | 112 | rs6000-*-*) bfd_name=rs6000 ;; |
6198b7a1 | 113 | sparc-*-lynxos*) bfd_name=sparc-lynx ;; |
49df10b1 DM |
114 | sparc-*-solaris2*) bfd_name=sparc-elf ;; |
115 | sparc-*-sysv4*) bfd_name=sparc-elf ;; | |
1fb83be6 | 116 | sparc64-*-aout*) bfd_name=sparc-aout strip_underscore=yes ;; |
5dac2dd5 | 117 | sparc64-*-elf*) bfd_name=sparc64-elf ;; |
4a703e06 | 118 | sparc-*-netware*) bfd_name=sparc-nlm ;; |
fff9ad37 | 119 | sparc*-*-coff*) bfd_name=sparc-coff ;; |
1fb83be6 KR |
120 | sparc*-*-*) bfd_name=sparc-aout strip_underscore=yes ;; |
121 | tahoe-*-*) bfd_name=tahoe strip_underscore=yes ;; | |
ffa2b1df | 122 | vax-*-vms*) bfd_name=vax-vms ;; |
1fb83be6 | 123 | vax-*-*) bfd_name=vax strip_underscore=yes ;; |
49df10b1 | 124 | we32k-*-*) bfd_name=we32k ;; |
1fb83be6 | 125 | z8k*-*-*) bfd_name=z8k-coff strip_underscore=yes ;; |
49df10b1 | 126 | |
1fb83be6 KR |
127 | *-*-aout*) bfd_name=${cpu}-aout strip_underscore=yes ;; |
128 | *-*-bsd*) bfd_name=${cpu}-aout strip_underscore=yes ;; | |
49df10b1 DM |
129 | *-*-netware*) bfd_name=${cpu}-nlm ;; |
130 | *-*-sysv4*) bfd_name=${cpu}-elf ;; | |
131 | *-*-solaris2*) bfd_name=${cpu}-elf ;; | |
1fb83be6 | 132 | *-*-vsta*) bfd_name=${cpu}-aout strip_underscore=yes ;; |
dbf13547 | 133 | *-*-go32*) bfd_name=${cpu}-coff ;; |
49df10b1 DM |
134 | *-*-sysv*) bfd_name=${cpu}-coff ;; |
135 | ||
1fb83be6 | 136 | *-*-aout64*) bfd_name=${cpu}-aout64 strip_underscore=yes ;; |
5dac2dd5 | 137 | *-*-elf64*) bfd_name=${cpu}-elf64 ;; |
49df10b1 | 138 | |
1fb83be6 KR |
139 | *-adobe-*) bfd_name=adobe strip_underscore=yes ;; |
140 | *-sony-*) bfd_name=news strip_underscore=yes ;; | |
49df10b1 DM |
141 | *-intel-*) bfd_name=${cpu}-coff ;; |
142 | *-stratus-*) bfd_name=${cpu}-elf ;; | |
143 | *-cbm-*) bfd_name=${cpu}-elf ;; | |
144 | *-ncr-*) bfd_name=${cpu}-elf ;; | |
145 | *-tandem-*) bfd_name=st2000 ;; | |
146 | ||
147 | # Allow targets that config.sub doesn't recognize, like "all". | |
148 | *) bfd_name=$canon ;; | |
149 | esac | |
150 | ||
1fb83be6 KR |
151 | if [ "x$2" = "x_" ]; then |
152 | echo $strip_underscore | |
153 | else | |
154 | echo $bfd_name | |
155 | fi |