diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | acconfig.h | 24 | ||||
-rw-r--r-- | bsd-login.h | 2 | ||||
-rw-r--r-- | channels.c | 42 | ||||
-rwxr-xr-x | config.guess | 951 | ||||
-rwxr-xr-x | config.sub | 955 | ||||
-rw-r--r-- | configure.in | 125 | ||||
-rw-r--r-- | includes.h | 3 | ||||
-rw-r--r-- | login.c | 49 | ||||
-rw-r--r-- | pty.c | 4 |
10 files changed, 2127 insertions, 36 deletions
@@ -1,3 +1,11 @@ | |||
1 | 19991221 | ||
2 | - Integration of large HPUX patch from Andre Lucas | ||
3 | <andre.lucas@dial.pipex.com>. Integrating it had a few other | ||
4 | benefits: | ||
5 | - Ability to disable shadow passwords at configure time | ||
6 | - Ability to disable lastlog support at configure time | ||
7 | - Support for IP address in $DISPLAY | ||
8 | |||
1 | 19991218 | 9 | 19991218 |
2 | - Redhat init script patch from Chun-Chung Chen | 10 | - Redhat init script patch from Chun-Chung Chen |
3 | <cjj@u.washington.edu> | 11 | <cjj@u.washington.edu> |
diff --git a/acconfig.h b/acconfig.h index bbb992816..b02abbafe 100644 --- a/acconfig.h +++ b/acconfig.h | |||
@@ -3,6 +3,9 @@ | |||
3 | /* SSL directory. */ | 3 | /* SSL directory. */ |
4 | #undef ssldir | 4 | #undef ssldir |
5 | 5 | ||
6 | /* Define if you want to disable lastlog support */ | ||
7 | #undef DISABLE_LASTLOG | ||
8 | |||
6 | /* Location of lastlog file */ | 9 | /* Location of lastlog file */ |
7 | #undef LASTLOG_LOCATION | 10 | #undef LASTLOG_LOCATION |
8 | 11 | ||
@@ -57,9 +60,18 @@ | |||
57 | /* Define if your libraries define daemon() */ | 60 | /* Define if your libraries define daemon() */ |
58 | #undef HAVE_DAEMON | 61 | #undef HAVE_DAEMON |
59 | 62 | ||
63 | /* Define if xauth is found in your path */ | ||
64 | #undef XAUTH_PATH | ||
65 | |||
60 | /* Define if you want to allow MD5 passwords */ | 66 | /* Define if you want to allow MD5 passwords */ |
61 | #undef HAVE_MD5_PASSWORDS | 67 | #undef HAVE_MD5_PASSWORDS |
62 | 68 | ||
69 | /* Define if you want to disable shadow passwords */ | ||
70 | #undef DISABLE_SHADOW | ||
71 | |||
72 | /* Define if you want have trusted HPUX */ | ||
73 | #undef HAVE_HPUX_TRUSTED_SYSTEM_PW | ||
74 | |||
63 | /* Define if you have an old version of PAM which takes only one argument */ | 75 | /* Define if you have an old version of PAM which takes only one argument */ |
64 | /* to pam_strerror */ | 76 | /* to pam_strerror */ |
65 | #undef HAVE_OLD_PAM | 77 | #undef HAVE_OLD_PAM |
@@ -76,8 +88,8 @@ | |||
76 | /* Define if you have /dev/ptc */ | 88 | /* Define if you have /dev/ptc */ |
77 | #undef HAVE_DEV_PTS_AND_PTC | 89 | #undef HAVE_DEV_PTS_AND_PTC |
78 | 90 | ||
79 | /* Path to xauth binary */ | 91 | /* Define if you need to use IP address instead of hostname in $DISPLAY */ |
80 | #undef XAUTH_PATH | 92 | #undef IPADDR_IN_DISPLAY |
81 | 93 | ||
82 | @BOTTOM@ | 94 | @BOTTOM@ |
83 | 95 | ||
@@ -233,6 +245,10 @@ enum | |||
233 | #ifndef _PATH_MAILDIR | 245 | #ifndef _PATH_MAILDIR |
234 | # ifdef MAILDIR | 246 | # ifdef MAILDIR |
235 | # define _PATH_MAILDIR MAILDIR | 247 | # define _PATH_MAILDIR MAILDIR |
248 | # else | ||
249 | # ifdef MAIL_DIRECTORY | ||
250 | # define _PATH_MAILDIR MAIL_DIRECTORY | ||
251 | # endif | ||
236 | # endif | 252 | # endif |
237 | #endif | 253 | #endif |
238 | 254 | ||
@@ -267,3 +283,7 @@ enum | |||
267 | #if !defined(__GNUC__) || (__GNUC__ < 2) | 283 | #if !defined(__GNUC__) || (__GNUC__ < 2) |
268 | # define __attribute__(x) | 284 | # define __attribute__(x) |
269 | #endif /* !defined(__GNUC__) || (__GNUC__ < 2) */ | 285 | #endif /* !defined(__GNUC__) || (__GNUC__ < 2) */ |
286 | |||
287 | #if !defined(HAVE_SETEUID) && defined(HAVE_SETREUID) | ||
288 | # define seteuid(a) setreuid(-1,a) | ||
289 | #endif /* !defined(HAVE_SETEUID) && defined(HAVE_SETREUID) */ | ||
diff --git a/bsd-login.h b/bsd-login.h index 26a8505b3..8891ae342 100644 --- a/bsd-login.h +++ b/bsd-login.h | |||
@@ -6,7 +6,7 @@ | |||
6 | 6 | ||
7 | #include <utmp.h> | 7 | #include <utmp.h> |
8 | 8 | ||
9 | void login(struct utmp *utp); | 9 | void login(struct UTMP_STR *utp); |
10 | 10 | ||
11 | #endif /* !HAVE_LOGIN */ | 11 | #endif /* !HAVE_LOGIN */ |
12 | 12 | ||
diff --git a/channels.c b/channels.c index 8d6d87ae3..539dff3a5 100644 --- a/channels.c +++ b/channels.c | |||
@@ -16,7 +16,7 @@ | |||
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include "includes.h" | 18 | #include "includes.h" |
19 | RCSID("$Id: channels.c,v 1.12 1999/12/13 23:47:15 damien Exp $"); | 19 | RCSID("$Id: channels.c,v 1.13 1999/12/21 00:18:08 damien Exp $"); |
20 | 20 | ||
21 | #include "ssh.h" | 21 | #include "ssh.h" |
22 | #include "packet.h" | 22 | #include "packet.h" |
@@ -1159,10 +1159,48 @@ x11_create_display_inet(int screen_number, int x11_display_offset) | |||
1159 | return NULL; | 1159 | return NULL; |
1160 | } | 1160 | } |
1161 | /* Set up a suitable value for the DISPLAY variable. */ | 1161 | /* Set up a suitable value for the DISPLAY variable. */ |
1162 | |||
1162 | if (gethostname(hostname, sizeof(hostname)) < 0) | 1163 | if (gethostname(hostname, sizeof(hostname)) < 0) |
1163 | fatal("gethostname: %.100s", strerror(errno)); | 1164 | fatal("gethostname: %.100s", strerror(errno)); |
1165 | |||
1166 | #ifdef IPADDR_IN_DISPLAY | ||
1167 | /* | ||
1168 | * HPUX detects the local hostname in the DISPLAY variable and tries | ||
1169 | * to set up a shared memory connection to the server, which it | ||
1170 | * incorrectly supposes to be local. | ||
1171 | * | ||
1172 | * The workaround - as used in later $$H and other programs - is | ||
1173 | * is to set display to the host's IP address. | ||
1174 | */ | ||
1175 | { | ||
1176 | struct hostent *he; | ||
1177 | struct in_addr my_addr; | ||
1178 | |||
1179 | he = gethostbyname(hostname); | ||
1180 | if (he == NULL) { | ||
1181 | error("[X11-broken-fwd-hostname-workaround] Could not get " | ||
1182 | "IP address for hostname %s.", hostname); | ||
1183 | |||
1184 | packet_send_debug("[X11-broken-fwd-hostname-workaround]" | ||
1185 | "Could not get IP address for hostname %s.", hostname); | ||
1186 | |||
1187 | shutdown(sock, SHUT_RDWR); | ||
1188 | close(sock); | ||
1189 | |||
1190 | return NULL; | ||
1191 | } | ||
1192 | |||
1193 | memcpy(&my_addr, he->h_addr_list[0], sizeof(struct in_addr)); | ||
1194 | |||
1195 | /* Set DISPLAY to <ip address>:screen.display */ | ||
1196 | snprintf(buf, sizeof(buf), "%.50s:%d.%d", inet_ntoa(my_addr), | ||
1197 | display_number, screen_number); | ||
1198 | } | ||
1199 | #else /* IPADDR_IN_DISPLAY */ | ||
1200 | /* Just set DISPLAY to hostname:screen.display */ | ||
1164 | snprintf(buf, sizeof buf, "%.400s:%d.%d", hostname, | 1201 | snprintf(buf, sizeof buf, "%.400s:%d.%d", hostname, |
1165 | display_number, screen_number); | 1202 | display_number, screen_number); |
1203 | #endif /* IPADDR_IN_DISPLAY */ | ||
1166 | 1204 | ||
1167 | /* Allocate a channel for the socket. */ | 1205 | /* Allocate a channel for the socket. */ |
1168 | (void) channel_allocate(SSH_CHANNEL_X11_LISTENER, sock, | 1206 | (void) channel_allocate(SSH_CHANNEL_X11_LISTENER, sock, |
diff --git a/config.guess b/config.guess new file mode 100755 index 000000000..2960d6e0d --- /dev/null +++ b/config.guess | |||
@@ -0,0 +1,951 @@ | |||
1 | #! /bin/sh | ||
2 | # Attempt to guess a canonical system name. | ||
3 | # Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc. | ||
4 | # | ||
5 | # This file is free software; you can redistribute it and/or modify it | ||
6 | # under the terms of the GNU General Public License as published by | ||
7 | # the Free Software Foundation; either version 2 of the License, or | ||
8 | # (at your option) any later version. | ||
9 | # | ||
10 | # This program is distributed in the hope that it will be useful, but | ||
11 | # WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | # General Public License for more details. | ||
14 | # | ||
15 | # You should have received a copy of the GNU General Public License | ||
16 | # along with this program; if not, write to the Free Software | ||
17 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
18 | # | ||
19 | # As a special exception to the GNU General Public License, if you | ||
20 | # distribute this file as part of a program that contains a | ||
21 | # configuration script generated by Autoconf, you may include it under | ||
22 | # the same distribution terms that you use for the rest of that program. | ||
23 | |||
24 | # Written by Per Bothner <bothner@cygnus.com>. | ||
25 | # The master version of this file is at the FSF in /home/gd/gnu/lib. | ||
26 | # | ||
27 | # This script attempts to guess a canonical system name similar to | ||
28 | # config.sub. If it succeeds, it prints the system name on stdout, and | ||
29 | # exits with 0. Otherwise, it exits with 1. | ||
30 | # | ||
31 | # The plan is that this can be called by configure scripts if you | ||
32 | # don't specify an explicit system type (host/target name). | ||
33 | # | ||
34 | # Only a few systems have been added to this list; please add others | ||
35 | # (but try to keep the structure clean). | ||
36 | # | ||
37 | |||
38 | # This is needed to find uname on a Pyramid OSx when run in the BSD universe. | ||
39 | # (ghazi@noc.rutgers.edu 8/24/94.) | ||
40 | if (test -f /.attbin/uname) >/dev/null 2>&1 ; then | ||
41 | PATH=$PATH:/.attbin ; export PATH | ||
42 | fi | ||
43 | |||
44 | UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown | ||
45 | UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown | ||
46 | UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown | ||
47 | UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown | ||
48 | |||
49 | trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15 | ||
50 | |||
51 | # Note: order is significant - the case branches are not exclusive. | ||
52 | |||
53 | case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in | ||
54 | alpha:OSF1:*:*) | ||
55 | if test $UNAME_RELEASE = "V4.0"; then | ||
56 | UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` | ||
57 | fi | ||
58 | # A Vn.n version is a released version. | ||
59 | # A Tn.n version is a released field test version. | ||
60 | # A Xn.n version is an unreleased experimental baselevel. | ||
61 | # 1.2 uses "1.2" for uname -r. | ||
62 | cat <<EOF >dummy.s | ||
63 | .globl main | ||
64 | .ent main | ||
65 | main: | ||
66 | .frame \$30,0,\$26,0 | ||
67 | .prologue 0 | ||
68 | .long 0x47e03d80 # implver $0 | ||
69 | lda \$2,259 | ||
70 | .long 0x47e20c21 # amask $2,$1 | ||
71 | srl \$1,8,\$2 | ||
72 | sll \$2,2,\$2 | ||
73 | sll \$0,3,\$0 | ||
74 | addl \$1,\$0,\$0 | ||
75 | addl \$2,\$0,\$0 | ||
76 | ret \$31,(\$26),1 | ||
77 | .end main | ||
78 | EOF | ||
79 | ${CC-cc} dummy.s -o dummy 2>/dev/null | ||
80 | if test "$?" = 0 ; then | ||
81 | ./dummy | ||
82 | case "$?" in | ||
83 | 7) | ||
84 | UNAME_MACHINE="alpha" | ||
85 | ;; | ||
86 | 15) | ||
87 | UNAME_MACHINE="alphaev5" | ||
88 | ;; | ||
89 | 14) | ||
90 | UNAME_MACHINE="alphaev56" | ||
91 | ;; | ||
92 | 10) | ||
93 | UNAME_MACHINE="alphapca56" | ||
94 | ;; | ||
95 | 16) | ||
96 | UNAME_MACHINE="alphaev6" | ||
97 | ;; | ||
98 | esac | ||
99 | fi | ||
100 | rm -f dummy.s dummy | ||
101 | echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]` | ||
102 | exit 0 ;; | ||
103 | 21064:Windows_NT:50:3) | ||
104 | echo alpha-dec-winnt3.5 | ||
105 | exit 0 ;; | ||
106 | Amiga*:UNIX_System_V:4.0:*) | ||
107 | echo m68k-cbm-sysv4 | ||
108 | exit 0;; | ||
109 | amiga:NetBSD:*:*) | ||
110 | echo m68k-cbm-netbsd${UNAME_RELEASE} | ||
111 | exit 0 ;; | ||
112 | amiga:OpenBSD:*:*) | ||
113 | echo m68k-unknown-openbsd${UNAME_RELEASE} | ||
114 | exit 0 ;; | ||
115 | *:[Aa]miga[Oo][Ss]:*:*) | ||
116 | echo ${UNAME_MACHINE}-unknown-amigaos | ||
117 | exit 0 ;; | ||
118 | arc64:OpenBSD:*:*) | ||
119 | echo mips64el-unknown-openbsd${UNAME_RELEASE} | ||
120 | exit 0 ;; | ||
121 | arc:OpenBSD:*:*) | ||
122 | echo mipsel-unknown-openbsd${UNAME_RELEASE} | ||
123 | exit 0 ;; | ||
124 | hkmips:OpenBSD:*:*) | ||
125 | echo mips-unknown-openbsd${UNAME_RELEASE} | ||
126 | exit 0 ;; | ||
127 | pmax:OpenBSD:*:*) | ||
128 | echo mipsel-unknown-openbsd${UNAME_RELEASE} | ||
129 | exit 0 ;; | ||
130 | sgi:OpenBSD:*:*) | ||
131 | echo mips-unknown-openbsd${UNAME_RELEASE} | ||
132 | exit 0 ;; | ||
133 | wgrisc:OpenBSD:*:*) | ||
134 | echo mipsel-unknown-openbsd${UNAME_RELEASE} | ||
135 | exit 0 ;; | ||
136 | arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) | ||
137 | echo arm-acorn-riscix${UNAME_RELEASE} | ||
138 | exit 0;; | ||
139 | arm32:NetBSD:*:*) | ||
140 | echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` | ||
141 | exit 0 ;; | ||
142 | SR2?01:HI-UX/MPP:*:*) | ||
143 | echo hppa1.1-hitachi-hiuxmpp | ||
144 | exit 0;; | ||
145 | Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*) | ||
146 | # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. | ||
147 | if test "`(/bin/universe) 2>/dev/null`" = att ; then | ||
148 | echo pyramid-pyramid-sysv3 | ||
149 | else | ||
150 | echo pyramid-pyramid-bsd | ||
151 | fi | ||
152 | exit 0 ;; | ||
153 | NILE:*:*:dcosx) | ||
154 | echo pyramid-pyramid-svr4 | ||
155 | exit 0 ;; | ||
156 | sun4H:SunOS:5.*:*) | ||
157 | echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | ||
158 | exit 0 ;; | ||
159 | sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) | ||
160 | echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | ||
161 | exit 0 ;; | ||
162 | i86pc:SunOS:5.*:*) | ||
163 | echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | ||
164 | exit 0 ;; | ||
165 | sun4*:SunOS:6*:*) | ||
166 | # According to config.sub, this is the proper way to canonicalize | ||
167 | # SunOS6. Hard to guess exactly what SunOS6 will be like, but | ||
168 | # it's likely to be more like Solaris than SunOS4. | ||
169 | echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | ||
170 | exit 0 ;; | ||
171 | sun4*:SunOS:*:*) | ||
172 | case "`/usr/bin/arch -k`" in | ||
173 | Series*|S4*) | ||
174 | UNAME_RELEASE=`uname -v` | ||
175 | ;; | ||
176 | esac | ||
177 | # Japanese Language versions have a version number like `4.1.3-JL'. | ||
178 | echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` | ||
179 | exit 0 ;; | ||
180 | sun3*:SunOS:*:*) | ||
181 | echo m68k-sun-sunos${UNAME_RELEASE} | ||
182 | exit 0 ;; | ||
183 | sun*:*:4.2BSD:*) | ||
184 | UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` | ||
185 | test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 | ||
186 | case "`/bin/arch`" in | ||
187 | sun3) | ||
188 | echo m68k-sun-sunos${UNAME_RELEASE} | ||
189 | ;; | ||
190 | sun4) | ||
191 | echo sparc-sun-sunos${UNAME_RELEASE} | ||
192 | ;; | ||
193 | esac | ||
194 | exit 0 ;; | ||
195 | aushp:SunOS:*:*) | ||
196 | echo sparc-auspex-sunos${UNAME_RELEASE} | ||
197 | exit 0 ;; | ||
198 | atari*:NetBSD:*:*) | ||
199 | echo m68k-atari-netbsd${UNAME_RELEASE} | ||
200 | exit 0 ;; | ||
201 | atari*:OpenBSD:*:*) | ||
202 | echo m68k-unknown-openbsd${UNAME_RELEASE} | ||
203 | exit 0 ;; | ||
204 | sun3*:NetBSD:*:*) | ||
205 | echo m68k-sun-netbsd${UNAME_RELEASE} | ||
206 | exit 0 ;; | ||
207 | sun3*:OpenBSD:*:*) | ||
208 | echo m68k-unknown-openbsd${UNAME_RELEASE} | ||
209 | exit 0 ;; | ||
210 | mac68k:NetBSD:*:*) | ||
211 | echo m68k-apple-netbsd${UNAME_RELEASE} | ||
212 | exit 0 ;; | ||
213 | mac68k:OpenBSD:*:*) | ||
214 | echo m68k-unknown-openbsd${UNAME_RELEASE} | ||
215 | exit 0 ;; | ||
216 | mvme68k:OpenBSD:*:*) | ||
217 | echo m68k-unknown-openbsd${UNAME_RELEASE} | ||
218 | exit 0 ;; | ||
219 | mvme88k:OpenBSD:*:*) | ||
220 | echo m88k-unknown-openbsd${UNAME_RELEASE} | ||
221 | exit 0 ;; | ||
222 | powerpc:machten:*:*) | ||
223 | echo powerpc-apple-machten${UNAME_RELEASE} | ||
224 | exit 0 ;; | ||
225 | macppc:NetBSD:*:*) | ||
226 | echo powerpc-apple-netbsd${UNAME_RELEASE} | ||
227 | exit 0 ;; | ||
228 | RISC*:Mach:*:*) | ||
229 | echo mips-dec-mach_bsd4.3 | ||
230 | exit 0 ;; | ||
231 | RISC*:ULTRIX:*:*) | ||
232 | echo mips-dec-ultrix${UNAME_RELEASE} | ||
233 | exit 0 ;; | ||
234 | VAX*:ULTRIX*:*:*) | ||
235 | echo vax-dec-ultrix${UNAME_RELEASE} | ||
236 | exit 0 ;; | ||
237 | 2020:CLIX:*:*) | ||
238 | echo clipper-intergraph-clix${UNAME_RELEASE} | ||
239 | exit 0 ;; | ||
240 | mips:*:*:UMIPS | mips:*:*:RISCos) | ||
241 | sed 's/^ //' << EOF >dummy.c | ||
242 | int main (argc, argv) int argc; char **argv; { | ||
243 | #if defined (host_mips) && defined (MIPSEB) | ||
244 | #if defined (SYSTYPE_SYSV) | ||
245 | printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); | ||
246 | #endif | ||
247 | #if defined (SYSTYPE_SVR4) | ||
248 | printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); | ||
249 | #endif | ||
250 | #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) | ||
251 | printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); | ||
252 | #endif | ||
253 | #endif | ||
254 | exit (-1); | ||
255 | } | ||
256 | EOF | ||
257 | ${CC-cc} dummy.c -o dummy \ | ||
258 | && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ | ||
259 | && rm dummy.c dummy && exit 0 | ||
260 | rm -f dummy.c dummy | ||
261 | echo mips-mips-riscos${UNAME_RELEASE} | ||
262 | exit 0 ;; | ||
263 | Night_Hawk:Power_UNIX:*:*) | ||
264 | echo powerpc-harris-powerunix | ||
265 | exit 0 ;; | ||
266 | m88k:CX/UX:7*:*) | ||
267 | echo m88k-harris-cxux7 | ||
268 | exit 0 ;; | ||
269 | m88k:*:4*:R4*) | ||
270 | echo m88k-motorola-sysv4 | ||
271 | exit 0 ;; | ||
272 | m88k:*:3*:R3*) | ||
273 | echo m88k-motorola-sysv3 | ||
274 | exit 0 ;; | ||
275 | AViiON:dgux:*:*) | ||
276 | # DG/UX returns AViiON for all architectures | ||
277 | UNAME_PROCESSOR=`/usr/bin/uname -p` | ||
278 | if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then | ||
279 | if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \ | ||
280 | -o ${TARGET_BINARY_INTERFACE}x = x ] ; then | ||
281 | echo m88k-dg-dgux${UNAME_RELEASE} | ||
282 | else | ||
283 | echo m88k-dg-dguxbcs${UNAME_RELEASE} | ||
284 | fi | ||
285 | else echo i586-dg-dgux${UNAME_RELEASE} | ||
286 | fi | ||
287 | exit 0 ;; | ||
288 | M88*:DolphinOS:*:*) # DolphinOS (SVR3) | ||
289 | echo m88k-dolphin-sysv3 | ||
290 | exit 0 ;; | ||
291 | M88*:*:R3*:*) | ||
292 | # Delta 88k system running SVR3 | ||
293 | echo m88k-motorola-sysv3 | ||
294 | exit 0 ;; | ||
295 | XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) | ||
296 | echo m88k-tektronix-sysv3 | ||
297 | exit 0 ;; | ||
298 | Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) | ||
299 | echo m68k-tektronix-bsd | ||
300 | exit 0 ;; | ||
301 | *:IRIX*:*:*) | ||
302 | echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` | ||
303 | exit 0 ;; | ||
304 | ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. | ||
305 | echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id | ||
306 | exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' | ||
307 | i?86:AIX:*:*) | ||
308 | echo i386-ibm-aix | ||
309 | exit 0 ;; | ||
310 | *:AIX:2:3) | ||
311 | if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then | ||
312 | sed 's/^ //' << EOF >dummy.c | ||
313 | #include <sys/systemcfg.h> | ||
314 | |||
315 | main() | ||
316 | { | ||
317 | if (!__power_pc()) | ||
318 | exit(1); | ||
319 | puts("powerpc-ibm-aix3.2.5"); | ||
320 | exit(0); | ||
321 | } | ||
322 | EOF | ||
323 | ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 | ||
324 | rm -f dummy.c dummy | ||
325 | echo rs6000-ibm-aix3.2.5 | ||
326 | elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then | ||
327 | echo rs6000-ibm-aix3.2.4 | ||
328 | else | ||
329 | echo rs6000-ibm-aix3.2 | ||
330 | fi | ||
331 | exit 0 ;; | ||
332 | *:AIX:*:4) | ||
333 | IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` | ||
334 | if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then | ||
335 | IBM_ARCH=rs6000 | ||
336 | else | ||
337 | IBM_ARCH=powerpc | ||
338 | fi | ||
339 | if [ -x /usr/bin/oslevel ] ; then | ||
340 | IBM_REV=`/usr/bin/oslevel` | ||
341 | else | ||
342 | IBM_REV=4.${UNAME_RELEASE} | ||
343 | fi | ||
344 | echo ${IBM_ARCH}-ibm-aix${IBM_REV} | ||
345 | exit 0 ;; | ||
346 | *:AIX:*:*) | ||
347 | echo rs6000-ibm-aix | ||
348 | exit 0 ;; | ||
349 | ibmrt:4.4BSD:*|romp-ibm:BSD:*) | ||
350 | echo romp-ibm-bsd4.4 | ||
351 | exit 0 ;; | ||
352 | ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and | ||
353 | echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to | ||
354 | exit 0 ;; # report: romp-ibm BSD 4.3 | ||
355 | *:BOSX:*:*) | ||
356 | echo rs6000-bull-bosx | ||
357 | exit 0 ;; | ||
358 | DPX/2?00:B.O.S.:*:*) | ||
359 | echo m68k-bull-sysv3 | ||
360 | exit 0 ;; | ||
361 | 9000/[34]??:4.3bsd:1.*:*) | ||
362 | echo m68k-hp-bsd | ||
363 | exit 0 ;; | ||
364 | hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) | ||
365 | echo m68k-hp-bsd4.4 | ||
366 | exit 0 ;; | ||
367 | 9000/[34678]??:HP-UX:*:*) | ||
368 | case "${UNAME_MACHINE}" in | ||
369 | 9000/31? ) HP_ARCH=m68000 ;; | ||
370 | 9000/[34]?? ) HP_ARCH=m68k ;; | ||
371 | 9000/6?? | 9000/7?? | 9000/80[24] | 9000/8?[13679] | 9000/892 ) | ||
372 | sed 's/^ //' << EOF >dummy.c | ||
373 | #include <stdlib.h> | ||
374 | #include <unistd.h> | ||
375 | |||
376 | int main () | ||
377 | { | ||
378 | #if defined(_SC_KERNEL_BITS) | ||
379 | long bits = sysconf(_SC_KERNEL_BITS); | ||
380 | #endif | ||
381 | long cpu = sysconf (_SC_CPU_VERSION); | ||
382 | |||
383 | switch (cpu) | ||
384 | { | ||
385 | case CPU_PA_RISC1_0: puts ("hppa1.0"); break; | ||
386 | case CPU_PA_RISC1_1: puts ("hppa1.1"); break; | ||
387 | case CPU_PA_RISC2_0: | ||
388 | #if defined(_SC_KERNEL_BITS) | ||
389 | switch (bits) | ||
390 | { | ||
391 | case 64: puts ("hppa2.0w"); break; | ||
392 | case 32: puts ("hppa2.0n"); break; | ||
393 | default: puts ("hppa2.0"); break; | ||
394 | } break; | ||
395 | #else /* !defined(_SC_KERNEL_BITS) */ | ||
396 | puts ("hppa2.0"); break; | ||
397 | #endif | ||
398 | default: puts ("hppa1.0"); break; | ||
399 | } | ||
400 | exit (0); | ||
401 | } | ||
402 | EOF | ||
403 | (${CC-cc} dummy.c -o dummy 2>/dev/null ) && HP_ARCH=`./dummy` | ||
404 | rm -f dummy.c dummy | ||
405 | esac | ||
406 | HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` | ||
407 | echo ${HP_ARCH}-hp-hpux${HPUX_REV} | ||
408 | exit 0 ;; | ||
409 | 3050*:HI-UX:*:*) | ||
410 | sed 's/^ //' << EOF >dummy.c | ||
411 | #include <unistd.h> | ||
412 | int | ||
413 | main () | ||
414 | { | ||
415 | long cpu = sysconf (_SC_CPU_VERSION); | ||
416 | /* The order matters, because CPU_IS_HP_MC68K erroneously returns | ||
417 | true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct | ||
418 | results, however. */ | ||
419 | if (CPU_IS_PA_RISC (cpu)) | ||
420 | { | ||
421 | switch (cpu) | ||
422 | { | ||
423 | case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; | ||
424 | case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; | ||
425 | case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; | ||
426 | default: puts ("hppa-hitachi-hiuxwe2"); break; | ||
427 | } | ||
428 | } | ||
429 | else if (CPU_IS_HP_MC68K (cpu)) | ||
430 | puts ("m68k-hitachi-hiuxwe2"); | ||
431 | else puts ("unknown-hitachi-hiuxwe2"); | ||
432 | exit (0); | ||
433 | } | ||
434 | EOF | ||
435 | ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 | ||
436 | rm -f dummy.c dummy | ||
437 | echo unknown-hitachi-hiuxwe2 | ||
438 | exit 0 ;; | ||
439 | 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) | ||
440 | echo hppa1.1-hp-bsd | ||
441 | exit 0 ;; | ||
442 | 9000/8??:4.3bsd:*:*) | ||
443 | echo hppa1.0-hp-bsd | ||
444 | exit 0 ;; | ||
445 | hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) | ||
446 | echo hppa1.1-hp-osf | ||
447 | exit 0 ;; | ||
448 | hp8??:OSF1:*:*) | ||
449 | echo hppa1.0-hp-osf | ||
450 | exit 0 ;; | ||
451 | i?86:OSF1:*:*) | ||
452 | if [ -x /usr/sbin/sysversion ] ; then | ||
453 | echo ${UNAME_MACHINE}-unknown-osf1mk | ||
454 | else | ||
455 | echo ${UNAME_MACHINE}-unknown-osf1 | ||
456 | fi | ||
457 | exit 0 ;; | ||
458 | parisc*:Lites*:*:*) | ||
459 | echo hppa1.1-hp-lites | ||
460 | exit 0 ;; | ||
461 | C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) | ||
462 | echo c1-convex-bsd | ||
463 | exit 0 ;; | ||
464 | C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) | ||
465 | if getsysinfo -f scalar_acc | ||
466 | then echo c32-convex-bsd | ||
467 | else echo c2-convex-bsd | ||
468 | fi | ||
469 | exit 0 ;; | ||
470 | C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) | ||
471 | echo c34-convex-bsd | ||
472 | exit 0 ;; | ||
473 | C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) | ||
474 | echo c38-convex-bsd | ||
475 | exit 0 ;; | ||
476 | C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) | ||
477 | echo c4-convex-bsd | ||
478 | exit 0 ;; | ||
479 | CRAY*X-MP:*:*:*) | ||
480 | echo xmp-cray-unicos | ||
481 | exit 0 ;; | ||
482 | CRAY*Y-MP:*:*:*) | ||
483 | echo ymp-cray-unicos${UNAME_RELEASE} | ||
484 | exit 0 ;; | ||
485 | CRAY*[A-Z]90:*:*:*) | ||
486 | echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | ||
487 | | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ | ||
488 | -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ | ||
489 | exit 0 ;; | ||
490 | CRAY*TS:*:*:*) | ||
491 | echo t90-cray-unicos${UNAME_RELEASE} | ||
492 | exit 0 ;; | ||
493 | CRAY-2:*:*:*) | ||
494 | echo cray2-cray-unicos | ||
495 | exit 0 ;; | ||
496 | F300:UNIX_System_V:*:*) | ||
497 | FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'` | ||
498 | FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` | ||
499 | echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" | ||
500 | exit 0 ;; | ||
501 | F301:UNIX_System_V:*:*) | ||
502 | echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` | ||
503 | exit 0 ;; | ||
504 | hp3[0-9][05]:NetBSD:*:*) | ||
505 | echo m68k-hp-netbsd${UNAME_RELEASE} | ||
506 | exit 0 ;; | ||
507 | hp300:OpenBSD:*:*) | ||
508 | echo m68k-unknown-openbsd${UNAME_RELEASE} | ||
509 | exit 0 ;; | ||
510 | sparc*:BSD/OS:*:*) | ||
511 | echo sparc-unknown-bsdi${UNAME_RELEASE} | ||
512 | exit 0 ;; | ||
513 | i?86:BSD/386:*:* | *:BSD/OS:*:*) | ||
514 | echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} | ||
515 | exit 0 ;; | ||
516 | *:FreeBSD:*:*) | ||
517 | echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` | ||
518 | exit 0 ;; | ||
519 | *:NetBSD:*:*) | ||
520 | echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` | ||
521 | exit 0 ;; | ||
522 | *:OpenBSD:*:*) | ||
523 | echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` | ||
524 | exit 0 ;; | ||
525 | i*:CYGWIN*:*) | ||
526 | echo ${UNAME_MACHINE}-pc-cygwin | ||
527 | exit 0 ;; | ||
528 | i*:MINGW*:*) | ||
529 | echo ${UNAME_MACHINE}-pc-mingw32 | ||
530 | exit 0 ;; | ||
531 | p*:CYGWIN*:*) | ||
532 | echo powerpcle-unknown-cygwin | ||
533 | exit 0 ;; | ||
534 | prep*:SunOS:5.*:*) | ||
535 | echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | ||
536 | exit 0 ;; | ||
537 | *:GNU:*:*) | ||
538 | echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` | ||
539 | exit 0 ;; | ||
540 | *:Linux:*:*) | ||
541 | # uname on the ARM produces all sorts of strangeness, and we need to | ||
542 | # filter it out. | ||
543 | case "$UNAME_MACHINE" in | ||
544 | arm* | sa110*) UNAME_MACHINE="arm" ;; | ||
545 | esac | ||
546 | |||
547 | # The BFD linker knows what the default object file format is, so | ||
548 | # first see if it will tell us. | ||
549 | ld_help_string=`ld --help 2>&1` | ||
550 | ld_supported_emulations=`echo $ld_help_string \ | ||
551 | | sed -ne '/supported emulations:/!d | ||
552 | s/[ ][ ]*/ /g | ||
553 | s/.*supported emulations: *// | ||
554 | s/ .*// | ||
555 | p'` | ||
556 | case "$ld_supported_emulations" in | ||
557 | i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;; | ||
558 | i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;; | ||
559 | sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; | ||
560 | armlinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; | ||
561 | m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; | ||
562 | elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;; | ||
563 | esac | ||
564 | |||
565 | if test "${UNAME_MACHINE}" = "alpha" ; then | ||
566 | sed 's/^ //' <<EOF >dummy.s | ||
567 | .globl main | ||
568 | .ent main | ||
569 | main: | ||
570 | .frame \$30,0,\$26,0 | ||
571 | .prologue 0 | ||
572 | .long 0x47e03d80 # implver $0 | ||
573 | lda \$2,259 | ||
574 | .long 0x47e20c21 # amask $2,$1 | ||
575 | srl \$1,8,\$2 | ||
576 | sll \$2,2,\$2 | ||
577 | sll \$0,3,\$0 | ||
578 | addl \$1,\$0,\$0 | ||
579 | addl \$2,\$0,\$0 | ||
580 | ret \$31,(\$26),1 | ||
581 | .end main | ||
582 | EOF | ||
583 | LIBC="" | ||
584 | ${CC-cc} dummy.s -o dummy 2>/dev/null | ||
585 | if test "$?" = 0 ; then | ||
586 | ./dummy | ||
587 | case "$?" in | ||
588 | 7) | ||
589 | UNAME_MACHINE="alpha" | ||
590 | ;; | ||
591 | 15) | ||
592 | UNAME_MACHINE="alphaev5" | ||
593 | ;; | ||
594 | 14) | ||
595 | UNAME_MACHINE="alphaev56" | ||
596 | ;; | ||
597 | 10) | ||
598 | UNAME_MACHINE="alphapca56" | ||
599 | ;; | ||
600 | 16) | ||
601 | UNAME_MACHINE="alphaev6" | ||
602 | ;; | ||
603 | esac | ||
604 | |||
605 | objdump --private-headers dummy | \ | ||
606 | grep ld.so.1 > /dev/null | ||
607 | if test "$?" = 0 ; then | ||
608 | LIBC="libc1" | ||
609 | fi | ||
610 | fi | ||
611 | rm -f dummy.s dummy | ||
612 | echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 | ||
613 | elif test "${UNAME_MACHINE}" = "mips" ; then | ||
614 | cat >dummy.c <<EOF | ||
615 | main(argc, argv) | ||
616 | int argc; | ||
617 | char *argv[]; | ||
618 | { | ||
619 | #ifdef __MIPSEB__ | ||
620 | printf ("%s-unknown-linux-gnu\n", argv[1]); | ||
621 | #endif | ||
622 | #ifdef __MIPSEL__ | ||
623 | printf ("%sel-unknown-linux-gnu\n", argv[1]); | ||
624 | #endif | ||
625 | return 0; | ||
626 | } | ||
627 | EOF | ||
628 | ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 | ||
629 | rm -f dummy.c dummy | ||
630 | else | ||
631 | # Either a pre-BFD a.out linker (linux-gnuoldld) | ||
632 | # or one that does not give us useful --help. | ||
633 | # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. | ||
634 | # If ld does not provide *any* "supported emulations:" | ||
635 | # that means it is gnuoldld. | ||
636 | echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" | ||
637 | test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 | ||
638 | |||
639 | case "${UNAME_MACHINE}" in | ||
640 | i?86) | ||
641 | VENDOR=pc; | ||
642 | ;; | ||
643 | *) | ||
644 | VENDOR=unknown; | ||
645 | ;; | ||
646 | esac | ||
647 | # Determine whether the default compiler is a.out or elf | ||
648 | cat >dummy.c <<EOF | ||
649 | #include <features.h> | ||
650 | main(argc, argv) | ||
651 | int argc; | ||
652 | char *argv[]; | ||
653 | { | ||
654 | #ifdef __ELF__ | ||
655 | # ifdef __GLIBC__ | ||
656 | # if __GLIBC__ >= 2 | ||
657 | printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); | ||
658 | # else | ||
659 | printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); | ||
660 | # endif | ||
661 | # else | ||
662 | printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); | ||
663 | # endif | ||
664 | #else | ||
665 | printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); | ||
666 | #endif | ||
667 | return 0; | ||
668 | } | ||
669 | EOF | ||
670 | ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 | ||
671 | rm -f dummy.c dummy | ||
672 | fi ;; | ||
673 | # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions | ||
674 | # are messed up and put the nodename in both sysname and nodename. | ||
675 | i?86:DYNIX/ptx:4*:*) | ||
676 | echo i386-sequent-sysv4 | ||
677 | exit 0 ;; | ||
678 | i?86:UNIX_SV:4.2MP:2.*) | ||
679 | # Unixware is an offshoot of SVR4, but it has its own version | ||
680 | # number series starting with 2... | ||
681 | # I am not positive that other SVR4 systems won't match this, | ||
682 | # I just have to hope. -- rms. | ||
683 | # Use sysv4.2uw... so that sysv4* matches it. | ||
684 | echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} | ||
685 | exit 0 ;; | ||
686 | i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) | ||
687 | if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then | ||
688 | echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} | ||
689 | else | ||
690 | echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} | ||
691 | fi | ||
692 | exit 0 ;; | ||
693 | i?86:*:3.2:*) | ||
694 | if test -f /usr/options/cb.name; then | ||
695 | UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` | ||
696 | echo ${UNAME_MACHINE}-pc-isc$UNAME_REL | ||
697 | elif /bin/uname -X 2>/dev/null >/dev/null ; then | ||
698 | UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` | ||
699 | (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 | ||
700 | (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ | ||
701 | && UNAME_MACHINE=i586 | ||
702 | echo ${UNAME_MACHINE}-pc-sco$UNAME_REL | ||
703 | else | ||
704 | echo ${UNAME_MACHINE}-pc-sysv32 | ||
705 | fi | ||
706 | exit 0 ;; | ||
707 | i?86:UnixWare:*:*) | ||
708 | if /bin/uname -X 2>/dev/null >/dev/null ; then | ||
709 | (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ | ||
710 | && UNAME_MACHINE=i586 | ||
711 | fi | ||
712 | echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION} | ||
713 | exit 0 ;; | ||
714 | pc:*:*:*) | ||
715 | # uname -m prints for DJGPP always 'pc', but it prints nothing about | ||
716 | # the processor, so we play safe by assuming i386. | ||
717 | echo i386-pc-msdosdjgpp | ||
718 | exit 0 ;; | ||
719 | Intel:Mach:3*:*) | ||
720 | echo i386-pc-mach3 | ||
721 | exit 0 ;; | ||
722 | paragon:*:*:*) | ||
723 | echo i860-intel-osf1 | ||
724 | exit 0 ;; | ||
725 | i860:*:4.*:*) # i860-SVR4 | ||
726 | if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then | ||
727 | echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 | ||
728 | else # Add other i860-SVR4 vendors below as they are discovered. | ||
729 | echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 | ||
730 | fi | ||
731 | exit 0 ;; | ||
732 | mini*:CTIX:SYS*5:*) | ||
733 | # "miniframe" | ||
734 | echo m68010-convergent-sysv | ||
735 | exit 0 ;; | ||
736 | M68*:*:R3V[567]*:*) | ||
737 | test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; | ||
738 | 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) | ||
739 | OS_REL='' | ||
740 | test -r /etc/.relid \ | ||
741 | && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` | ||
742 | /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ | ||
743 | && echo i486-ncr-sysv4.3${OS_REL} && exit 0 | ||
744 | /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ | ||
745 | && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; | ||
746 | 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) | ||
747 | /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ | ||
748 | && echo i486-ncr-sysv4 && exit 0 ;; | ||
749 | m68*:LynxOS:2.*:*) | ||
750 | echo m68k-unknown-lynxos${UNAME_RELEASE} | ||
751 | exit 0 ;; | ||
752 | mc68030:UNIX_System_V:4.*:*) | ||
753 | echo m68k-atari-sysv4 | ||
754 | exit 0 ;; | ||
755 | i?86:LynxOS:2.*:*) | ||
756 | echo i386-unknown-lynxos${UNAME_RELEASE} | ||
757 | exit 0 ;; | ||
758 | TSUNAMI:LynxOS:2.*:*) | ||
759 | echo sparc-unknown-lynxos${UNAME_RELEASE} | ||
760 | exit 0 ;; | ||
761 | rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) | ||
762 | echo rs6000-unknown-lynxos${UNAME_RELEASE} | ||
763 | exit 0 ;; | ||
764 | SM[BE]S:UNIX_SV:*:*) | ||
765 | echo mips-dde-sysv${UNAME_RELEASE} | ||
766 | exit 0 ;; | ||
767 | RM*:SINIX-*:*:*) | ||
768 | echo mips-sni-sysv4 | ||
769 | exit 0 ;; | ||
770 | *:SINIX-*:*:*) | ||
771 | if uname -p 2>/dev/null >/dev/null ; then | ||
772 | UNAME_MACHINE=`(uname -p) 2>/dev/null` | ||
773 | echo ${UNAME_MACHINE}-sni-sysv4 | ||
774 | else | ||
775 | echo ns32k-sni-sysv | ||
776 | fi | ||
777 | exit 0 ;; | ||
778 | PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort | ||
779 | # says <Richard.M.Bartel@ccMail.Census.GOV> | ||
780 | echo i586-unisys-sysv4 | ||
781 | exit 0 ;; | ||
782 | *:UNIX_System_V:4*:FTX*) | ||
783 | # From Gerald Hewes <hewes@openmarket.com>. | ||
784 | # How about differentiating between stratus architectures? -djm | ||
785 | echo hppa1.1-stratus-sysv4 | ||
786 | exit 0 ;; | ||
787 | *:*:*:FTX*) | ||
788 | # From seanf@swdc.stratus.com. | ||
789 | echo i860-stratus-sysv4 | ||
790 | exit 0 ;; | ||
791 | mc68*:A/UX:*:*) | ||
792 | echo m68k-apple-aux${UNAME_RELEASE} | ||
793 | exit 0 ;; | ||
794 | news*:NEWS-OS:*:6*) | ||
795 | echo mips-sony-newsos6 | ||
796 | exit 0 ;; | ||
797 | R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*) | ||
798 | if [ -d /usr/nec ]; then | ||
799 | echo mips-nec-sysv${UNAME_RELEASE} | ||
800 | else | ||
801 | echo mips-unknown-sysv${UNAME_RELEASE} | ||
802 | fi | ||
803 | exit 0 ;; | ||
804 | BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. | ||
805 | echo powerpc-be-beos | ||
806 | exit 0 ;; | ||
807 | BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. | ||
808 | echo powerpc-apple-beos | ||
809 | exit 0 ;; | ||
810 | BePC:BeOS:*:*) # BeOS running on Intel PC compatible. | ||
811 | echo i586-pc-beos | ||
812 | exit 0 ;; | ||
813 | esac | ||
814 | |||
815 | #echo '(No uname command or uname output not recognized.)' 1>&2 | ||
816 | #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 | ||
817 | |||
818 | cat >dummy.c <<EOF | ||
819 | #ifdef _SEQUENT_ | ||
820 | # include <sys/types.h> | ||
821 | # include <sys/utsname.h> | ||
822 | #endif | ||
823 | main () | ||
824 | { | ||
825 | #if defined (sony) | ||
826 | #if defined (MIPSEB) | ||
827 | /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, | ||
828 | I don't know.... */ | ||
829 | printf ("mips-sony-bsd\n"); exit (0); | ||
830 | #else | ||
831 | #include <sys/param.h> | ||
832 | printf ("m68k-sony-newsos%s\n", | ||
833 | #ifdef NEWSOS4 | ||
834 | "4" | ||
835 | #else | ||
836 | "" | ||
837 | #endif | ||
838 | ); exit (0); | ||
839 | #endif | ||
840 | #endif | ||
841 | |||
842 | #if defined (__arm) && defined (__acorn) && defined (__unix) | ||
843 | printf ("arm-acorn-riscix"); exit (0); | ||
844 | #endif | ||
845 | |||
846 | #if defined (hp300) && !defined (hpux) | ||
847 | printf ("m68k-hp-bsd\n"); exit (0); | ||
848 | #endif | ||
849 | |||
850 | #if defined (NeXT) | ||
851 | #if !defined (__ARCHITECTURE__) | ||
852 | #define __ARCHITECTURE__ "m68k" | ||
853 | #endif | ||
854 | int version; | ||
855 | version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; | ||
856 | printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); | ||
857 | exit (0); | ||
858 | #endif | ||
859 | |||
860 | #if defined (MULTIMAX) || defined (n16) | ||
861 | #if defined (UMAXV) | ||
862 | printf ("ns32k-encore-sysv\n"); exit (0); | ||
863 | #else | ||
864 | #if defined (CMU) | ||
865 | printf ("ns32k-encore-mach\n"); exit (0); | ||
866 | #else | ||
867 | printf ("ns32k-encore-bsd\n"); exit (0); | ||
868 | #endif | ||
869 | #endif | ||
870 | #endif | ||
871 | |||
872 | #if defined (__386BSD__) | ||
873 | printf ("i386-pc-bsd\n"); exit (0); | ||
874 | #endif | ||
875 | |||
876 | #if defined (sequent) | ||
877 | #if defined (i386) | ||
878 | printf ("i386-sequent-dynix\n"); exit (0); | ||
879 | #endif | ||
880 | #if defined (ns32000) | ||
881 | printf ("ns32k-sequent-dynix\n"); exit (0); | ||
882 | #endif | ||
883 | #endif | ||
884 | |||
885 | #if defined (_SEQUENT_) | ||
886 | struct utsname un; | ||
887 | |||
888 | uname(&un); | ||
889 | |||
890 | if (strncmp(un.version, "V2", 2) == 0) { | ||
891 | printf ("i386-sequent-ptx2\n"); exit (0); | ||
892 | } | ||
893 | if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ | ||
894 | printf ("i386-sequent-ptx1\n"); exit (0); | ||
895 | } | ||
896 | printf ("i386-sequent-ptx\n"); exit (0); | ||
897 | |||
898 | #endif | ||
899 | |||
900 | #if defined (vax) | ||
901 | #if !defined (ultrix) | ||
902 | printf ("vax-dec-bsd\n"); exit (0); | ||
903 | #else | ||
904 | printf ("vax-dec-ultrix\n"); exit (0); | ||
905 | #endif | ||
906 | #endif | ||
907 | |||
908 | #if defined (alliant) && defined (i860) | ||
909 | printf ("i860-alliant-bsd\n"); exit (0); | ||
910 | #endif | ||
911 | |||
912 | exit (1); | ||
913 | } | ||
914 | EOF | ||
915 | |||
916 | ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 | ||
917 | rm -f dummy.c dummy | ||
918 | |||
919 | # Apollos put the system type in the environment. | ||
920 | |||
921 | test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } | ||
922 | |||
923 | # Convex versions that predate uname can use getsysinfo(1) | ||
924 | |||
925 | if [ -x /usr/convex/getsysinfo ] | ||
926 | then | ||
927 | case `getsysinfo -f cpu_type` in | ||
928 | c1*) | ||
929 | echo c1-convex-bsd | ||
930 | exit 0 ;; | ||
931 | c2*) | ||
932 | if getsysinfo -f scalar_acc | ||
933 | then echo c32-convex-bsd | ||
934 | else echo c2-convex-bsd | ||
935 | fi | ||
936 | exit 0 ;; | ||
937 | c34*) | ||
938 | echo c34-convex-bsd | ||
939 | exit 0 ;; | ||
940 | c38*) | ||
941 | echo c38-convex-bsd | ||
942 | exit 0 ;; | ||
943 | c4*) | ||
944 | echo c4-convex-bsd | ||
945 | exit 0 ;; | ||
946 | esac | ||
947 | fi | ||
948 | |||
949 | #echo '(Unable to guess system type)' 1>&2 | ||
950 | |||
951 | exit 1 | ||
diff --git a/config.sub b/config.sub new file mode 100755 index 000000000..00bea6e6a --- /dev/null +++ b/config.sub | |||
@@ -0,0 +1,955 @@ | |||
1 | #! /bin/sh | ||
2 | # Configuration validation subroutine script, version 1.1. | ||
3 | # Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc. | ||
4 | # This file is (in principle) common to ALL GNU software. | ||
5 | # The presence of a machine in this file suggests that SOME GNU software | ||
6 | # can handle that machine. It does not imply ALL GNU software can. | ||
7 | # | ||
8 | # This file is free software; you can redistribute it and/or modify | ||
9 | # it under the terms of the GNU General Public License as published by | ||
10 | # the Free Software Foundation; either version 2 of the License, or | ||
11 | # (at your option) any later version. | ||
12 | # | ||
13 | # This program is distributed in the hope that it will be useful, | ||
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | # GNU General Public License for more details. | ||
17 | # | ||
18 | # You should have received a copy of the GNU General Public License | ||
19 | # along with this program; if not, write to the Free Software | ||
20 | # Foundation, Inc., 59 Temple Place - Suite 330, | ||
21 | # Boston, MA 02111-1307, USA. | ||
22 | |||
23 | # As a special exception to the GNU General Public License, if you | ||
24 | # distribute this file as part of a program that contains a | ||
25 | # configuration script generated by Autoconf, you may include it under | ||
26 | # the same distribution terms that you use for the rest of that program. | ||
27 | |||
28 | # Configuration subroutine to validate and canonicalize a configuration type. | ||
29 | # Supply the specified configuration type as an argument. | ||
30 | # If it is invalid, we print an error message on stderr and exit with code 1. | ||
31 | # Otherwise, we print the canonical config type on stdout and succeed. | ||
32 | |||
33 | # This file is supposed to be the same for all GNU packages | ||
34 | # and recognize all the CPU types, system types and aliases | ||
35 | # that are meaningful with *any* GNU software. | ||
36 | # Each package is responsible for reporting which valid configurations | ||
37 | # it does not support. The user should be able to distinguish | ||
38 | # a failure to support a valid configuration from a meaningless | ||
39 | # configuration. | ||
40 | |||
41 | # The goal of this file is to map all the various variations of a given | ||
42 | # machine specification into a single specification in the form: | ||
43 | # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM | ||
44 | # or in some cases, the newer four-part form: | ||
45 | # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM | ||
46 | # It is wrong to echo any other type of specification. | ||
47 | |||
48 | if [ x$1 = x ] | ||
49 | then | ||
50 | echo Configuration name missing. 1>&2 | ||
51 | echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 | ||
52 | echo "or $0 ALIAS" 1>&2 | ||
53 | echo where ALIAS is a recognized configuration type. 1>&2 | ||
54 | exit 1 | ||
55 | fi | ||
56 | |||
57 | # First pass through any local machine types. | ||
58 | case $1 in | ||
59 | *local*) | ||
60 | echo $1 | ||
61 | exit 0 | ||
62 | ;; | ||
63 | *) | ||
64 | ;; | ||
65 | esac | ||
66 | |||
67 | # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). | ||
68 | # Here we must recognize all the valid KERNEL-OS combinations. | ||
69 | maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` | ||
70 | case $maybe_os in | ||
71 | linux-gnu*) | ||
72 | os=-$maybe_os | ||
73 | basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` | ||
74 | ;; | ||
75 | *) | ||
76 | basic_machine=`echo $1 | sed 's/-[^-]*$//'` | ||
77 | if [ $basic_machine != $1 ] | ||
78 | then os=`echo $1 | sed 's/.*-/-/'` | ||
79 | else os=; fi | ||
80 | ;; | ||
81 | esac | ||
82 | |||
83 | ### Let's recognize common machines as not being operating systems so | ||
84 | ### that things like config.sub decstation-3100 work. We also | ||
85 | ### recognize some manufacturers as not being operating systems, so we | ||
86 | ### can provide default operating systems below. | ||
87 | case $os in | ||
88 | -sun*os*) | ||
89 | # Prevent following clause from handling this invalid input. | ||
90 | ;; | ||
91 | -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ | ||
92 | -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ | ||
93 | -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ | ||
94 | -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ | ||
95 | -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ | ||
96 | -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ | ||
97 | -apple) | ||
98 | os= | ||
99 | basic_machine=$1 | ||
100 | ;; | ||
101 | -hiux*) | ||
102 | os=-hiuxwe2 | ||
103 | ;; | ||
104 | -sco5) | ||
105 | os=sco3.2v5 | ||
106 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
107 | ;; | ||
108 | -sco4) | ||
109 | os=-sco3.2v4 | ||
110 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
111 | ;; | ||
112 | -sco3.2.[4-9]*) | ||
113 | os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` | ||
114 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
115 | ;; | ||
116 | -sco3.2v[4-9]*) | ||
117 | # Don't forget version if it is 3.2v4 or newer. | ||
118 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
119 | ;; | ||
120 | -sco*) | ||
121 | os=-sco3.2v2 | ||
122 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
123 | ;; | ||
124 | -isc) | ||
125 | os=-isc2.2 | ||
126 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
127 | ;; | ||
128 | -clix*) | ||
129 | basic_machine=clipper-intergraph | ||
130 | ;; | ||
131 | -isc*) | ||
132 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
133 | ;; | ||
134 | -lynx*) | ||
135 | os=-lynxos | ||
136 | ;; | ||
137 | -ptx*) | ||
138 | basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` | ||
139 | ;; | ||
140 | -windowsnt*) | ||
141 | os=`echo $os | sed -e 's/windowsnt/winnt/'` | ||
142 | ;; | ||
143 | -psos*) | ||
144 | os=-psos | ||
145 | ;; | ||
146 | esac | ||
147 | |||
148 | # Decode aliases for certain CPU-COMPANY combinations. | ||
149 | case $basic_machine in | ||
150 | # Recognize the basic CPU types without company name. | ||
151 | # Some are omitted here because they have special meanings below. | ||
152 | tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ | ||
153 | | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \ | ||
154 | | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 | hppa2.0 \ | ||
155 | | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \ | ||
156 | | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \ | ||
157 | | mips64 | mipsel | mips64el | mips64orion | mips64orionel \ | ||
158 | | mipstx39 | mipstx39el \ | ||
159 | | sparc | sparclet | sparclite | sparc64 | v850) | ||
160 | basic_machine=$basic_machine-unknown | ||
161 | ;; | ||
162 | # We use `pc' rather than `unknown' | ||
163 | # because (1) that's what they normally are, and | ||
164 | # (2) the word "unknown" tends to confuse beginning users. | ||
165 | i[34567]86) | ||
166 | basic_machine=$basic_machine-pc | ||
167 | ;; | ||
168 | # Object if more than one company name word. | ||
169 | *-*-*) | ||
170 | echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 | ||
171 | exit 1 | ||
172 | ;; | ||
173 | # Recognize the basic CPU types with company name. | ||
174 | vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \ | ||
175 | | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ | ||
176 | | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ | ||
177 | | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \ | ||
178 | | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* \ | ||
179 | | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \ | ||
180 | | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \ | ||
181 | | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ | ||
182 | | sparc64-* | mips64-* | mipsel-* \ | ||
183 | | mips64el-* | mips64orion-* | mips64orionel-* \ | ||
184 | | mipstx39-* | mipstx39el-* \ | ||
185 | | f301-*) | ||
186 | ;; | ||
187 | # Recognize the various machine names and aliases which stand | ||
188 | # for a CPU type and a company and sometimes even an OS. | ||
189 | 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) | ||
190 | basic_machine=m68000-att | ||
191 | ;; | ||
192 | 3b*) | ||
193 | basic_machine=we32k-att | ||
194 | ;; | ||
195 | alliant | fx80) | ||
196 | basic_machine=fx80-alliant | ||
197 | ;; | ||
198 | altos | altos3068) | ||
199 | basic_machine=m68k-altos | ||
200 | ;; | ||
201 | am29k) | ||
202 | basic_machine=a29k-none | ||
203 | os=-bsd | ||
204 | ;; | ||
205 | amdahl) | ||
206 | basic_machine=580-amdahl | ||
207 | os=-sysv | ||
208 | ;; | ||
209 | amiga | amiga-*) | ||
210 | basic_machine=m68k-cbm | ||
211 | ;; | ||
212 | amigaos | amigados) | ||
213 | basic_machine=m68k-cbm | ||
214 | os=-amigaos | ||
215 | ;; | ||
216 | amigaunix | amix) | ||
217 | basic_machine=m68k-cbm | ||
218 | os=-sysv4 | ||
219 | ;; | ||
220 | apollo68) | ||
221 | basic_machine=m68k-apollo | ||
222 | os=-sysv | ||
223 | ;; | ||
224 | aux) | ||
225 | basic_machine=m68k-apple | ||
226 | os=-aux | ||
227 | ;; | ||
228 | balance) | ||
229 | basic_machine=ns32k-sequent | ||
230 | os=-dynix | ||
231 | ;; | ||
232 | convex-c1) | ||
233 | basic_machine=c1-convex | ||
234 | os=-bsd | ||
235 | ;; | ||
236 | convex-c2) | ||
237 | basic_machine=c2-convex | ||
238 | os=-bsd | ||
239 | ;; | ||
240 | convex-c32) | ||
241 | basic_machine=c32-convex | ||
242 | os=-bsd | ||
243 | ;; | ||
244 | convex-c34) | ||
245 | basic_machine=c34-convex | ||
246 | os=-bsd | ||
247 | ;; | ||
248 | convex-c38) | ||
249 | basic_machine=c38-convex | ||
250 | os=-bsd | ||
251 | ;; | ||
252 | cray | ymp) | ||
253 | basic_machine=ymp-cray | ||
254 | os=-unicos | ||
255 | ;; | ||
256 | cray2) | ||
257 | basic_machine=cray2-cray | ||
258 | os=-unicos | ||
259 | ;; | ||
260 | [ctj]90-cray) | ||
261 | basic_machine=c90-cray | ||
262 | os=-unicos | ||
263 | ;; | ||
264 | crds | unos) | ||
265 | basic_machine=m68k-crds | ||
266 | ;; | ||
267 | da30 | da30-*) | ||
268 | basic_machine=m68k-da30 | ||
269 | ;; | ||
270 | decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) | ||
271 | basic_machine=mips-dec | ||
272 | ;; | ||
273 | delta | 3300 | motorola-3300 | motorola-delta \ | ||
274 | | 3300-motorola | delta-motorola) | ||
275 | basic_machine=m68k-motorola | ||
276 | ;; | ||
277 | delta88) | ||
278 | basic_machine=m88k-motorola | ||
279 | os=-sysv3 | ||
280 | ;; | ||
281 | dpx20 | dpx20-*) | ||
282 | basic_machine=rs6000-bull | ||
283 | os=-bosx | ||
284 | ;; | ||
285 | dpx2* | dpx2*-bull) | ||
286 | basic_machine=m68k-bull | ||
287 | os=-sysv3 | ||
288 | ;; | ||
289 | ebmon29k) | ||
290 | basic_machine=a29k-amd | ||
291 | os=-ebmon | ||
292 | ;; | ||
293 | elxsi) | ||
294 | basic_machine=elxsi-elxsi | ||
295 | os=-bsd | ||
296 | ;; | ||
297 | encore | umax | mmax) | ||
298 | basic_machine=ns32k-encore | ||
299 | ;; | ||
300 | fx2800) | ||
301 | basic_machine=i860-alliant | ||
302 | ;; | ||
303 | genix) | ||
304 | basic_machine=ns32k-ns | ||
305 | ;; | ||
306 | gmicro) | ||
307 | basic_machine=tron-gmicro | ||
308 | os=-sysv | ||
309 | ;; | ||
310 | h3050r* | hiux*) | ||
311 | basic_machine=hppa1.1-hitachi | ||
312 | os=-hiuxwe2 | ||
313 | ;; | ||
314 | h8300hms) | ||
315 | basic_machine=h8300-hitachi | ||
316 | os=-hms | ||
317 | ;; | ||
318 | harris) | ||
319 | basic_machine=m88k-harris | ||
320 | os=-sysv3 | ||
321 | ;; | ||
322 | hp300-*) | ||
323 | basic_machine=m68k-hp | ||
324 | ;; | ||
325 | hp300bsd) | ||
326 | basic_machine=m68k-hp | ||
327 | os=-bsd | ||
328 | ;; | ||
329 | hp300hpux) | ||
330 | basic_machine=m68k-hp | ||
331 | os=-hpux | ||
332 | ;; | ||
333 | hp9k2[0-9][0-9] | hp9k31[0-9]) | ||
334 | basic_machine=m68000-hp | ||
335 | ;; | ||
336 | hp9k3[2-9][0-9]) | ||
337 | basic_machine=m68k-hp | ||
338 | ;; | ||
339 | hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7) | ||
340 | basic_machine=hppa1.1-hp | ||
341 | ;; | ||
342 | hp9k8[0-9][0-9] | hp8[0-9][0-9]) | ||
343 | basic_machine=hppa1.0-hp | ||
344 | ;; | ||
345 | hppa-next) | ||
346 | os=-nextstep3 | ||
347 | ;; | ||
348 | i370-ibm* | ibm*) | ||
349 | basic_machine=i370-ibm | ||
350 | os=-mvs | ||
351 | ;; | ||
352 | # I'm not sure what "Sysv32" means. Should this be sysv3.2? | ||
353 | i[34567]86v32) | ||
354 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | ||
355 | os=-sysv32 | ||
356 | ;; | ||
357 | i[34567]86v4*) | ||
358 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | ||
359 | os=-sysv4 | ||
360 | ;; | ||
361 | i[34567]86v) | ||
362 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | ||
363 | os=-sysv | ||
364 | ;; | ||
365 | i[34567]86sol2) | ||
366 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | ||
367 | os=-solaris2 | ||
368 | ;; | ||
369 | iris | iris4d) | ||
370 | basic_machine=mips-sgi | ||
371 | case $os in | ||
372 | -irix*) | ||
373 | ;; | ||
374 | *) | ||
375 | os=-irix4 | ||
376 | ;; | ||
377 | esac | ||
378 | ;; | ||
379 | isi68 | isi) | ||
380 | basic_machine=m68k-isi | ||
381 | os=-sysv | ||
382 | ;; | ||
383 | m88k-omron*) | ||
384 | basic_machine=m88k-omron | ||
385 | ;; | ||
386 | magnum | m3230) | ||
387 | basic_machine=mips-mips | ||
388 | os=-sysv | ||
389 | ;; | ||
390 | merlin) | ||
391 | basic_machine=ns32k-utek | ||
392 | os=-sysv | ||
393 | ;; | ||
394 | miniframe) | ||
395 | basic_machine=m68000-convergent | ||
396 | ;; | ||
397 | mipsel*-linux*) | ||
398 | basic_machine=mipsel-unknown | ||
399 | os=-linux-gnu | ||
400 | ;; | ||
401 | mips*-linux*) | ||
402 | basic_machine=mips-unknown | ||
403 | os=-linux-gnu | ||
404 | ;; | ||
405 | mips3*-*) | ||
406 | basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` | ||
407 | ;; | ||
408 | mips3*) | ||
409 | basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown | ||
410 | ;; | ||
411 | ncr3000) | ||
412 | basic_machine=i486-ncr | ||
413 | os=-sysv4 | ||
414 | ;; | ||
415 | news | news700 | news800 | news900) | ||
416 | basic_machine=m68k-sony | ||
417 | os=-newsos | ||
418 | ;; | ||
419 | news1000) | ||
420 | basic_machine=m68030-sony | ||
421 | os=-newsos | ||
422 | ;; | ||
423 | news-3600 | risc-news) | ||
424 | basic_machine=mips-sony | ||
425 | os=-newsos | ||
426 | ;; | ||
427 | next | m*-next ) | ||
428 | basic_machine=m68k-next | ||
429 | case $os in | ||
430 | -nextstep* ) | ||
431 | ;; | ||
432 | -ns2*) | ||
433 | os=-nextstep2 | ||
434 | ;; | ||
435 | *) | ||
436 | os=-nextstep3 | ||
437 | ;; | ||
438 | esac | ||
439 | ;; | ||
440 | nh3000) | ||
441 | basic_machine=m68k-harris | ||
442 | os=-cxux | ||
443 | ;; | ||
444 | nh[45]000) | ||
445 | basic_machine=m88k-harris | ||
446 | os=-cxux | ||
447 | ;; | ||
448 | nindy960) | ||
449 | basic_machine=i960-intel | ||
450 | os=-nindy | ||
451 | ;; | ||
452 | np1) | ||
453 | basic_machine=np1-gould | ||
454 | ;; | ||
455 | pa-hitachi) | ||
456 | basic_machine=hppa1.1-hitachi | ||
457 | os=-hiuxwe2 | ||
458 | ;; | ||
459 | paragon) | ||
460 | basic_machine=i860-intel | ||
461 | os=-osf | ||
462 | ;; | ||
463 | pbd) | ||
464 | basic_machine=sparc-tti | ||
465 | ;; | ||
466 | pbb) | ||
467 | basic_machine=m68k-tti | ||
468 | ;; | ||
469 | pc532 | pc532-*) | ||
470 | basic_machine=ns32k-pc532 | ||
471 | ;; | ||
472 | pentium | p5 | k5 | nexen) | ||
473 | basic_machine=i586-pc | ||
474 | ;; | ||
475 | pentiumpro | p6 | k6 | 6x86) | ||
476 | basic_machine=i686-pc | ||
477 | ;; | ||
478 | pentiumii | pentium2) | ||
479 | basic_machine=i786-pc | ||
480 | ;; | ||
481 | pentium-* | p5-* | k5-* | nexen-*) | ||
482 | basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
483 | ;; | ||
484 | pentiumpro-* | p6-* | k6-* | 6x86-*) | ||
485 | basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
486 | ;; | ||
487 | pentiumii-* | pentium2-*) | ||
488 | basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
489 | ;; | ||
490 | pn) | ||
491 | basic_machine=pn-gould | ||
492 | ;; | ||
493 | power) basic_machine=rs6000-ibm | ||
494 | ;; | ||
495 | ppc) basic_machine=powerpc-unknown | ||
496 | ;; | ||
497 | ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
498 | ;; | ||
499 | ppcle | powerpclittle | ppc-le | powerpc-little) | ||
500 | basic_machine=powerpcle-unknown | ||
501 | ;; | ||
502 | ppcle-* | powerpclittle-*) | ||
503 | basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
504 | ;; | ||
505 | ps2) | ||
506 | basic_machine=i386-ibm | ||
507 | ;; | ||
508 | rm[46]00) | ||
509 | basic_machine=mips-siemens | ||
510 | ;; | ||
511 | rtpc | rtpc-*) | ||
512 | basic_machine=romp-ibm | ||
513 | ;; | ||
514 | sequent) | ||
515 | basic_machine=i386-sequent | ||
516 | ;; | ||
517 | sh) | ||
518 | basic_machine=sh-hitachi | ||
519 | os=-hms | ||
520 | ;; | ||
521 | sps7) | ||
522 | basic_machine=m68k-bull | ||
523 | os=-sysv2 | ||
524 | ;; | ||
525 | spur) | ||
526 | basic_machine=spur-unknown | ||
527 | ;; | ||
528 | sun2) | ||
529 | basic_machine=m68000-sun | ||
530 | ;; | ||
531 | sun2os3) | ||
532 | basic_machine=m68000-sun | ||
533 | os=-sunos3 | ||
534 | ;; | ||
535 | sun2os4) | ||
536 | basic_machine=m68000-sun | ||
537 | os=-sunos4 | ||
538 | ;; | ||
539 | sun3os3) | ||
540 | basic_machine=m68k-sun | ||
541 | os=-sunos3 | ||
542 | ;; | ||
543 | sun3os4) | ||
544 | basic_machine=m68k-sun | ||
545 | os=-sunos4 | ||
546 | ;; | ||
547 | sun4os3) | ||
548 | basic_machine=sparc-sun | ||
549 | os=-sunos3 | ||
550 | ;; | ||
551 | sun4os4) | ||
552 | basic_machine=sparc-sun | ||
553 | os=-sunos4 | ||
554 | ;; | ||
555 | sun4sol2) | ||
556 | basic_machine=sparc-sun | ||
557 | os=-solaris2 | ||
558 | ;; | ||
559 | sun3 | sun3-*) | ||
560 | basic_machine=m68k-sun | ||
561 | ;; | ||
562 | sun4) | ||
563 | basic_machine=sparc-sun | ||
564 | ;; | ||
565 | sun386 | sun386i | roadrunner) | ||
566 | basic_machine=i386-sun | ||
567 | ;; | ||
568 | symmetry) | ||
569 | basic_machine=i386-sequent | ||
570 | os=-dynix | ||
571 | ;; | ||
572 | tx39) | ||
573 | basic_machine=mipstx39-unknown | ||
574 | ;; | ||
575 | tx39el) | ||
576 | basic_machine=mipstx39el-unknown | ||
577 | ;; | ||
578 | tower | tower-32) | ||
579 | basic_machine=m68k-ncr | ||
580 | ;; | ||
581 | udi29k) | ||
582 | basic_machine=a29k-amd | ||
583 | os=-udi | ||
584 | ;; | ||
585 | ultra3) | ||
586 | basic_machine=a29k-nyu | ||
587 | os=-sym1 | ||
588 | ;; | ||
589 | vaxv) | ||
590 | basic_machine=vax-dec | ||
591 | os=-sysv | ||
592 | ;; | ||
593 | vms) | ||
594 | basic_machine=vax-dec | ||
595 | os=-vms | ||
596 | ;; | ||
597 | vpp*|vx|vx-*) | ||
598 | basic_machine=f301-fujitsu | ||
599 | ;; | ||
600 | vxworks960) | ||
601 | basic_machine=i960-wrs | ||
602 | os=-vxworks | ||
603 | ;; | ||
604 | vxworks68) | ||
605 | basic_machine=m68k-wrs | ||
606 | os=-vxworks | ||
607 | ;; | ||
608 | vxworks29k) | ||
609 | basic_machine=a29k-wrs | ||
610 | os=-vxworks | ||
611 | ;; | ||
612 | xmp) | ||
613 | basic_machine=xmp-cray | ||
614 | os=-unicos | ||
615 | ;; | ||
616 | xps | xps100) | ||
617 | basic_machine=xps100-honeywell | ||
618 | ;; | ||
619 | none) | ||
620 | basic_machine=none-none | ||
621 | os=-none | ||
622 | ;; | ||
623 | |||
624 | # Here we handle the default manufacturer of certain CPU types. It is in | ||
625 | # some cases the only manufacturer, in others, it is the most popular. | ||
626 | mips) | ||
627 | if [ x$os = x-linux-gnu ]; then | ||
628 | basic_machine=mips-unknown | ||
629 | else | ||
630 | basic_machine=mips-mips | ||
631 | fi | ||
632 | ;; | ||
633 | romp) | ||
634 | basic_machine=romp-ibm | ||
635 | ;; | ||
636 | rs6000) | ||
637 | basic_machine=rs6000-ibm | ||
638 | ;; | ||
639 | vax) | ||
640 | basic_machine=vax-dec | ||
641 | ;; | ||
642 | pdp11) | ||
643 | basic_machine=pdp11-dec | ||
644 | ;; | ||
645 | we32k) | ||
646 | basic_machine=we32k-att | ||
647 | ;; | ||
648 | sparc) | ||
649 | basic_machine=sparc-sun | ||
650 | ;; | ||
651 | cydra) | ||
652 | basic_machine=cydra-cydrome | ||
653 | ;; | ||
654 | orion) | ||
655 | basic_machine=orion-highlevel | ||
656 | ;; | ||
657 | orion105) | ||
658 | basic_machine=clipper-highlevel | ||
659 | ;; | ||
660 | *) | ||
661 | echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 | ||
662 | exit 1 | ||
663 | ;; | ||
664 | esac | ||
665 | |||
666 | # Here we canonicalize certain aliases for manufacturers. | ||
667 | case $basic_machine in | ||
668 | *-digital*) | ||
669 | basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` | ||
670 | ;; | ||
671 | *-commodore*) | ||
672 | basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` | ||
673 | ;; | ||
674 | *) | ||
675 | ;; | ||
676 | esac | ||
677 | |||
678 | # Decode manufacturer-specific aliases for certain operating systems. | ||
679 | |||
680 | if [ x"$os" != x"" ] | ||
681 | then | ||
682 | case $os in | ||
683 | # First match some system type aliases | ||
684 | # that might get confused with valid system types. | ||
685 | # -solaris* is a basic system type, with this one exception. | ||
686 | -solaris1 | -solaris1.*) | ||
687 | os=`echo $os | sed -e 's|solaris1|sunos4|'` | ||
688 | ;; | ||
689 | -solaris) | ||
690 | os=-solaris2 | ||
691 | ;; | ||
692 | -svr4*) | ||
693 | os=-sysv4 | ||
694 | ;; | ||
695 | -unixware*) | ||
696 | os=-sysv4.2uw | ||
697 | ;; | ||
698 | -gnu/linux*) | ||
699 | os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` | ||
700 | ;; | ||
701 | # First accept the basic system types. | ||
702 | # The portable systems comes first. | ||
703 | # Each alternative MUST END IN A *, to match a version number. | ||
704 | # -sysv* is not here because it comes later, after sysvr4. | ||
705 | -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | ||
706 | | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | ||
707 | | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | ||
708 | | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | ||
709 | | -aos* \ | ||
710 | | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | ||
711 | | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | ||
712 | | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ | ||
713 | | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ | ||
714 | | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | ||
715 | | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | ||
716 | | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | ||
717 | | -mingw32* | -linux-gnu* | -uxpv* | -beos*) | ||
718 | # Remember, each alternative MUST END IN *, to match a version number. | ||
719 | ;; | ||
720 | -linux*) | ||
721 | os=`echo $os | sed -e 's|linux|linux-gnu|'` | ||
722 | ;; | ||
723 | -sunos5*) | ||
724 | os=`echo $os | sed -e 's|sunos5|solaris2|'` | ||
725 | ;; | ||
726 | -sunos6*) | ||
727 | os=`echo $os | sed -e 's|sunos6|solaris3|'` | ||
728 | ;; | ||
729 | -osfrose*) | ||
730 | os=-osfrose | ||
731 | ;; | ||
732 | -osf*) | ||
733 | os=-osf | ||
734 | ;; | ||
735 | -utek*) | ||
736 | os=-bsd | ||
737 | ;; | ||
738 | -dynix*) | ||
739 | os=-bsd | ||
740 | ;; | ||
741 | -acis*) | ||
742 | os=-aos | ||
743 | ;; | ||
744 | -ctix* | -uts*) | ||
745 | os=-sysv | ||
746 | ;; | ||
747 | -ns2 ) | ||
748 | os=-nextstep2 | ||
749 | ;; | ||
750 | # Preserve the version number of sinix5. | ||
751 | -sinix5.*) | ||
752 | os=`echo $os | sed -e 's|sinix|sysv|'` | ||
753 | ;; | ||
754 | -sinix*) | ||
755 | os=-sysv4 | ||
756 | ;; | ||
757 | -triton*) | ||
758 | os=-sysv3 | ||
759 | ;; | ||
760 | -oss*) | ||
761 | os=-sysv3 | ||
762 | ;; | ||
763 | -svr4) | ||
764 | os=-sysv4 | ||
765 | ;; | ||
766 | -svr3) | ||
767 | os=-sysv3 | ||
768 | ;; | ||
769 | -sysvr4) | ||
770 | os=-sysv4 | ||
771 | ;; | ||
772 | # This must come after -sysvr4. | ||
773 | -sysv*) | ||
774 | ;; | ||
775 | -xenix) | ||
776 | os=-xenix | ||
777 | ;; | ||
778 | -none) | ||
779 | ;; | ||
780 | *) | ||
781 | # Get rid of the `-' at the beginning of $os. | ||
782 | os=`echo $os | sed 's/[^-]*-//'` | ||
783 | echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 | ||
784 | exit 1 | ||
785 | ;; | ||
786 | esac | ||
787 | else | ||
788 | |||
789 | # Here we handle the default operating systems that come with various machines. | ||
790 | # The value should be what the vendor currently ships out the door with their | ||
791 | # machine or put another way, the most popular os provided with the machine. | ||
792 | |||
793 | # Note that if you're going to try to match "-MANUFACTURER" here (say, | ||
794 | # "-sun"), then you have to tell the case statement up towards the top | ||
795 | # that MANUFACTURER isn't an operating system. Otherwise, code above | ||
796 | # will signal an error saying that MANUFACTURER isn't an operating | ||
797 | # system, and we'll never get to this point. | ||
798 | |||
799 | case $basic_machine in | ||
800 | *-acorn) | ||
801 | os=-riscix1.2 | ||
802 | ;; | ||
803 | arm*-semi) | ||
804 | os=-aout | ||
805 | ;; | ||
806 | pdp11-*) | ||
807 | os=-none | ||
808 | ;; | ||
809 | *-dec | vax-*) | ||
810 | os=-ultrix4.2 | ||
811 | ;; | ||
812 | m68*-apollo) | ||
813 | os=-domain | ||
814 | ;; | ||
815 | i386-sun) | ||
816 | os=-sunos4.0.2 | ||
817 | ;; | ||
818 | m68000-sun) | ||
819 | os=-sunos3 | ||
820 | # This also exists in the configure program, but was not the | ||
821 | # default. | ||
822 | # os=-sunos4 | ||
823 | ;; | ||
824 | *-tti) # must be before sparc entry or we get the wrong os. | ||
825 | os=-sysv3 | ||
826 | ;; | ||
827 | sparc-* | *-sun) | ||
828 | os=-sunos4.1.1 | ||
829 | ;; | ||
830 | *-be) | ||
831 | os=-beos | ||
832 | ;; | ||
833 | *-ibm) | ||
834 | os=-aix | ||
835 | ;; | ||
836 | *-hp) | ||
837 | os=-hpux | ||
838 | ;; | ||
839 | *-hitachi) | ||
840 | os=-hiux | ||
841 | ;; | ||
842 | i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) | ||
843 | os=-sysv | ||
844 | ;; | ||
845 | *-cbm) | ||
846 | os=-amigaos | ||
847 | ;; | ||
848 | *-dg) | ||
849 | os=-dgux | ||
850 | ;; | ||
851 | *-dolphin) | ||
852 | os=-sysv3 | ||
853 | ;; | ||
854 | m68k-ccur) | ||
855 | os=-rtu | ||
856 | ;; | ||
857 | m88k-omron*) | ||
858 | os=-luna | ||
859 | ;; | ||
860 | *-next ) | ||
861 | os=-nextstep | ||
862 | ;; | ||
863 | *-sequent) | ||
864 | os=-ptx | ||
865 | ;; | ||
866 | *-crds) | ||
867 | os=-unos | ||
868 | ;; | ||
869 | *-ns) | ||
870 | os=-genix | ||
871 | ;; | ||
872 | i370-*) | ||
873 | os=-mvs | ||
874 | ;; | ||
875 | *-next) | ||
876 | os=-nextstep3 | ||
877 | ;; | ||
878 | *-gould) | ||
879 | os=-sysv | ||
880 | ;; | ||
881 | *-highlevel) | ||
882 | os=-bsd | ||
883 | ;; | ||
884 | *-encore) | ||
885 | os=-bsd | ||
886 | ;; | ||
887 | *-sgi) | ||
888 | os=-irix | ||
889 | ;; | ||
890 | *-siemens) | ||
891 | os=-sysv4 | ||
892 | ;; | ||
893 | *-masscomp) | ||
894 | os=-rtu | ||
895 | ;; | ||
896 | f301-fujitsu) | ||
897 | os=-uxpv | ||
898 | ;; | ||
899 | *) | ||
900 | os=-none | ||
901 | ;; | ||
902 | esac | ||
903 | fi | ||
904 | |||
905 | # Here we handle the case where we know the os, and the CPU type, but not the | ||
906 | # manufacturer. We pick the logical manufacturer. | ||
907 | vendor=unknown | ||
908 | case $basic_machine in | ||
909 | *-unknown) | ||
910 | case $os in | ||
911 | -riscix*) | ||
912 | vendor=acorn | ||
913 | ;; | ||
914 | -sunos*) | ||
915 | vendor=sun | ||
916 | ;; | ||
917 | -aix*) | ||
918 | vendor=ibm | ||
919 | ;; | ||
920 | -hpux*) | ||
921 | vendor=hp | ||
922 | ;; | ||
923 | -hiux*) | ||
924 | vendor=hitachi | ||
925 | ;; | ||
926 | -unos*) | ||
927 | vendor=crds | ||
928 | ;; | ||
929 | -dgux*) | ||
930 | vendor=dg | ||
931 | ;; | ||
932 | -luna*) | ||
933 | vendor=omron | ||
934 | ;; | ||
935 | -genix*) | ||
936 | vendor=ns | ||
937 | ;; | ||
938 | -mvs*) | ||
939 | vendor=ibm | ||
940 | ;; | ||
941 | -ptx*) | ||
942 | vendor=sequent | ||
943 | ;; | ||
944 | -vxsim* | -vxworks*) | ||
945 | vendor=wrs | ||
946 | ;; | ||
947 | -aux*) | ||
948 | vendor=apple | ||
949 | ;; | ||
950 | esac | ||
951 | basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` | ||
952 | ;; | ||
953 | esac | ||
954 | |||
955 | echo $basic_machine$os | ||
diff --git a/configure.in b/configure.in index 86d6a3241..b5ffee79e 100644 --- a/configure.in +++ b/configure.in | |||
@@ -1,6 +1,7 @@ | |||
1 | AC_INIT(ssh.c) | 1 | AC_INIT(ssh.c) |
2 | 2 | ||
3 | AC_CONFIG_HEADER(config.h) | 3 | AC_CONFIG_HEADER(config.h) |
4 | AC_CANONICAL_HOST | ||
4 | 5 | ||
5 | dnl Checks for programs. | 6 | dnl Checks for programs. |
6 | AC_PROG_CC | 7 | AC_PROG_CC |
@@ -9,10 +10,35 @@ AC_PROG_RANLIB | |||
9 | AC_PROG_INSTALL | 10 | AC_PROG_INSTALL |
10 | AC_CHECK_PROG(AR, ar, ar) | 11 | AC_CHECK_PROG(AR, ar, ar) |
11 | 12 | ||
13 | dnl Check for the path to xauth | ||
14 | AC_PATH_PROG(xauth_path, xauth) | ||
15 | AC_DEFINE_UNQUOTED(XAUTH_PATH, "$xauth_path") | ||
16 | |||
12 | dnl Checks for compiler characteristics | 17 | dnl Checks for compiler characteristics |
13 | if test "$GCC" = "yes"; then CFLAGS="$CFLAGS -Wall"; fi | 18 | if test "$GCC" = "yes"; then CFLAGS="$CFLAGS -Wall"; fi |
19 | |||
14 | AC_C_INLINE | 20 | AC_C_INLINE |
15 | 21 | ||
22 | dnl Check for some target-specific stuff | ||
23 | case "$host" in | ||
24 | *-*-hpux10*) | ||
25 | if test -z "$GCC"; then | ||
26 | CFLAGS="$CFLAGS -Aa" | ||
27 | fi | ||
28 | CFLAGS="$CFLAGS -D_HPUX_SOURCE" | ||
29 | AC_DEFINE(IPADDR_IN_DISPLAY) | ||
30 | AC_MSG_CHECKING(for HPUX trusted system password database) | ||
31 | if test -f /tcb/files/auth/system/default; then | ||
32 | AC_MSG_RESULT(yes) | ||
33 | AC_DEFINE(HAVE_HPUX_TRUSTED_SYSTEM_PW) | ||
34 | LIBS="$LIBS -lsec" | ||
35 | else | ||
36 | AC_MSG_RESULT(no) | ||
37 | AC_DEFINE(DISABLE_SHADOW) | ||
38 | fi | ||
39 | ;; | ||
40 | esac | ||
41 | |||
16 | dnl Check for OpenSSL/SSLeay directories. | 42 | dnl Check for OpenSSL/SSLeay directories. |
17 | AC_MSG_CHECKING([for OpenSSL/SSLeay directory]) | 43 | AC_MSG_CHECKING([for OpenSSL/SSLeay directory]) |
18 | for ssldir in /usr /usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local $prefix /usr/pkg ; do | 44 | for ssldir in /usr /usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local $prefix /usr/pkg ; do |
@@ -59,10 +85,10 @@ AC_CHECK_LIB(dl, dlopen, , ) | |||
59 | AC_CHECK_LIB(pam, pam_authenticate, , ) | 85 | AC_CHECK_LIB(pam, pam_authenticate, , ) |
60 | 86 | ||
61 | dnl Checks for header files. | 87 | dnl Checks for header files. |
62 | AC_CHECK_HEADERS(endian.h lastlog.h login.h maillock.h netgroup.h paths.h poll.h pty.h shadow.h util.h utmp.h utmpx.h sys/poll.h sys/select.h sys/stropts.h sys/time.h) | 88 | AC_CHECK_HEADERS(endian.h lastlog.h login.h maillock.h netgroup.h paths.h poll.h pty.h shadow_h util.h utmp.h utmpx.h sys/bsdtty.h sys/poll.h sys/select.h sys/stropts.h sys/time.h) |
63 | 89 | ||
64 | dnl Checks for library functions. | 90 | dnl Checks for library functions. |
65 | AC_CHECK_FUNCS(arc4random mkdtemp openpty _getpty setenv setlogin setproctitle snprintf strlcat strlcpy vsnprintf) | 91 | AC_CHECK_FUNCS(arc4random mkdtemp openpty _getpty setenv seteuid setlogin setproctitle setreuid snprintf strlcat strlcpy vsnprintf) |
66 | 92 | ||
67 | AC_CHECK_FUNC(login, | 93 | AC_CHECK_FUNC(login, |
68 | [AC_DEFINE(HAVE_LOGIN)], | 94 | [AC_DEFINE(HAVE_LOGIN)], |
@@ -209,27 +235,46 @@ AC_EGREP_HEADER(ut_host, utmpx.h, | |||
209 | ) | 235 | ) |
210 | 236 | ||
211 | dnl Look for lastlog location | 237 | dnl Look for lastlog location |
212 | AC_MSG_CHECKING([location of lastlog file]) | 238 | AC_ARG_WITH(lastlog, |
213 | for lastlog in /var/log/lastlog /var/adm/lastlog /etc/security/lastlog ; do | 239 | [ --with-lastlog Location of lastlog file], |
214 | if test -f $lastlog ; then | 240 | [ |
215 | gotlastlog="file" | 241 | if test "x$withval" = "xno" ; then |
216 | break | 242 | AC_DEFINE(DISABLE_LASTLOG) |
217 | fi | 243 | else |
218 | if test -d $lastlog ; then | 244 | AC_DEFINE_UNQUOTED(LASTLOG_LOCATION, "$withval") |
219 | gotlastlog="dir" | 245 | fi |
220 | break | 246 | ], |
221 | fi | 247 | [ |
222 | done | 248 | AC_MSG_CHECKING([location of lastlog file]) |
223 | if test -z "$gotlastlog" ; then | 249 | for lastlog in /var/log/lastlog /var/adm/lastlog /etc/security/lastlog ; do |
224 | AC_MSG_ERROR([*** Cannot find lastlog ***]) | 250 | if test -f $lastlog ; then |
225 | else | 251 | gotlastlog="file" |
226 | if test "x$gotlastlog" = "xdir" ; then | 252 | break |
227 | AC_DEFINE(LASTLOG_IS_DIR) | 253 | fi |
228 | AC_MSG_ERROR([*** Directory-based lastlogs are not yet supported ***]) | 254 | if test -d $lastlog ; then |
229 | fi | 255 | gotlastlog="dir" |
230 | AC_MSG_RESULT($lastlog) | 256 | break |
231 | AC_DEFINE_UNQUOTED(LASTLOG_LOCATION, "$lastlog") | 257 | fi |
232 | fi | 258 | done |
259 | if test -z "$gotlastlog" ; then | ||
260 | AC_MSG_WARN([*** Cannot find lastlog ***]) | ||
261 | nolastlog=1 | ||
262 | else | ||
263 | if test "x$gotlastlog" = "xdir" ; then | ||
264 | AC_DEFINE(LASTLOG_IS_DIR) | ||
265 | AC_MSG_WARN([*** Directory-based lastlogs are not yet supported ***]) | ||
266 | nolastlog=1 | ||
267 | fi | ||
268 | AC_MSG_RESULT($lastlog) | ||
269 | AC_DEFINE_UNQUOTED(LASTLOG_LOCATION, "$lastlog") | ||
270 | fi | ||
271 | ] | ||
272 | ) | ||
273 | |||
274 | if test ! -z "$nolastlog" ; then | ||
275 | AC_MSG_WARN([*** Disabling lastlog support *** ]) | ||
276 | AC_DEFINE(DISABLE_LASTLOG) | ||
277 | fi | ||
233 | 278 | ||
234 | AC_CHECK_FILE("/dev/ptmx", AC_DEFINE_UNQUOTED(HAVE_DEV_PTMX)) | 279 | AC_CHECK_FILE("/dev/ptmx", AC_DEFINE_UNQUOTED(HAVE_DEV_PTMX)) |
235 | AC_CHECK_FILE("/dev/ptc", AC_DEFINE_UNQUOTED(HAVE_DEV_PTS_AND_PTC)) | 280 | AC_CHECK_FILE("/dev/ptc", AC_DEFINE_UNQUOTED(HAVE_DEV_PTS_AND_PTC)) |
@@ -293,11 +338,37 @@ AC_ARG_WITH(md5-passwords, | |||
293 | dnl Check whether to enable utmpx support | 338 | dnl Check whether to enable utmpx support |
294 | AC_ARG_WITH(utmpx, | 339 | AC_ARG_WITH(utmpx, |
295 | [ --with-utmpx Enable utmpx support], | 340 | [ --with-utmpx Enable utmpx support], |
296 | [AC_DEFINE(USE_UTMPX)] | 341 | [ |
342 | if test "x$withval" != "xno" ; then | ||
343 | AC_DEFINE(USE_UTMPX) | ||
344 | fi | ||
345 | ] | ||
297 | ) | 346 | ) |
298 | 347 | ||
299 | dnl Check for the path to xauth | 348 | dnl Whether to disable shadow password support |
300 | AC_PATH_PROG(xauth_path, xauth) | 349 | AC_ARG_WITH(shadow, |
301 | AC_DEFINE_UNQUOTED(XAUTH_PATH, "$xauth_path") | 350 | [ --without-shadow Disable shadow password support], |
351 | [ | ||
352 | if test "x$withval" = "xno" ; then | ||
353 | AC_DEFINE(DISABLE_SHADOW) | ||
354 | fi | ||
355 | ] | ||
356 | ) | ||
357 | |||
358 | dnl Use ip address instead of hostname in $DISPLAY | ||
359 | AC_ARG_WITH(ipaddr-display, | ||
360 | [ --with-ipaddr-display Use ip address instead of hostname in \$DISPLAY], | ||
361 | [ | ||
362 | if test "x$withval" = "xno" ; then | ||
363 | AC_DEFINE(IPADDR_IN_DISPLAY) | ||
364 | fi | ||
365 | ] | ||
366 | ) | ||
367 | |||
368 | dnl Check for mail directory (last resort if we cannot get it from headers) | ||
369 | if test ! -z "$MAIL" ; then | ||
370 | maildir=`dirname $MAIL` | ||
371 | AC_DEFINE_UNQUOTED(MAIL_DIRECTORY, "$maildir") | ||
372 | fi | ||
302 | 373 | ||
303 | AC_OUTPUT(Makefile) | 374 | AC_OUTPUT(Makefile) |
diff --git a/includes.h b/includes.h index c14ab6b3d..308e674c0 100644 --- a/includes.h +++ b/includes.h | |||
@@ -67,6 +67,9 @@ static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg } | |||
67 | #ifdef HAVE_SYS_TIME_H | 67 | #ifdef HAVE_SYS_TIME_H |
68 | # include <sys/time.h> | 68 | # include <sys/time.h> |
69 | #endif | 69 | #endif |
70 | #ifdef HAVE_SYS_BSDTTY_H | ||
71 | # include <sys/bsdtty.h> | ||
72 | #endif | ||
70 | #ifdef HAVE_LIBPAM | 73 | #ifdef HAVE_LIBPAM |
71 | # include <security/pam_appl.h> | 74 | # include <security/pam_appl.h> |
72 | #endif | 75 | #endif |
@@ -18,7 +18,7 @@ | |||
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include "includes.h" | 20 | #include "includes.h" |
21 | RCSID("$Id: login.c,v 1.7 1999/12/20 22:51:36 damien Exp $"); | 21 | RCSID("$Id: login.c,v 1.8 1999/12/21 00:18:08 damien Exp $"); |
22 | 22 | ||
23 | #if defined(HAVE_UTMPX_H) && defined(USE_UTMPX) | 23 | #if defined(HAVE_UTMPX_H) && defined(USE_UTMPX) |
24 | # include <utmpx.h> | 24 | # include <utmpx.h> |
@@ -53,6 +53,7 @@ unsigned long | |||
53 | get_last_login_time(uid_t uid, const char *logname, | 53 | get_last_login_time(uid_t uid, const char *logname, |
54 | char *buf, unsigned int bufsize) | 54 | char *buf, unsigned int bufsize) |
55 | { | 55 | { |
56 | #if defined(HAVE_LASTLOG_H) && !defined(DISABLE_LASTLOG) | ||
56 | struct lastlog ll; | 57 | struct lastlog ll; |
57 | char *lastlog; | 58 | char *lastlog; |
58 | int fd; | 59 | int fd; |
@@ -74,6 +75,45 @@ get_last_login_time(uid_t uid, const char *logname, | |||
74 | strncpy(buf, ll.ll_host, bufsize - 1); | 75 | strncpy(buf, ll.ll_host, bufsize - 1); |
75 | buf[bufsize - 1] = 0; | 76 | buf[bufsize - 1] = 0; |
76 | return ll.ll_time; | 77 | return ll.ll_time; |
78 | |||
79 | #else /* defined(HAVE_LASTLOG_H) && !defined(DISABLE_LASTLOG) */ | ||
80 | /* Look in wtmp for the last login */ | ||
81 | struct utmp wt; | ||
82 | char *wt_file = _PATH_WTMP; | ||
83 | int fd1; | ||
84 | unsigned long t = 0; | ||
85 | |||
86 | if ( (fd1 = open(wt_file, O_RDONLY)) < 0 ) { | ||
87 | error("Couldn't open %.100s to find last login time.", wt_file); | ||
88 | return 0; | ||
89 | } | ||
90 | |||
91 | /* seek to last record of file */ | ||
92 | lseek(fd1, (off_t)(0-sizeof(struct utmp)), SEEK_END); | ||
93 | |||
94 | /* loop through wtmp for our last user login record */ | ||
95 | do { | ||
96 | if (read(fd1, &wt, sizeof(wt)) != sizeof(wt)) { | ||
97 | close(fd1); | ||
98 | return 0; | ||
99 | } | ||
100 | |||
101 | if ( wt.ut_type == USER_PROCESS) { | ||
102 | if ( !strncmp(logname, wt.ut_user, 8) ) { | ||
103 | t = (unsigned long) wt.ut_time; | ||
104 | if (bufsize > sizeof(wt.ut_host) + 1) | ||
105 | bufsize = sizeof(wt.ut_host) + 1; | ||
106 | strncpy(buf, wt.ut_host, bufsize - 1); | ||
107 | buf[bufsize - 1] = 0; | ||
108 | } | ||
109 | } | ||
110 | |||
111 | if (lseek(fd1, (off_t)(0-2*sizeof(struct utmp)), SEEK_CUR) == -1) | ||
112 | break; | ||
113 | } while (t == 0); | ||
114 | |||
115 | return t; | ||
116 | #endif /* defined(HAVE_LASTLOG_H) && !defined(DISABLE_LASTLOG) */ | ||
77 | } | 117 | } |
78 | 118 | ||
79 | /* | 119 | /* |
@@ -85,9 +125,10 @@ void | |||
85 | record_login(int pid, const char *ttyname, const char *user, uid_t uid, | 125 | record_login(int pid, const char *ttyname, const char *user, uid_t uid, |
86 | const char *host, struct sockaddr_in * addr) | 126 | const char *host, struct sockaddr_in * addr) |
87 | { | 127 | { |
88 | int fd; | 128 | #if defined(HAVE_LASTLOG_H) && !defined(DISABLE_LASTLOG) |
89 | struct lastlog ll; | 129 | struct lastlog ll; |
90 | char *lastlog; | 130 | char *lastlog; |
131 | #endif /* defined(HAVE_LASTLOG_H) && !defined(DISABLE_LASTLOG) */ | ||
91 | struct UTMP_STR u; | 132 | struct UTMP_STR u; |
92 | const char *utmp, *wtmp; | 133 | const char *utmp, *wtmp; |
93 | 134 | ||
@@ -110,10 +151,13 @@ record_login(int pid, const char *ttyname, const char *user, uid_t uid, | |||
110 | wtmp = _PATH_WTMP; | 151 | wtmp = _PATH_WTMP; |
111 | 152 | ||
112 | login(&u); | 153 | login(&u); |
154 | |||
155 | #ifdef defined(HAVE_LASTLOG_H) && !defined(DISABLE_LASTLOG) | ||
113 | lastlog = _PATH_LASTLOG; | 156 | lastlog = _PATH_LASTLOG; |
114 | 157 | ||
115 | /* Update lastlog unless actually recording a logout. */ | 158 | /* Update lastlog unless actually recording a logout. */ |
116 | if (strcmp(user, "") != 0) { | 159 | if (strcmp(user, "") != 0) { |
160 | int fd; | ||
117 | /* | 161 | /* |
118 | * It is safer to bzero the lastlog structure first because | 162 | * It is safer to bzero the lastlog structure first because |
119 | * some systems might have some extra fields in it (e.g. SGI) | 163 | * some systems might have some extra fields in it (e.g. SGI) |
@@ -132,6 +176,7 @@ record_login(int pid, const char *ttyname, const char *user, uid_t uid, | |||
132 | close(fd); | 176 | close(fd); |
133 | } | 177 | } |
134 | } | 178 | } |
179 | #endif /* defined(HAVE_LASTLOG_H) && !defined(DISABLE_LASTLOG) */ | ||
135 | } | 180 | } |
136 | 181 | ||
137 | /* Records that the user has logged out. */ | 182 | /* Records that the user has logged out. */ |
@@ -14,7 +14,7 @@ | |||
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include "includes.h" | 16 | #include "includes.h" |
17 | RCSID("$Id: pty.c,v 1.10 1999/12/13 23:54:47 damien Exp $"); | 17 | RCSID("$Id: pty.c,v 1.11 1999/12/21 00:18:08 damien Exp $"); |
18 | 18 | ||
19 | #ifdef HAVE_UTIL_H | 19 | #ifdef HAVE_UTIL_H |
20 | # include <util.h> | 20 | # include <util.h> |
@@ -84,7 +84,7 @@ pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, int namebuflen) | |||
84 | } | 84 | } |
85 | return 1; | 85 | return 1; |
86 | #else /* HAVE__GETPTY */ | 86 | #else /* HAVE__GETPTY */ |
87 | #ifdef HAVE_DEV_PTMX | 87 | #if defined(HAVE_DEV_PTMX) |
88 | /* | 88 | /* |
89 | * This code is used e.g. on Solaris 2.x. (Note that Solaris 2.3 | 89 | * This code is used e.g. on Solaris 2.x. (Note that Solaris 2.3 |
90 | * also has bsd-style ptys, but they simply do not work.) | 90 | * also has bsd-style ptys, but they simply do not work.) |