aboutsummaryrefslogtreecommitdiffstats
path: root/exec
diff options
context:
space:
mode:
authorPaul Eggert2024-01-20 16:26:45 -0800
committerPaul Eggert2024-01-20 16:35:24 -0800
commitafc9cd1721c586f960af5e324a61418775ac4543 (patch)
treeac2217ecd93a0f3386d2291e057ba1be435d06c1 /exec
parent54d3de64e1902402a8e7dbb2991f360397281a9e (diff)
downloademacs-afc9cd1721c586f960af5e324a61418775ac4543.tar.gz
emacs-afc9cd1721c586f960af5e324a61418775ac4543.zip
Fix autogen.sh’s spurious ‘git diff’ output
Problem reported by Gerd Möllmann (Bug#68464). * .gitignore: Ignore files in exec that are now copied from build-aux. * admin/merge-gnulib (avoided_flags): Instead of clearing autom4te.cache here ... * autogen.sh (do_git): ... clear it here. Use config.guess, config.sub and install-sh from the Emacs repository, as they are more likely to be up to date. This avoids unnecessary differences among different builders, and avoids unnecessary ‘git diff’ output after autogen.sh. Also, copy these files from build-aux to exec since there should be no difference between the two copies. * exec/config.guess, exec/config.sub, exec/install-sh: Remove from repository, as autogen.sh now copies them from build-aux.
Diffstat (limited to 'exec')
-rwxr-xr-xexec/config.guess1774
-rwxr-xr-xexec/config.sub1907
-rwxr-xr-xexec/install-sh541
3 files changed, 0 insertions, 4222 deletions
diff --git a/exec/config.guess b/exec/config.guess
deleted file mode 100755
index 62974adb3dd..00000000000
--- a/exec/config.guess
+++ /dev/null
@@ -1,1774 +0,0 @@
1#!/usr/bin/sh
2# Attempt to guess a canonical system name.
3# Copyright 1992-2024 Free Software Foundation, Inc.
4
5# shellcheck disable=SC2006,SC2268 # see below for rationale
6
7timestamp='2023-06-23'
8
9# This file is free software; you can redistribute it and/or modify it
10# under the terms of the GNU General Public License as published by
11# the Free Software Foundation, either version 3 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful, but
15# WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17# General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, see <https://www.gnu.org/licenses/>.
21#
22# As a special exception to the GNU General Public License, if you
23# distribute this file as part of a program that contains a
24# configuration script generated by Autoconf, you may include it under
25# the same distribution terms that you use for the rest of that
26# program. This Exception is an additional permission under section 7
27# of the GNU General Public License, version 3 ("GPLv3").
28#
29# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
30#
31# You can get the latest version of this script from:
32# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
33#
34# Please send patches to <config-patches@gnu.org>.
35
36
37# The "shellcheck disable" line above the timestamp inhibits complaints
38# about features and limitations of the classic Bourne shell that were
39# superseded or lifted in POSIX. However, this script identifies a wide
40# variety of pre-POSIX systems that do not have POSIX shells at all, and
41# even some reasonably current systems (Solaris 10 as case-in-point) still
42# have a pre-POSIX /bin/sh.
43
44
45me=`echo "$0" | sed -e 's,.*/,,'`
46
47usage="\
48Usage: $0 [OPTION]
49
50Output the configuration name of the system '$me' is run on.
51
52Options:
53 -h, --help print this help, then exit
54 -t, --time-stamp print date of last modification, then exit
55 -v, --version print version number, then exit
56
57Report bugs and patches to <config-patches@gnu.org>."
58
59version="\
60GNU config.guess ($timestamp)
61
62Originally written by Per Bothner.
63Copyright 1992-2023 Free Software Foundation, Inc.
64
65This is free software; see the source for copying conditions. There is NO
66warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
67
68help="
69Try '$me --help' for more information."
70
71# Parse command line
72while test $# -gt 0 ; do
73 case $1 in
74 --time-stamp | --time* | -t )
75 echo "$timestamp" ; exit ;;
76 --version | -v )
77 echo "$version" ; exit ;;
78 --help | --h* | -h )
79 echo "$usage"; exit ;;
80 -- ) # Stop option processing
81 shift; break ;;
82 - ) # Use stdin as input.
83 break ;;
84 -* )
85 echo "$me: invalid option $1$help" >&2
86 exit 1 ;;
87 * )
88 break ;;
89 esac
90done
91
92if test $# != 0; then
93 echo "$me: too many arguments$help" >&2
94 exit 1
95fi
96
97# Just in case it came from the environment.
98GUESS=
99
100# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
101# compiler to aid in system detection is discouraged as it requires
102# temporary files to be created and, as you can see below, it is a
103# headache to deal with in a portable fashion.
104
105# Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still
106# use 'HOST_CC' if defined, but it is deprecated.
107
108# Portable tmp directory creation inspired by the Autoconf team.
109
110tmp=
111# shellcheck disable=SC2172
112trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
113
114set_cc_for_build() {
115 # prevent multiple calls if $tmp is already set
116 test "$tmp" && return 0
117 : "${TMPDIR=/tmp}"
118 # shellcheck disable=SC2039,SC3028
119 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
120 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
121 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
122 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
123 dummy=$tmp/dummy
124 case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
125 ,,) echo "int x;" > "$dummy.c"
126 for driver in cc gcc c89 c99 ; do
127 if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
128 CC_FOR_BUILD=$driver
129 break
130 fi
131 done
132 if test x"$CC_FOR_BUILD" = x ; then
133 CC_FOR_BUILD=no_compiler_found
134 fi
135 ;;
136 ,,*) CC_FOR_BUILD=$CC ;;
137 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
138 esac
139}
140
141# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
142# (ghazi@noc.rutgers.edu 1994-08-24)
143if test -f /.attbin/uname ; then
144 PATH=$PATH:/.attbin ; export PATH
145fi
146
147UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
148UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
149UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
150UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
151
152case $UNAME_SYSTEM in
153Linux|GNU|GNU/*)
154 LIBC=unknown
155
156 set_cc_for_build
157 cat <<-EOF > "$dummy.c"
158 #include <features.h>
159 #if defined(__UCLIBC__)
160 LIBC=uclibc
161 #elif defined(__dietlibc__)
162 LIBC=dietlibc
163 #elif defined(__GLIBC__)
164 LIBC=gnu
165 #else
166 #include <stdarg.h>
167 /* First heuristic to detect musl libc. */
168 #ifdef __DEFINED_va_list
169 LIBC=musl
170 #endif
171 #endif
172 EOF
173 cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
174 eval "$cc_set_libc"
175
176 # Second heuristic to detect musl libc.
177 if [ "$LIBC" = unknown ] &&
178 command -v ldd >/dev/null &&
179 ldd --version 2>&1 | grep -q ^musl; then
180 LIBC=musl
181 fi
182
183 # If the system lacks a compiler, then just pick glibc.
184 # We could probably try harder.
185 if [ "$LIBC" = unknown ]; then
186 LIBC=gnu
187 fi
188 ;;
189esac
190
191# Note: order is significant - the case branches are not exclusive.
192
193case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
194 *:NetBSD:*:*)
195 # NetBSD (nbsd) targets should (where applicable) match one or
196 # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
197 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
198 # switched to ELF, *-*-netbsd* would select the old
199 # object file format. This provides both forward
200 # compatibility and a consistent mechanism for selecting the
201 # object file format.
202 #
203 # Note: NetBSD doesn't particularly care about the vendor
204 # portion of the name. We always set it to "unknown".
205 UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
206 /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
207 /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
208 echo unknown)`
209 case $UNAME_MACHINE_ARCH in
210 aarch64eb) machine=aarch64_be-unknown ;;
211 armeb) machine=armeb-unknown ;;
212 arm*) machine=arm-unknown ;;
213 sh3el) machine=shl-unknown ;;
214 sh3eb) machine=sh-unknown ;;
215 sh5el) machine=sh5le-unknown ;;
216 earmv*)
217 arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
218 endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
219 machine=${arch}${endian}-unknown
220 ;;
221 *) machine=$UNAME_MACHINE_ARCH-unknown ;;
222 esac
223 # The Operating System including object format, if it has switched
224 # to ELF recently (or will in the future) and ABI.
225 case $UNAME_MACHINE_ARCH in
226 earm*)
227 os=netbsdelf
228 ;;
229 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
230 set_cc_for_build
231 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
232 | grep -q __ELF__
233 then
234 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
235 # Return netbsd for either. FIX?
236 os=netbsd
237 else
238 os=netbsdelf
239 fi
240 ;;
241 *)
242 os=netbsd
243 ;;
244 esac
245 # Determine ABI tags.
246 case $UNAME_MACHINE_ARCH in
247 earm*)
248 expr='s/^earmv[0-9]/-eabi/;s/eb$//'
249 abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
250 ;;
251 esac
252 # The OS release
253 # Debian GNU/NetBSD machines have a different userland, and
254 # thus, need a distinct triplet. However, they do not need
255 # kernel version information, so it can be replaced with a
256 # suitable tag, in the style of linux-gnu.
257 case $UNAME_VERSION in
258 Debian*)
259 release='-gnu'
260 ;;
261 *)
262 release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
263 ;;
264 esac
265 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
266 # contains redundant information, the shorter form:
267 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
268 GUESS=$machine-${os}${release}${abi-}
269 ;;
270 *:Bitrig:*:*)
271 UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
272 GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
273 ;;
274 *:OpenBSD:*:*)
275 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
276 GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
277 ;;
278 *:SecBSD:*:*)
279 UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
280 GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
281 ;;
282 *:LibertyBSD:*:*)
283 UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
284 GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
285 ;;
286 *:MidnightBSD:*:*)
287 GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
288 ;;
289 *:ekkoBSD:*:*)
290 GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
291 ;;
292 *:SolidBSD:*:*)
293 GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
294 ;;
295 *:OS108:*:*)
296 GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
297 ;;
298 macppc:MirBSD:*:*)
299 GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
300 ;;
301 *:MirBSD:*:*)
302 GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
303 ;;
304 *:Sortix:*:*)
305 GUESS=$UNAME_MACHINE-unknown-sortix
306 ;;
307 *:Twizzler:*:*)
308 GUESS=$UNAME_MACHINE-unknown-twizzler
309 ;;
310 *:Redox:*:*)
311 GUESS=$UNAME_MACHINE-unknown-redox
312 ;;
313 mips:OSF1:*.*)
314 GUESS=mips-dec-osf1
315 ;;
316 alpha:OSF1:*:*)
317 # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
318 trap '' 0
319 case $UNAME_RELEASE in
320 *4.0)
321 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
322 ;;
323 *5.*)
324 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
325 ;;
326 esac
327 # According to Compaq, /usr/sbin/psrinfo has been available on
328 # OSF/1 and Tru64 systems produced since 1995. I hope that
329 # covers most systems running today. This code pipes the CPU
330 # types through head -n 1, so we only detect the type of CPU 0.
331 ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
332 case $ALPHA_CPU_TYPE in
333 "EV4 (21064)")
334 UNAME_MACHINE=alpha ;;
335 "EV4.5 (21064)")
336 UNAME_MACHINE=alpha ;;
337 "LCA4 (21066/21068)")
338 UNAME_MACHINE=alpha ;;
339 "EV5 (21164)")
340 UNAME_MACHINE=alphaev5 ;;
341 "EV5.6 (21164A)")
342 UNAME_MACHINE=alphaev56 ;;
343 "EV5.6 (21164PC)")
344 UNAME_MACHINE=alphapca56 ;;
345 "EV5.7 (21164PC)")
346 UNAME_MACHINE=alphapca57 ;;
347 "EV6 (21264)")
348 UNAME_MACHINE=alphaev6 ;;
349 "EV6.7 (21264A)")
350 UNAME_MACHINE=alphaev67 ;;
351 "EV6.8CB (21264C)")
352 UNAME_MACHINE=alphaev68 ;;
353 "EV6.8AL (21264B)")
354 UNAME_MACHINE=alphaev68 ;;
355 "EV6.8CX (21264D)")
356 UNAME_MACHINE=alphaev68 ;;
357 "EV6.9A (21264/EV69A)")
358 UNAME_MACHINE=alphaev69 ;;
359 "EV7 (21364)")
360 UNAME_MACHINE=alphaev7 ;;
361 "EV7.9 (21364A)")
362 UNAME_MACHINE=alphaev79 ;;
363 esac
364 # A Pn.n version is a patched version.
365 # A Vn.n version is a released version.
366 # A Tn.n version is a released field test version.
367 # A Xn.n version is an unreleased experimental baselevel.
368 # 1.2 uses "1.2" for uname -r.
369 OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
370 GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
371 ;;
372 Amiga*:UNIX_System_V:4.0:*)
373 GUESS=m68k-unknown-sysv4
374 ;;
375 *:[Aa]miga[Oo][Ss]:*:*)
376 GUESS=$UNAME_MACHINE-unknown-amigaos
377 ;;
378 *:[Mm]orph[Oo][Ss]:*:*)
379 GUESS=$UNAME_MACHINE-unknown-morphos
380 ;;
381 *:OS/390:*:*)
382 GUESS=i370-ibm-openedition
383 ;;
384 *:z/VM:*:*)
385 GUESS=s390-ibm-zvmoe
386 ;;
387 *:OS400:*:*)
388 GUESS=powerpc-ibm-os400
389 ;;
390 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
391 GUESS=arm-acorn-riscix$UNAME_RELEASE
392 ;;
393 arm*:riscos:*:*|arm*:RISCOS:*:*)
394 GUESS=arm-unknown-riscos
395 ;;
396 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
397 GUESS=hppa1.1-hitachi-hiuxmpp
398 ;;
399 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
400 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
401 case `(/bin/universe) 2>/dev/null` in
402 att) GUESS=pyramid-pyramid-sysv3 ;;
403 *) GUESS=pyramid-pyramid-bsd ;;
404 esac
405 ;;
406 NILE*:*:*:dcosx)
407 GUESS=pyramid-pyramid-svr4
408 ;;
409 DRS?6000:unix:4.0:6*)
410 GUESS=sparc-icl-nx6
411 ;;
412 DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
413 case `/usr/bin/uname -p` in
414 sparc) GUESS=sparc-icl-nx7 ;;
415 esac
416 ;;
417 s390x:SunOS:*:*)
418 SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
419 GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
420 ;;
421 sun4H:SunOS:5.*:*)
422 SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
423 GUESS=sparc-hal-solaris2$SUN_REL
424 ;;
425 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
426 SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
427 GUESS=sparc-sun-solaris2$SUN_REL
428 ;;
429 i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
430 GUESS=i386-pc-auroraux$UNAME_RELEASE
431 ;;
432 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
433 set_cc_for_build
434 SUN_ARCH=i386
435 # If there is a compiler, see if it is configured for 64-bit objects.
436 # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
437 # This test works for both compilers.
438 if test "$CC_FOR_BUILD" != no_compiler_found; then
439 if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
440 (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
441 grep IS_64BIT_ARCH >/dev/null
442 then
443 SUN_ARCH=x86_64
444 fi
445 fi
446 SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
447 GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
448 ;;
449 sun4*:SunOS:6*:*)
450 # According to config.sub, this is the proper way to canonicalize
451 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
452 # it's likely to be more like Solaris than SunOS4.
453 SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
454 GUESS=sparc-sun-solaris3$SUN_REL
455 ;;
456 sun4*:SunOS:*:*)
457 case `/usr/bin/arch -k` in
458 Series*|S4*)
459 UNAME_RELEASE=`uname -v`
460 ;;
461 esac
462 # Japanese Language versions have a version number like '4.1.3-JL'.
463 SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
464 GUESS=sparc-sun-sunos$SUN_REL
465 ;;
466 sun3*:SunOS:*:*)
467 GUESS=m68k-sun-sunos$UNAME_RELEASE
468 ;;
469 sun*:*:4.2BSD:*)
470 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
471 test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
472 case `/bin/arch` in
473 sun3)
474 GUESS=m68k-sun-sunos$UNAME_RELEASE
475 ;;
476 sun4)
477 GUESS=sparc-sun-sunos$UNAME_RELEASE
478 ;;
479 esac
480 ;;
481 aushp:SunOS:*:*)
482 GUESS=sparc-auspex-sunos$UNAME_RELEASE
483 ;;
484 # The situation for MiNT is a little confusing. The machine name
485 # can be virtually everything (everything which is not
486 # "atarist" or "atariste" at least should have a processor
487 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
488 # to the lowercase version "mint" (or "freemint"). Finally
489 # the system name "TOS" denotes a system which is actually not
490 # MiNT. But MiNT is downward compatible to TOS, so this should
491 # be no problem.
492 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
493 GUESS=m68k-atari-mint$UNAME_RELEASE
494 ;;
495 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
496 GUESS=m68k-atari-mint$UNAME_RELEASE
497 ;;
498 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
499 GUESS=m68k-atari-mint$UNAME_RELEASE
500 ;;
501 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
502 GUESS=m68k-milan-mint$UNAME_RELEASE
503 ;;
504 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
505 GUESS=m68k-hades-mint$UNAME_RELEASE
506 ;;
507 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
508 GUESS=m68k-unknown-mint$UNAME_RELEASE
509 ;;
510 m68k:machten:*:*)
511 GUESS=m68k-apple-machten$UNAME_RELEASE
512 ;;
513 powerpc:machten:*:*)
514 GUESS=powerpc-apple-machten$UNAME_RELEASE
515 ;;
516 RISC*:Mach:*:*)
517 GUESS=mips-dec-mach_bsd4.3
518 ;;
519 RISC*:ULTRIX:*:*)
520 GUESS=mips-dec-ultrix$UNAME_RELEASE
521 ;;
522 VAX*:ULTRIX*:*:*)
523 GUESS=vax-dec-ultrix$UNAME_RELEASE
524 ;;
525 2020:CLIX:*:* | 2430:CLIX:*:*)
526 GUESS=clipper-intergraph-clix$UNAME_RELEASE
527 ;;
528 mips:*:*:UMIPS | mips:*:*:RISCos)
529 set_cc_for_build
530 sed 's/^ //' << EOF > "$dummy.c"
531#ifdef __cplusplus
532#include <stdio.h> /* for printf() prototype */
533 int main (int argc, char *argv[]) {
534#else
535 int main (argc, argv) int argc; char *argv[]; {
536#endif
537 #if defined (host_mips) && defined (MIPSEB)
538 #if defined (SYSTYPE_SYSV)
539 printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
540 #endif
541 #if defined (SYSTYPE_SVR4)
542 printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
543 #endif
544 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
545 printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
546 #endif
547 #endif
548 exit (-1);
549 }
550EOF
551 $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
552 dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
553 SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
554 { echo "$SYSTEM_NAME"; exit; }
555 GUESS=mips-mips-riscos$UNAME_RELEASE
556 ;;
557 Motorola:PowerMAX_OS:*:*)
558 GUESS=powerpc-motorola-powermax
559 ;;
560 Motorola:*:4.3:PL8-*)
561 GUESS=powerpc-harris-powermax
562 ;;
563 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
564 GUESS=powerpc-harris-powermax
565 ;;
566 Night_Hawk:Power_UNIX:*:*)
567 GUESS=powerpc-harris-powerunix
568 ;;
569 m88k:CX/UX:7*:*)
570 GUESS=m88k-harris-cxux7
571 ;;
572 m88k:*:4*:R4*)
573 GUESS=m88k-motorola-sysv4
574 ;;
575 m88k:*:3*:R3*)
576 GUESS=m88k-motorola-sysv3
577 ;;
578 AViiON:dgux:*:*)
579 # DG/UX returns AViiON for all architectures
580 UNAME_PROCESSOR=`/usr/bin/uname -p`
581 if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
582 then
583 if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
584 test "$TARGET_BINARY_INTERFACE"x = x
585 then
586 GUESS=m88k-dg-dgux$UNAME_RELEASE
587 else
588 GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
589 fi
590 else
591 GUESS=i586-dg-dgux$UNAME_RELEASE
592 fi
593 ;;
594 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
595 GUESS=m88k-dolphin-sysv3
596 ;;
597 M88*:*:R3*:*)
598 # Delta 88k system running SVR3
599 GUESS=m88k-motorola-sysv3
600 ;;
601 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
602 GUESS=m88k-tektronix-sysv3
603 ;;
604 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
605 GUESS=m68k-tektronix-bsd
606 ;;
607 *:IRIX*:*:*)
608 IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
609 GUESS=mips-sgi-irix$IRIX_REL
610 ;;
611 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
612 GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id
613 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
614 i*86:AIX:*:*)
615 GUESS=i386-ibm-aix
616 ;;
617 ia64:AIX:*:*)
618 if test -x /usr/bin/oslevel ; then
619 IBM_REV=`/usr/bin/oslevel`
620 else
621 IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
622 fi
623 GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
624 ;;
625 *:AIX:2:3)
626 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
627 set_cc_for_build
628 sed 's/^ //' << EOF > "$dummy.c"
629 #include <sys/systemcfg.h>
630
631 main()
632 {
633 if (!__power_pc())
634 exit(1);
635 puts("powerpc-ibm-aix3.2.5");
636 exit(0);
637 }
638EOF
639 if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
640 then
641 GUESS=$SYSTEM_NAME
642 else
643 GUESS=rs6000-ibm-aix3.2.5
644 fi
645 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
646 GUESS=rs6000-ibm-aix3.2.4
647 else
648 GUESS=rs6000-ibm-aix3.2
649 fi
650 ;;
651 *:AIX:*:[4567])
652 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
653 if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
654 IBM_ARCH=rs6000
655 else
656 IBM_ARCH=powerpc
657 fi
658 if test -x /usr/bin/lslpp ; then
659 IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
660 awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
661 else
662 IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
663 fi
664 GUESS=$IBM_ARCH-ibm-aix$IBM_REV
665 ;;
666 *:AIX:*:*)
667 GUESS=rs6000-ibm-aix
668 ;;
669 ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
670 GUESS=romp-ibm-bsd4.4
671 ;;
672 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
673 GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to
674 ;; # report: romp-ibm BSD 4.3
675 *:BOSX:*:*)
676 GUESS=rs6000-bull-bosx
677 ;;
678 DPX/2?00:B.O.S.:*:*)
679 GUESS=m68k-bull-sysv3
680 ;;
681 9000/[34]??:4.3bsd:1.*:*)
682 GUESS=m68k-hp-bsd
683 ;;
684 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
685 GUESS=m68k-hp-bsd4.4
686 ;;
687 9000/[34678]??:HP-UX:*:*)
688 HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
689 case $UNAME_MACHINE in
690 9000/31?) HP_ARCH=m68000 ;;
691 9000/[34]??) HP_ARCH=m68k ;;
692 9000/[678][0-9][0-9])
693 if test -x /usr/bin/getconf; then
694 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
695 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
696 case $sc_cpu_version in
697 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
698 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
699 532) # CPU_PA_RISC2_0
700 case $sc_kernel_bits in
701 32) HP_ARCH=hppa2.0n ;;
702 64) HP_ARCH=hppa2.0w ;;
703 '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
704 esac ;;
705 esac
706 fi
707 if test "$HP_ARCH" = ""; then
708 set_cc_for_build
709 sed 's/^ //' << EOF > "$dummy.c"
710
711 #define _HPUX_SOURCE
712 #include <stdlib.h>
713 #include <unistd.h>
714
715 int main ()
716 {
717 #if defined(_SC_KERNEL_BITS)
718 long bits = sysconf(_SC_KERNEL_BITS);
719 #endif
720 long cpu = sysconf (_SC_CPU_VERSION);
721
722 switch (cpu)
723 {
724 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
725 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
726 case CPU_PA_RISC2_0:
727 #if defined(_SC_KERNEL_BITS)
728 switch (bits)
729 {
730 case 64: puts ("hppa2.0w"); break;
731 case 32: puts ("hppa2.0n"); break;
732 default: puts ("hppa2.0"); break;
733 } break;
734 #else /* !defined(_SC_KERNEL_BITS) */
735 puts ("hppa2.0"); break;
736 #endif
737 default: puts ("hppa1.0"); break;
738 }
739 exit (0);
740 }
741EOF
742 (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
743 test -z "$HP_ARCH" && HP_ARCH=hppa
744 fi ;;
745 esac
746 if test "$HP_ARCH" = hppa2.0w
747 then
748 set_cc_for_build
749
750 # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
751 # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
752 # generating 64-bit code. GNU and HP use different nomenclature:
753 #
754 # $ CC_FOR_BUILD=cc ./config.guess
755 # => hppa2.0w-hp-hpux11.23
756 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
757 # => hppa64-hp-hpux11.23
758
759 if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
760 grep -q __LP64__
761 then
762 HP_ARCH=hppa2.0w
763 else
764 HP_ARCH=hppa64
765 fi
766 fi
767 GUESS=$HP_ARCH-hp-hpux$HPUX_REV
768 ;;
769 ia64:HP-UX:*:*)
770 HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
771 GUESS=ia64-hp-hpux$HPUX_REV
772 ;;
773 3050*:HI-UX:*:*)
774 set_cc_for_build
775 sed 's/^ //' << EOF > "$dummy.c"
776 #include <unistd.h>
777 int
778 main ()
779 {
780 long cpu = sysconf (_SC_CPU_VERSION);
781 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
782 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
783 results, however. */
784 if (CPU_IS_PA_RISC (cpu))
785 {
786 switch (cpu)
787 {
788 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
789 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
790 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
791 default: puts ("hppa-hitachi-hiuxwe2"); break;
792 }
793 }
794 else if (CPU_IS_HP_MC68K (cpu))
795 puts ("m68k-hitachi-hiuxwe2");
796 else puts ("unknown-hitachi-hiuxwe2");
797 exit (0);
798 }
799EOF
800 $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
801 { echo "$SYSTEM_NAME"; exit; }
802 GUESS=unknown-hitachi-hiuxwe2
803 ;;
804 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
805 GUESS=hppa1.1-hp-bsd
806 ;;
807 9000/8??:4.3bsd:*:*)
808 GUESS=hppa1.0-hp-bsd
809 ;;
810 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
811 GUESS=hppa1.0-hp-mpeix
812 ;;
813 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
814 GUESS=hppa1.1-hp-osf
815 ;;
816 hp8??:OSF1:*:*)
817 GUESS=hppa1.0-hp-osf
818 ;;
819 i*86:OSF1:*:*)
820 if test -x /usr/sbin/sysversion ; then
821 GUESS=$UNAME_MACHINE-unknown-osf1mk
822 else
823 GUESS=$UNAME_MACHINE-unknown-osf1
824 fi
825 ;;
826 parisc*:Lites*:*:*)
827 GUESS=hppa1.1-hp-lites
828 ;;
829 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
830 GUESS=c1-convex-bsd
831 ;;
832 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
833 if getsysinfo -f scalar_acc
834 then echo c32-convex-bsd
835 else echo c2-convex-bsd
836 fi
837 exit ;;
838 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
839 GUESS=c34-convex-bsd
840 ;;
841 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
842 GUESS=c38-convex-bsd
843 ;;
844 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
845 GUESS=c4-convex-bsd
846 ;;
847 CRAY*Y-MP:*:*:*)
848 CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
849 GUESS=ymp-cray-unicos$CRAY_REL
850 ;;
851 CRAY*[A-Z]90:*:*:*)
852 echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
853 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
854 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
855 -e 's/\.[^.]*$/.X/'
856 exit ;;
857 CRAY*TS:*:*:*)
858 CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
859 GUESS=t90-cray-unicos$CRAY_REL
860 ;;
861 CRAY*T3E:*:*:*)
862 CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
863 GUESS=alphaev5-cray-unicosmk$CRAY_REL
864 ;;
865 CRAY*SV1:*:*:*)
866 CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
867 GUESS=sv1-cray-unicos$CRAY_REL
868 ;;
869 *:UNICOS/mp:*:*)
870 CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
871 GUESS=craynv-cray-unicosmp$CRAY_REL
872 ;;
873 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
874 FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
875 FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
876 FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
877 GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
878 ;;
879 5000:UNIX_System_V:4.*:*)
880 FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
881 FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
882 GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
883 ;;
884 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
885 GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
886 ;;
887 sparc*:BSD/OS:*:*)
888 GUESS=sparc-unknown-bsdi$UNAME_RELEASE
889 ;;
890 *:BSD/OS:*:*)
891 GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
892 ;;
893 arm:FreeBSD:*:*)
894 UNAME_PROCESSOR=`uname -p`
895 set_cc_for_build
896 if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
897 | grep -q __ARM_PCS_VFP
898 then
899 FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
900 GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
901 else
902 FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
903 GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
904 fi
905 ;;
906 *:FreeBSD:*:*)
907 UNAME_PROCESSOR=`/usr/bin/uname -p`
908 case $UNAME_PROCESSOR in
909 amd64)
910 UNAME_PROCESSOR=x86_64 ;;
911 i386)
912 UNAME_PROCESSOR=i586 ;;
913 esac
914 FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
915 GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
916 ;;
917 i*:CYGWIN*:*)
918 GUESS=$UNAME_MACHINE-pc-cygwin
919 ;;
920 *:MINGW64*:*)
921 GUESS=$UNAME_MACHINE-pc-mingw64
922 ;;
923 *:MINGW*:*)
924 GUESS=$UNAME_MACHINE-pc-mingw32
925 ;;
926 *:MSYS*:*)
927 GUESS=$UNAME_MACHINE-pc-msys
928 ;;
929 i*:PW*:*)
930 GUESS=$UNAME_MACHINE-pc-pw32
931 ;;
932 *:SerenityOS:*:*)
933 GUESS=$UNAME_MACHINE-pc-serenity
934 ;;
935 *:Interix*:*)
936 case $UNAME_MACHINE in
937 x86)
938 GUESS=i586-pc-interix$UNAME_RELEASE
939 ;;
940 authenticamd | genuineintel | EM64T)
941 GUESS=x86_64-unknown-interix$UNAME_RELEASE
942 ;;
943 IA64)
944 GUESS=ia64-unknown-interix$UNAME_RELEASE
945 ;;
946 esac ;;
947 i*:UWIN*:*)
948 GUESS=$UNAME_MACHINE-pc-uwin
949 ;;
950 amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
951 GUESS=x86_64-pc-cygwin
952 ;;
953 prep*:SunOS:5.*:*)
954 SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
955 GUESS=powerpcle-unknown-solaris2$SUN_REL
956 ;;
957 *:GNU:*:*)
958 # the GNU system
959 GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
960 GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
961 GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
962 ;;
963 *:GNU/*:*:*)
964 # other systems with GNU libc and userland
965 GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
966 GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
967 GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
968 ;;
969 x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
970 GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
971 ;;
972 *:[Mm]anagarm:*:*)
973 GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
974 ;;
975 *:Minix:*:*)
976 GUESS=$UNAME_MACHINE-unknown-minix
977 ;;
978 aarch64:Linux:*:*)
979 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
980 ;;
981 aarch64_be:Linux:*:*)
982 UNAME_MACHINE=aarch64_be
983 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
984 ;;
985 alpha:Linux:*:*)
986 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
987 EV5) UNAME_MACHINE=alphaev5 ;;
988 EV56) UNAME_MACHINE=alphaev56 ;;
989 PCA56) UNAME_MACHINE=alphapca56 ;;
990 PCA57) UNAME_MACHINE=alphapca56 ;;
991 EV6) UNAME_MACHINE=alphaev6 ;;
992 EV67) UNAME_MACHINE=alphaev67 ;;
993 EV68*) UNAME_MACHINE=alphaev68 ;;
994 esac
995 objdump --private-headers /bin/sh | grep -q ld.so.1
996 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
997 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
998 ;;
999 arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
1000 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1001 ;;
1002 arm*:Linux:*:*)
1003 set_cc_for_build
1004 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
1005 | grep -q __ARM_EABI__
1006 then
1007 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1008 else
1009 if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
1010 | grep -q __ARM_PCS_VFP
1011 then
1012 GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
1013 else
1014 GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
1015 fi
1016 fi
1017 ;;
1018 avr32*:Linux:*:*)
1019 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1020 ;;
1021 cris:Linux:*:*)
1022 GUESS=$UNAME_MACHINE-axis-linux-$LIBC
1023 ;;
1024 crisv32:Linux:*:*)
1025 GUESS=$UNAME_MACHINE-axis-linux-$LIBC
1026 ;;
1027 e2k:Linux:*:*)
1028 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1029 ;;
1030 frv:Linux:*:*)
1031 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1032 ;;
1033 hexagon:Linux:*:*)
1034 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1035 ;;
1036 i*86:Linux:*:*)
1037 GUESS=$UNAME_MACHINE-pc-linux-$LIBC
1038 ;;
1039 ia64:Linux:*:*)
1040 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1041 ;;
1042 k1om:Linux:*:*)
1043 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1044 ;;
1045 loongarch32:Linux:*:* | loongarch64:Linux:*:*)
1046 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1047 ;;
1048 m32r*:Linux:*:*)
1049 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1050 ;;
1051 m68*:Linux:*:*)
1052 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1053 ;;
1054 mips:Linux:*:* | mips64:Linux:*:*)
1055 set_cc_for_build
1056 IS_GLIBC=0
1057 test x"${LIBC}" = xgnu && IS_GLIBC=1
1058 sed 's/^ //' << EOF > "$dummy.c"
1059 #undef CPU
1060 #undef mips
1061 #undef mipsel
1062 #undef mips64
1063 #undef mips64el
1064 #if ${IS_GLIBC} && defined(_ABI64)
1065 LIBCABI=gnuabi64
1066 #else
1067 #if ${IS_GLIBC} && defined(_ABIN32)
1068 LIBCABI=gnuabin32
1069 #else
1070 LIBCABI=${LIBC}
1071 #endif
1072 #endif
1073
1074 #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
1075 CPU=mipsisa64r6
1076 #else
1077 #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
1078 CPU=mipsisa32r6
1079 #else
1080 #if defined(__mips64)
1081 CPU=mips64
1082 #else
1083 CPU=mips
1084 #endif
1085 #endif
1086 #endif
1087
1088 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
1089 MIPS_ENDIAN=el
1090 #else
1091 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
1092 MIPS_ENDIAN=
1093 #else
1094 MIPS_ENDIAN=
1095 #endif
1096 #endif
1097EOF
1098 cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
1099 eval "$cc_set_vars"
1100 test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
1101 ;;
1102 mips64el:Linux:*:*)
1103 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1104 ;;
1105 openrisc*:Linux:*:*)
1106 GUESS=or1k-unknown-linux-$LIBC
1107 ;;
1108 or32:Linux:*:* | or1k*:Linux:*:*)
1109 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1110 ;;
1111 padre:Linux:*:*)
1112 GUESS=sparc-unknown-linux-$LIBC
1113 ;;
1114 parisc64:Linux:*:* | hppa64:Linux:*:*)
1115 GUESS=hppa64-unknown-linux-$LIBC
1116 ;;
1117 parisc:Linux:*:* | hppa:Linux:*:*)
1118 # Look for CPU level
1119 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
1120 PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
1121 PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
1122 *) GUESS=hppa-unknown-linux-$LIBC ;;
1123 esac
1124 ;;
1125 ppc64:Linux:*:*)
1126 GUESS=powerpc64-unknown-linux-$LIBC
1127 ;;
1128 ppc:Linux:*:*)
1129 GUESS=powerpc-unknown-linux-$LIBC
1130 ;;
1131 ppc64le:Linux:*:*)
1132 GUESS=powerpc64le-unknown-linux-$LIBC
1133 ;;
1134 ppcle:Linux:*:*)
1135 GUESS=powerpcle-unknown-linux-$LIBC
1136 ;;
1137 riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
1138 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1139 ;;
1140 s390:Linux:*:* | s390x:Linux:*:*)
1141 GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
1142 ;;
1143 sh64*:Linux:*:*)
1144 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1145 ;;
1146 sh*:Linux:*:*)
1147 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1148 ;;
1149 sparc:Linux:*:* | sparc64:Linux:*:*)
1150 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1151 ;;
1152 tile*:Linux:*:*)
1153 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1154 ;;
1155 vax:Linux:*:*)
1156 GUESS=$UNAME_MACHINE-dec-linux-$LIBC
1157 ;;
1158 x86_64:Linux:*:*)
1159 set_cc_for_build
1160 CPU=$UNAME_MACHINE
1161 LIBCABI=$LIBC
1162 if test "$CC_FOR_BUILD" != no_compiler_found; then
1163 ABI=64
1164 sed 's/^ //' << EOF > "$dummy.c"
1165 #ifdef __i386__
1166 ABI=x86
1167 #else
1168 #ifdef __ILP32__
1169 ABI=x32
1170 #endif
1171 #endif
1172EOF
1173 cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
1174 eval "$cc_set_abi"
1175 case $ABI in
1176 x86) CPU=i686 ;;
1177 x32) LIBCABI=${LIBC}x32 ;;
1178 esac
1179 fi
1180 GUESS=$CPU-pc-linux-$LIBCABI
1181 ;;
1182 xtensa*:Linux:*:*)
1183 GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1184 ;;
1185 i*86:DYNIX/ptx:4*:*)
1186 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1187 # earlier versions are messed up and put the nodename in both
1188 # sysname and nodename.
1189 GUESS=i386-sequent-sysv4
1190 ;;
1191 i*86:UNIX_SV:4.2MP:2.*)
1192 # Unixware is an offshoot of SVR4, but it has its own version
1193 # number series starting with 2...
1194 # I am not positive that other SVR4 systems won't match this,
1195 # I just have to hope. -- rms.
1196 # Use sysv4.2uw... so that sysv4* matches it.
1197 GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
1198 ;;
1199 i*86:OS/2:*:*)
1200 # If we were able to find 'uname', then EMX Unix compatibility
1201 # is probably installed.
1202 GUESS=$UNAME_MACHINE-pc-os2-emx
1203 ;;
1204 i*86:XTS-300:*:STOP)
1205 GUESS=$UNAME_MACHINE-unknown-stop
1206 ;;
1207 i*86:atheos:*:*)
1208 GUESS=$UNAME_MACHINE-unknown-atheos
1209 ;;
1210 i*86:syllable:*:*)
1211 GUESS=$UNAME_MACHINE-pc-syllable
1212 ;;
1213 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1214 GUESS=i386-unknown-lynxos$UNAME_RELEASE
1215 ;;
1216 i*86:*DOS:*:*)
1217 GUESS=$UNAME_MACHINE-pc-msdosdjgpp
1218 ;;
1219 i*86:*:4.*:*)
1220 UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
1221 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1222 GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
1223 else
1224 GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
1225 fi
1226 ;;
1227 i*86:*:5:[678]*)
1228 # UnixWare 7.x, OpenUNIX and OpenServer 6.
1229 case `/bin/uname -X | grep "^Machine"` in
1230 *486*) UNAME_MACHINE=i486 ;;
1231 *Pentium) UNAME_MACHINE=i586 ;;
1232 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1233 esac
1234 GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1235 ;;
1236 i*86:*:3.2:*)
1237 if test -f /usr/options/cb.name; then
1238 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1239 GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
1240 elif /bin/uname -X 2>/dev/null >/dev/null ; then
1241 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1242 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1243 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1244 && UNAME_MACHINE=i586
1245 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1246 && UNAME_MACHINE=i686
1247 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1248 && UNAME_MACHINE=i686
1249 GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
1250 else
1251 GUESS=$UNAME_MACHINE-pc-sysv32
1252 fi
1253 ;;
1254 pc:*:*:*)
1255 # Left here for compatibility:
1256 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1257 # the processor, so we play safe by assuming i586.
1258 # Note: whatever this is, it MUST be the same as what config.sub
1259 # prints for the "djgpp" host, or else GDB configure will decide that
1260 # this is a cross-build.
1261 GUESS=i586-pc-msdosdjgpp
1262 ;;
1263 Intel:Mach:3*:*)
1264 GUESS=i386-pc-mach3
1265 ;;
1266 paragon:*:*:*)
1267 GUESS=i860-intel-osf1
1268 ;;
1269 i860:*:4.*:*) # i860-SVR4
1270 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1271 GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4
1272 else # Add other i860-SVR4 vendors below as they are discovered.
1273 GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4
1274 fi
1275 ;;
1276 mini*:CTIX:SYS*5:*)
1277 # "miniframe"
1278 GUESS=m68010-convergent-sysv
1279 ;;
1280 mc68k:UNIX:SYSTEM5:3.51m)
1281 GUESS=m68k-convergent-sysv
1282 ;;
1283 M680?0:D-NIX:5.3:*)
1284 GUESS=m68k-diab-dnix
1285 ;;
1286 M68*:*:R3V[5678]*:*)
1287 test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1288 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
1289 OS_REL=''
1290 test -r /etc/.relid \
1291 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1292 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1293 && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
1294 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1295 && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
1296 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1297 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1298 && { echo i486-ncr-sysv4; exit; } ;;
1299 NCR*:*:4.2:* | MPRAS*:*:4.2:*)
1300 OS_REL='.3'
1301 test -r /etc/.relid \
1302 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1303 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1304 && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
1305 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1306 && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
1307 /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1308 && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
1309 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1310 GUESS=m68k-unknown-lynxos$UNAME_RELEASE
1311 ;;
1312 mc68030:UNIX_System_V:4.*:*)
1313 GUESS=m68k-atari-sysv4
1314 ;;
1315 TSUNAMI:LynxOS:2.*:*)
1316 GUESS=sparc-unknown-lynxos$UNAME_RELEASE
1317 ;;
1318 rs6000:LynxOS:2.*:*)
1319 GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
1320 ;;
1321 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1322 GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
1323 ;;
1324 SM[BE]S:UNIX_SV:*:*)
1325 GUESS=mips-dde-sysv$UNAME_RELEASE
1326 ;;
1327 RM*:ReliantUNIX-*:*:*)
1328 GUESS=mips-sni-sysv4
1329 ;;
1330 RM*:SINIX-*:*:*)
1331 GUESS=mips-sni-sysv4
1332 ;;
1333 *:SINIX-*:*:*)
1334 if uname -p 2>/dev/null >/dev/null ; then
1335 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1336 GUESS=$UNAME_MACHINE-sni-sysv4
1337 else
1338 GUESS=ns32k-sni-sysv
1339 fi
1340 ;;
1341 PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort
1342 # says <Richard.M.Bartel@ccMail.Census.GOV>
1343 GUESS=i586-unisys-sysv4
1344 ;;
1345 *:UNIX_System_V:4*:FTX*)
1346 # From Gerald Hewes <hewes@openmarket.com>.
1347 # How about differentiating between stratus architectures? -djm
1348 GUESS=hppa1.1-stratus-sysv4
1349 ;;
1350 *:*:*:FTX*)
1351 # From seanf@swdc.stratus.com.
1352 GUESS=i860-stratus-sysv4
1353 ;;
1354 i*86:VOS:*:*)
1355 # From Paul.Green@stratus.com.
1356 GUESS=$UNAME_MACHINE-stratus-vos
1357 ;;
1358 *:VOS:*:*)
1359 # From Paul.Green@stratus.com.
1360 GUESS=hppa1.1-stratus-vos
1361 ;;
1362 mc68*:A/UX:*:*)
1363 GUESS=m68k-apple-aux$UNAME_RELEASE
1364 ;;
1365 news*:NEWS-OS:6*:*)
1366 GUESS=mips-sony-newsos6
1367 ;;
1368 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1369 if test -d /usr/nec; then
1370 GUESS=mips-nec-sysv$UNAME_RELEASE
1371 else
1372 GUESS=mips-unknown-sysv$UNAME_RELEASE
1373 fi
1374 ;;
1375 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1376 GUESS=powerpc-be-beos
1377 ;;
1378 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1379 GUESS=powerpc-apple-beos
1380 ;;
1381 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1382 GUESS=i586-pc-beos
1383 ;;
1384 BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
1385 GUESS=i586-pc-haiku
1386 ;;
1387 ppc:Haiku:*:*) # Haiku running on Apple PowerPC
1388 GUESS=powerpc-apple-haiku
1389 ;;
1390 *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat)
1391 GUESS=$UNAME_MACHINE-unknown-haiku
1392 ;;
1393 SX-4:SUPER-UX:*:*)
1394 GUESS=sx4-nec-superux$UNAME_RELEASE
1395 ;;
1396 SX-5:SUPER-UX:*:*)
1397 GUESS=sx5-nec-superux$UNAME_RELEASE
1398 ;;
1399 SX-6:SUPER-UX:*:*)
1400 GUESS=sx6-nec-superux$UNAME_RELEASE
1401 ;;
1402 SX-7:SUPER-UX:*:*)
1403 GUESS=sx7-nec-superux$UNAME_RELEASE
1404 ;;
1405 SX-8:SUPER-UX:*:*)
1406 GUESS=sx8-nec-superux$UNAME_RELEASE
1407 ;;
1408 SX-8R:SUPER-UX:*:*)
1409 GUESS=sx8r-nec-superux$UNAME_RELEASE
1410 ;;
1411 SX-ACE:SUPER-UX:*:*)
1412 GUESS=sxace-nec-superux$UNAME_RELEASE
1413 ;;
1414 Power*:Rhapsody:*:*)
1415 GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
1416 ;;
1417 *:Rhapsody:*:*)
1418 GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
1419 ;;
1420 arm64:Darwin:*:*)
1421 GUESS=aarch64-apple-darwin$UNAME_RELEASE
1422 ;;
1423 *:Darwin:*:*)
1424 UNAME_PROCESSOR=`uname -p`
1425 case $UNAME_PROCESSOR in
1426 unknown) UNAME_PROCESSOR=powerpc ;;
1427 esac
1428 if command -v xcode-select > /dev/null 2> /dev/null && \
1429 ! xcode-select --print-path > /dev/null 2> /dev/null ; then
1430 # Avoid executing cc if there is no toolchain installed as
1431 # cc will be a stub that puts up a graphical alert
1432 # prompting the user to install developer tools.
1433 CC_FOR_BUILD=no_compiler_found
1434 else
1435 set_cc_for_build
1436 fi
1437 if test "$CC_FOR_BUILD" != no_compiler_found; then
1438 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1439 (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1440 grep IS_64BIT_ARCH >/dev/null
1441 then
1442 case $UNAME_PROCESSOR in
1443 i386) UNAME_PROCESSOR=x86_64 ;;
1444 powerpc) UNAME_PROCESSOR=powerpc64 ;;
1445 esac
1446 fi
1447 # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
1448 if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
1449 (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1450 grep IS_PPC >/dev/null
1451 then
1452 UNAME_PROCESSOR=powerpc
1453 fi
1454 elif test "$UNAME_PROCESSOR" = i386 ; then
1455 # uname -m returns i386 or x86_64
1456 UNAME_PROCESSOR=$UNAME_MACHINE
1457 fi
1458 GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
1459 ;;
1460 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1461 UNAME_PROCESSOR=`uname -p`
1462 if test "$UNAME_PROCESSOR" = x86; then
1463 UNAME_PROCESSOR=i386
1464 UNAME_MACHINE=pc
1465 fi
1466 GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
1467 ;;
1468 *:QNX:*:4*)
1469 GUESS=i386-pc-qnx
1470 ;;
1471 NEO-*:NONSTOP_KERNEL:*:*)
1472 GUESS=neo-tandem-nsk$UNAME_RELEASE
1473 ;;
1474 NSE-*:NONSTOP_KERNEL:*:*)
1475 GUESS=nse-tandem-nsk$UNAME_RELEASE
1476 ;;
1477 NSR-*:NONSTOP_KERNEL:*:*)
1478 GUESS=nsr-tandem-nsk$UNAME_RELEASE
1479 ;;
1480 NSV-*:NONSTOP_KERNEL:*:*)
1481 GUESS=nsv-tandem-nsk$UNAME_RELEASE
1482 ;;
1483 NSX-*:NONSTOP_KERNEL:*:*)
1484 GUESS=nsx-tandem-nsk$UNAME_RELEASE
1485 ;;
1486 *:NonStop-UX:*:*)
1487 GUESS=mips-compaq-nonstopux
1488 ;;
1489 BS2000:POSIX*:*:*)
1490 GUESS=bs2000-siemens-sysv
1491 ;;
1492 DS/*:UNIX_System_V:*:*)
1493 GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
1494 ;;
1495 *:Plan9:*:*)
1496 # "uname -m" is not consistent, so use $cputype instead. 386
1497 # is converted to i386 for consistency with other x86
1498 # operating systems.
1499 if test "${cputype-}" = 386; then
1500 UNAME_MACHINE=i386
1501 elif test "x${cputype-}" != x; then
1502 UNAME_MACHINE=$cputype
1503 fi
1504 GUESS=$UNAME_MACHINE-unknown-plan9
1505 ;;
1506 *:TOPS-10:*:*)
1507 GUESS=pdp10-unknown-tops10
1508 ;;
1509 *:TENEX:*:*)
1510 GUESS=pdp10-unknown-tenex
1511 ;;
1512 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1513 GUESS=pdp10-dec-tops20
1514 ;;
1515 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1516 GUESS=pdp10-xkl-tops20
1517 ;;
1518 *:TOPS-20:*:*)
1519 GUESS=pdp10-unknown-tops20
1520 ;;
1521 *:ITS:*:*)
1522 GUESS=pdp10-unknown-its
1523 ;;
1524 SEI:*:*:SEIUX)
1525 GUESS=mips-sei-seiux$UNAME_RELEASE
1526 ;;
1527 *:DragonFly:*:*)
1528 DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
1529 GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
1530 ;;
1531 *:*VMS:*:*)
1532 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1533 case $UNAME_MACHINE in
1534 A*) GUESS=alpha-dec-vms ;;
1535 I*) GUESS=ia64-dec-vms ;;
1536 V*) GUESS=vax-dec-vms ;;
1537 esac ;;
1538 *:XENIX:*:SysV)
1539 GUESS=i386-pc-xenix
1540 ;;
1541 i*86:skyos:*:*)
1542 SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
1543 GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
1544 ;;
1545 i*86:rdos:*:*)
1546 GUESS=$UNAME_MACHINE-pc-rdos
1547 ;;
1548 i*86:Fiwix:*:*)
1549 GUESS=$UNAME_MACHINE-pc-fiwix
1550 ;;
1551 *:AROS:*:*)
1552 GUESS=$UNAME_MACHINE-unknown-aros
1553 ;;
1554 x86_64:VMkernel:*:*)
1555 GUESS=$UNAME_MACHINE-unknown-esx
1556 ;;
1557 amd64:Isilon\ OneFS:*:*)
1558 GUESS=x86_64-unknown-onefs
1559 ;;
1560 *:Unleashed:*:*)
1561 GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
1562 ;;
1563esac
1564
1565# Do we have a guess based on uname results?
1566if test "x$GUESS" != x; then
1567 echo "$GUESS"
1568 exit
1569fi
1570
1571# No uname command or uname output not recognized.
1572set_cc_for_build
1573cat > "$dummy.c" <<EOF
1574#ifdef _SEQUENT_
1575#include <sys/types.h>
1576#include <sys/utsname.h>
1577#endif
1578#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
1579#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
1580#include <signal.h>
1581#if defined(_SIZE_T_) || defined(SIGLOST)
1582#include <sys/utsname.h>
1583#endif
1584#endif
1585#endif
1586main ()
1587{
1588#if defined (sony)
1589#if defined (MIPSEB)
1590 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1591 I don't know.... */
1592 printf ("mips-sony-bsd\n"); exit (0);
1593#else
1594#include <sys/param.h>
1595 printf ("m68k-sony-newsos%s\n",
1596#ifdef NEWSOS4
1597 "4"
1598#else
1599 ""
1600#endif
1601 ); exit (0);
1602#endif
1603#endif
1604
1605#if defined (NeXT)
1606#if !defined (__ARCHITECTURE__)
1607#define __ARCHITECTURE__ "m68k"
1608#endif
1609 int version;
1610 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1611 if (version < 4)
1612 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1613 else
1614 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1615 exit (0);
1616#endif
1617
1618#if defined (MULTIMAX) || defined (n16)
1619#if defined (UMAXV)
1620 printf ("ns32k-encore-sysv\n"); exit (0);
1621#else
1622#if defined (CMU)
1623 printf ("ns32k-encore-mach\n"); exit (0);
1624#else
1625 printf ("ns32k-encore-bsd\n"); exit (0);
1626#endif
1627#endif
1628#endif
1629
1630#if defined (__386BSD__)
1631 printf ("i386-pc-bsd\n"); exit (0);
1632#endif
1633
1634#if defined (sequent)
1635#if defined (i386)
1636 printf ("i386-sequent-dynix\n"); exit (0);
1637#endif
1638#if defined (ns32000)
1639 printf ("ns32k-sequent-dynix\n"); exit (0);
1640#endif
1641#endif
1642
1643#if defined (_SEQUENT_)
1644 struct utsname un;
1645
1646 uname(&un);
1647 if (strncmp(un.version, "V2", 2) == 0) {
1648 printf ("i386-sequent-ptx2\n"); exit (0);
1649 }
1650 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1651 printf ("i386-sequent-ptx1\n"); exit (0);
1652 }
1653 printf ("i386-sequent-ptx\n"); exit (0);
1654#endif
1655
1656#if defined (vax)
1657#if !defined (ultrix)
1658#include <sys/param.h>
1659#if defined (BSD)
1660#if BSD == 43
1661 printf ("vax-dec-bsd4.3\n"); exit (0);
1662#else
1663#if BSD == 199006
1664 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1665#else
1666 printf ("vax-dec-bsd\n"); exit (0);
1667#endif
1668#endif
1669#else
1670 printf ("vax-dec-bsd\n"); exit (0);
1671#endif
1672#else
1673#if defined(_SIZE_T_) || defined(SIGLOST)
1674 struct utsname un;
1675 uname (&un);
1676 printf ("vax-dec-ultrix%s\n", un.release); exit (0);
1677#else
1678 printf ("vax-dec-ultrix\n"); exit (0);
1679#endif
1680#endif
1681#endif
1682#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
1683#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
1684#if defined(_SIZE_T_) || defined(SIGLOST)
1685 struct utsname *un;
1686 uname (&un);
1687 printf ("mips-dec-ultrix%s\n", un.release); exit (0);
1688#else
1689 printf ("mips-dec-ultrix\n"); exit (0);
1690#endif
1691#endif
1692#endif
1693
1694#if defined (alliant) && defined (i860)
1695 printf ("i860-alliant-bsd\n"); exit (0);
1696#endif
1697
1698 exit (1);
1699}
1700EOF
1701
1702$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
1703 { echo "$SYSTEM_NAME"; exit; }
1704
1705# Apollos put the system type in the environment.
1706test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
1707
1708echo "$0: unable to guess system type" >&2
1709
1710case $UNAME_MACHINE:$UNAME_SYSTEM in
1711 mips:Linux | mips64:Linux)
1712 # If we got here on MIPS GNU/Linux, output extra information.
1713 cat >&2 <<EOF
1714
1715NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
1716the system type. Please install a C compiler and try again.
1717EOF
1718 ;;
1719esac
1720
1721cat >&2 <<EOF
1722
1723This script (version $timestamp), has failed to recognize the
1724operating system you are using. If your script is old, overwrite *all*
1725copies of config.guess and config.sub with the latest versions from:
1726
1727 https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
1728and
1729 https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
1730EOF
1731
1732our_year=`echo $timestamp | sed 's,-.*,,'`
1733thisyear=`date +%Y`
1734# shellcheck disable=SC2003
1735script_age=`expr "$thisyear" - "$our_year"`
1736if test "$script_age" -lt 3 ; then
1737 cat >&2 <<EOF
1738
1739If $0 has already been updated, send the following data and any
1740information you think might be pertinent to config-patches@gnu.org to
1741provide the necessary information to handle your system.
1742
1743config.guess timestamp = $timestamp
1744
1745uname -m = `(uname -m) 2>/dev/null || echo unknown`
1746uname -r = `(uname -r) 2>/dev/null || echo unknown`
1747uname -s = `(uname -s) 2>/dev/null || echo unknown`
1748uname -v = `(uname -v) 2>/dev/null || echo unknown`
1749
1750/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1751/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1752
1753hostinfo = `(hostinfo) 2>/dev/null`
1754/bin/universe = `(/bin/universe) 2>/dev/null`
1755/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1756/bin/arch = `(/bin/arch) 2>/dev/null`
1757/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1758/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1759
1760UNAME_MACHINE = "$UNAME_MACHINE"
1761UNAME_RELEASE = "$UNAME_RELEASE"
1762UNAME_SYSTEM = "$UNAME_SYSTEM"
1763UNAME_VERSION = "$UNAME_VERSION"
1764EOF
1765fi
1766
1767exit 1
1768
1769# Local variables:
1770# eval: (add-hook 'before-save-hook 'time-stamp)
1771# time-stamp-start: "timestamp='"
1772# time-stamp-format: "%:y-%02m-%02d"
1773# time-stamp-end: "'"
1774# End:
diff --git a/exec/config.sub b/exec/config.sub
deleted file mode 100755
index 7ab92879f13..00000000000
--- a/exec/config.sub
+++ /dev/null
@@ -1,1907 +0,0 @@
1#!/usr/bin/sh
2# Configuration validation subroutine script.
3# Copyright 1992-2024 Free Software Foundation, Inc.
4
5# shellcheck disable=SC2006,SC2268 # see below for rationale
6
7timestamp='2023-06-23'
8
9# This file is free software; you can redistribute it and/or modify it
10# under the terms of the GNU General Public License as published by
11# the Free Software Foundation, either version 3 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful, but
15# WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17# General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, see <https://www.gnu.org/licenses/>.
21#
22# As a special exception to the GNU General Public License, if you
23# distribute this file as part of a program that contains a
24# configuration script generated by Autoconf, you may include it under
25# the same distribution terms that you use for the rest of that
26# program. This Exception is an additional permission under section 7
27# of the GNU General Public License, version 3 ("GPLv3").
28
29
30# Please send patches to <config-patches@gnu.org>.
31#
32# Configuration subroutine to validate and canonicalize a configuration type.
33# Supply the specified configuration type as an argument.
34# If it is invalid, we print an error message on stderr and exit with code 1.
35# Otherwise, we print the canonical config type on stdout and succeed.
36
37# You can get the latest version of this script from:
38# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
39
40# This file is supposed to be the same for all GNU packages
41# and recognize all the CPU types, system types and aliases
42# that are meaningful with *any* GNU software.
43# Each package is responsible for reporting which valid configurations
44# it does not support. The user should be able to distinguish
45# a failure to support a valid configuration from a meaningless
46# configuration.
47
48# The goal of this file is to map all the various variations of a given
49# machine specification into a single specification in the form:
50# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
51# or in some cases, the newer four-part form:
52# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
53# It is wrong to echo any other type of specification.
54
55# The "shellcheck disable" line above the timestamp inhibits complaints
56# about features and limitations of the classic Bourne shell that were
57# superseded or lifted in POSIX. However, this script identifies a wide
58# variety of pre-POSIX systems that do not have POSIX shells at all, and
59# even some reasonably current systems (Solaris 10 as case-in-point) still
60# have a pre-POSIX /bin/sh.
61
62me=`echo "$0" | sed -e 's,.*/,,'`
63
64usage="\
65Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
66
67Canonicalize a configuration name.
68
69Options:
70 -h, --help print this help, then exit
71 -t, --time-stamp print date of last modification, then exit
72 -v, --version print version number, then exit
73
74Report bugs and patches to <config-patches@gnu.org>."
75
76version="\
77GNU config.sub ($timestamp)
78
79Copyright 1992-2023 Free Software Foundation, Inc.
80
81This is free software; see the source for copying conditions. There is NO
82warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
83
84help="
85Try '$me --help' for more information."
86
87# Parse command line
88while test $# -gt 0 ; do
89 case $1 in
90 --time-stamp | --time* | -t )
91 echo "$timestamp" ; exit ;;
92 --version | -v )
93 echo "$version" ; exit ;;
94 --help | --h* | -h )
95 echo "$usage"; exit ;;
96 -- ) # Stop option processing
97 shift; break ;;
98 - ) # Use stdin as input.
99 break ;;
100 -* )
101 echo "$me: invalid option $1$help" >&2
102 exit 1 ;;
103
104 *local*)
105 # First pass through any local machine types.
106 echo "$1"
107 exit ;;
108
109 * )
110 break ;;
111 esac
112done
113
114case $# in
115 0) echo "$me: missing argument$help" >&2
116 exit 1;;
117 1) ;;
118 *) echo "$me: too many arguments$help" >&2
119 exit 1;;
120esac
121
122# Split fields of configuration type
123# shellcheck disable=SC2162
124saved_IFS=$IFS
125IFS="-" read field1 field2 field3 field4 <<EOF
126$1
127EOF
128IFS=$saved_IFS
129
130# Separate into logical components for further validation
131case $1 in
132 *-*-*-*-*)
133 echo "Invalid configuration '$1': more than four components" >&2
134 exit 1
135 ;;
136 *-*-*-*)
137 basic_machine=$field1-$field2
138 basic_os=$field3-$field4
139 ;;
140 *-*-*)
141 # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
142 # parts
143 maybe_os=$field2-$field3
144 case $maybe_os in
145 nto-qnx* | linux-* | uclinux-uclibc* \
146 | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
147 | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
148 | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
149 basic_machine=$field1
150 basic_os=$maybe_os
151 ;;
152 android-linux)
153 basic_machine=$field1-unknown
154 basic_os=linux-android
155 ;;
156 *)
157 basic_machine=$field1-$field2
158 basic_os=$field3
159 ;;
160 esac
161 ;;
162 *-*)
163 # A lone config we happen to match not fitting any pattern
164 case $field1-$field2 in
165 decstation-3100)
166 basic_machine=mips-dec
167 basic_os=
168 ;;
169 *-*)
170 # Second component is usually, but not always the OS
171 case $field2 in
172 # Prevent following clause from handling this valid os
173 sun*os*)
174 basic_machine=$field1
175 basic_os=$field2
176 ;;
177 zephyr*)
178 basic_machine=$field1-unknown
179 basic_os=$field2
180 ;;
181 # Manufacturers
182 dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
183 | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
184 | unicom* | ibm* | next | hp | isi* | apollo | altos* \
185 | convergent* | ncr* | news | 32* | 3600* | 3100* \
186 | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
187 | ultra | tti* | harris | dolphin | highlevel | gould \
188 | cbm | ns | masscomp | apple | axis | knuth | cray \
189 | microblaze* | sim | cisco \
190 | oki | wec | wrs | winbond)
191 basic_machine=$field1-$field2
192 basic_os=
193 ;;
194 *)
195 basic_machine=$field1
196 basic_os=$field2
197 ;;
198 esac
199 ;;
200 esac
201 ;;
202 *)
203 # Convert single-component short-hands not valid as part of
204 # multi-component configurations.
205 case $field1 in
206 386bsd)
207 basic_machine=i386-pc
208 basic_os=bsd
209 ;;
210 a29khif)
211 basic_machine=a29k-amd
212 basic_os=udi
213 ;;
214 adobe68k)
215 basic_machine=m68010-adobe
216 basic_os=scout
217 ;;
218 alliant)
219 basic_machine=fx80-alliant
220 basic_os=
221 ;;
222 altos | altos3068)
223 basic_machine=m68k-altos
224 basic_os=
225 ;;
226 am29k)
227 basic_machine=a29k-none
228 basic_os=bsd
229 ;;
230 amdahl)
231 basic_machine=580-amdahl
232 basic_os=sysv
233 ;;
234 amiga)
235 basic_machine=m68k-unknown
236 basic_os=
237 ;;
238 amigaos | amigados)
239 basic_machine=m68k-unknown
240 basic_os=amigaos
241 ;;
242 amigaunix | amix)
243 basic_machine=m68k-unknown
244 basic_os=sysv4
245 ;;
246 apollo68)
247 basic_machine=m68k-apollo
248 basic_os=sysv
249 ;;
250 apollo68bsd)
251 basic_machine=m68k-apollo
252 basic_os=bsd
253 ;;
254 aros)
255 basic_machine=i386-pc
256 basic_os=aros
257 ;;
258 aux)
259 basic_machine=m68k-apple
260 basic_os=aux
261 ;;
262 balance)
263 basic_machine=ns32k-sequent
264 basic_os=dynix
265 ;;
266 blackfin)
267 basic_machine=bfin-unknown
268 basic_os=linux
269 ;;
270 cegcc)
271 basic_machine=arm-unknown
272 basic_os=cegcc
273 ;;
274 convex-c1)
275 basic_machine=c1-convex
276 basic_os=bsd
277 ;;
278 convex-c2)
279 basic_machine=c2-convex
280 basic_os=bsd
281 ;;
282 convex-c32)
283 basic_machine=c32-convex
284 basic_os=bsd
285 ;;
286 convex-c34)
287 basic_machine=c34-convex
288 basic_os=bsd
289 ;;
290 convex-c38)
291 basic_machine=c38-convex
292 basic_os=bsd
293 ;;
294 cray)
295 basic_machine=j90-cray
296 basic_os=unicos
297 ;;
298 crds | unos)
299 basic_machine=m68k-crds
300 basic_os=
301 ;;
302 da30)
303 basic_machine=m68k-da30
304 basic_os=
305 ;;
306 decstation | pmax | pmin | dec3100 | decstatn)
307 basic_machine=mips-dec
308 basic_os=
309 ;;
310 delta88)
311 basic_machine=m88k-motorola
312 basic_os=sysv3
313 ;;
314 dicos)
315 basic_machine=i686-pc
316 basic_os=dicos
317 ;;
318 djgpp)
319 basic_machine=i586-pc
320 basic_os=msdosdjgpp
321 ;;
322 ebmon29k)
323 basic_machine=a29k-amd
324 basic_os=ebmon
325 ;;
326 es1800 | OSE68k | ose68k | ose | OSE)
327 basic_machine=m68k-ericsson
328 basic_os=ose
329 ;;
330 gmicro)
331 basic_machine=tron-gmicro
332 basic_os=sysv
333 ;;
334 go32)
335 basic_machine=i386-pc
336 basic_os=go32
337 ;;
338 h8300hms)
339 basic_machine=h8300-hitachi
340 basic_os=hms
341 ;;
342 h8300xray)
343 basic_machine=h8300-hitachi
344 basic_os=xray
345 ;;
346 h8500hms)
347 basic_machine=h8500-hitachi
348 basic_os=hms
349 ;;
350 harris)
351 basic_machine=m88k-harris
352 basic_os=sysv3
353 ;;
354 hp300 | hp300hpux)
355 basic_machine=m68k-hp
356 basic_os=hpux
357 ;;
358 hp300bsd)
359 basic_machine=m68k-hp
360 basic_os=bsd
361 ;;
362 hppaosf)
363 basic_machine=hppa1.1-hp
364 basic_os=osf
365 ;;
366 hppro)
367 basic_machine=hppa1.1-hp
368 basic_os=proelf
369 ;;
370 i386mach)
371 basic_machine=i386-mach
372 basic_os=mach
373 ;;
374 isi68 | isi)
375 basic_machine=m68k-isi
376 basic_os=sysv
377 ;;
378 m68knommu)
379 basic_machine=m68k-unknown
380 basic_os=linux
381 ;;
382 magnum | m3230)
383 basic_machine=mips-mips
384 basic_os=sysv
385 ;;
386 merlin)
387 basic_machine=ns32k-utek
388 basic_os=sysv
389 ;;
390 mingw64)
391 basic_machine=x86_64-pc
392 basic_os=mingw64
393 ;;
394 mingw32)
395 basic_machine=i686-pc
396 basic_os=mingw32
397 ;;
398 mingw32ce)
399 basic_machine=arm-unknown
400 basic_os=mingw32ce
401 ;;
402 monitor)
403 basic_machine=m68k-rom68k
404 basic_os=coff
405 ;;
406 morphos)
407 basic_machine=powerpc-unknown
408 basic_os=morphos
409 ;;
410 moxiebox)
411 basic_machine=moxie-unknown
412 basic_os=moxiebox
413 ;;
414 msdos)
415 basic_machine=i386-pc
416 basic_os=msdos
417 ;;
418 msys)
419 basic_machine=i686-pc
420 basic_os=msys
421 ;;
422 mvs)
423 basic_machine=i370-ibm
424 basic_os=mvs
425 ;;
426 nacl)
427 basic_machine=le32-unknown
428 basic_os=nacl
429 ;;
430 ncr3000)
431 basic_machine=i486-ncr
432 basic_os=sysv4
433 ;;
434 netbsd386)
435 basic_machine=i386-pc
436 basic_os=netbsd
437 ;;
438 netwinder)
439 basic_machine=armv4l-rebel
440 basic_os=linux
441 ;;
442 news | news700 | news800 | news900)
443 basic_machine=m68k-sony
444 basic_os=newsos
445 ;;
446 news1000)
447 basic_machine=m68030-sony
448 basic_os=newsos
449 ;;
450 necv70)
451 basic_machine=v70-nec
452 basic_os=sysv
453 ;;
454 nh3000)
455 basic_machine=m68k-harris
456 basic_os=cxux
457 ;;
458 nh[45]000)
459 basic_machine=m88k-harris
460 basic_os=cxux
461 ;;
462 nindy960)
463 basic_machine=i960-intel
464 basic_os=nindy
465 ;;
466 mon960)
467 basic_machine=i960-intel
468 basic_os=mon960
469 ;;
470 nonstopux)
471 basic_machine=mips-compaq
472 basic_os=nonstopux
473 ;;
474 os400)
475 basic_machine=powerpc-ibm
476 basic_os=os400
477 ;;
478 OSE68000 | ose68000)
479 basic_machine=m68000-ericsson
480 basic_os=ose
481 ;;
482 os68k)
483 basic_machine=m68k-none
484 basic_os=os68k
485 ;;
486 paragon)
487 basic_machine=i860-intel
488 basic_os=osf
489 ;;
490 parisc)
491 basic_machine=hppa-unknown
492 basic_os=linux
493 ;;
494 psp)
495 basic_machine=mipsallegrexel-sony
496 basic_os=psp
497 ;;
498 pw32)
499 basic_machine=i586-unknown
500 basic_os=pw32
501 ;;
502 rdos | rdos64)
503 basic_machine=x86_64-pc
504 basic_os=rdos
505 ;;
506 rdos32)
507 basic_machine=i386-pc
508 basic_os=rdos
509 ;;
510 rom68k)
511 basic_machine=m68k-rom68k
512 basic_os=coff
513 ;;
514 sa29200)
515 basic_machine=a29k-amd
516 basic_os=udi
517 ;;
518 sei)
519 basic_machine=mips-sei
520 basic_os=seiux
521 ;;
522 sequent)
523 basic_machine=i386-sequent
524 basic_os=
525 ;;
526 sps7)
527 basic_machine=m68k-bull
528 basic_os=sysv2
529 ;;
530 st2000)
531 basic_machine=m68k-tandem
532 basic_os=
533 ;;
534 stratus)
535 basic_machine=i860-stratus
536 basic_os=sysv4
537 ;;
538 sun2)
539 basic_machine=m68000-sun
540 basic_os=
541 ;;
542 sun2os3)
543 basic_machine=m68000-sun
544 basic_os=sunos3
545 ;;
546 sun2os4)
547 basic_machine=m68000-sun
548 basic_os=sunos4
549 ;;
550 sun3)
551 basic_machine=m68k-sun
552 basic_os=
553 ;;
554 sun3os3)
555 basic_machine=m68k-sun
556 basic_os=sunos3
557 ;;
558 sun3os4)
559 basic_machine=m68k-sun
560 basic_os=sunos4
561 ;;
562 sun4)
563 basic_machine=sparc-sun
564 basic_os=
565 ;;
566 sun4os3)
567 basic_machine=sparc-sun
568 basic_os=sunos3
569 ;;
570 sun4os4)
571 basic_machine=sparc-sun
572 basic_os=sunos4
573 ;;
574 sun4sol2)
575 basic_machine=sparc-sun
576 basic_os=solaris2
577 ;;
578 sun386 | sun386i | roadrunner)
579 basic_machine=i386-sun
580 basic_os=
581 ;;
582 sv1)
583 basic_machine=sv1-cray
584 basic_os=unicos
585 ;;
586 symmetry)
587 basic_machine=i386-sequent
588 basic_os=dynix
589 ;;
590 t3e)
591 basic_machine=alphaev5-cray
592 basic_os=unicos
593 ;;
594 t90)
595 basic_machine=t90-cray
596 basic_os=unicos
597 ;;
598 toad1)
599 basic_machine=pdp10-xkl
600 basic_os=tops20
601 ;;
602 tpf)
603 basic_machine=s390x-ibm
604 basic_os=tpf
605 ;;
606 udi29k)
607 basic_machine=a29k-amd
608 basic_os=udi
609 ;;
610 ultra3)
611 basic_machine=a29k-nyu
612 basic_os=sym1
613 ;;
614 v810 | necv810)
615 basic_machine=v810-nec
616 basic_os=none
617 ;;
618 vaxv)
619 basic_machine=vax-dec
620 basic_os=sysv
621 ;;
622 vms)
623 basic_machine=vax-dec
624 basic_os=vms
625 ;;
626 vsta)
627 basic_machine=i386-pc
628 basic_os=vsta
629 ;;
630 vxworks960)
631 basic_machine=i960-wrs
632 basic_os=vxworks
633 ;;
634 vxworks68)
635 basic_machine=m68k-wrs
636 basic_os=vxworks
637 ;;
638 vxworks29k)
639 basic_machine=a29k-wrs
640 basic_os=vxworks
641 ;;
642 xbox)
643 basic_machine=i686-pc
644 basic_os=mingw32
645 ;;
646 ymp)
647 basic_machine=ymp-cray
648 basic_os=unicos
649 ;;
650 *)
651 basic_machine=$1
652 basic_os=
653 ;;
654 esac
655 ;;
656esac
657
658# Decode 1-component or ad-hoc basic machines
659case $basic_machine in
660 # Here we handle the default manufacturer of certain CPU types. It is in
661 # some cases the only manufacturer, in others, it is the most popular.
662 w89k)
663 cpu=hppa1.1
664 vendor=winbond
665 ;;
666 op50n)
667 cpu=hppa1.1
668 vendor=oki
669 ;;
670 op60c)
671 cpu=hppa1.1
672 vendor=oki
673 ;;
674 ibm*)
675 cpu=i370
676 vendor=ibm
677 ;;
678 orion105)
679 cpu=clipper
680 vendor=highlevel
681 ;;
682 mac | mpw | mac-mpw)
683 cpu=m68k
684 vendor=apple
685 ;;
686 pmac | pmac-mpw)
687 cpu=powerpc
688 vendor=apple
689 ;;
690
691 # Recognize the various machine names and aliases which stand
692 # for a CPU type and a company and sometimes even an OS.
693 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
694 cpu=m68000
695 vendor=att
696 ;;
697 3b*)
698 cpu=we32k
699 vendor=att
700 ;;
701 bluegene*)
702 cpu=powerpc
703 vendor=ibm
704 basic_os=cnk
705 ;;
706 decsystem10* | dec10*)
707 cpu=pdp10
708 vendor=dec
709 basic_os=tops10
710 ;;
711 decsystem20* | dec20*)
712 cpu=pdp10
713 vendor=dec
714 basic_os=tops20
715 ;;
716 delta | 3300 | motorola-3300 | motorola-delta \
717 | 3300-motorola | delta-motorola)
718 cpu=m68k
719 vendor=motorola
720 ;;
721 dpx2*)
722 cpu=m68k
723 vendor=bull
724 basic_os=sysv3
725 ;;
726 encore | umax | mmax)
727 cpu=ns32k
728 vendor=encore
729 ;;
730 elxsi)
731 cpu=elxsi
732 vendor=elxsi
733 basic_os=${basic_os:-bsd}
734 ;;
735 fx2800)
736 cpu=i860
737 vendor=alliant
738 ;;
739 genix)
740 cpu=ns32k
741 vendor=ns
742 ;;
743 h3050r* | hiux*)
744 cpu=hppa1.1
745 vendor=hitachi
746 basic_os=hiuxwe2
747 ;;
748 hp3k9[0-9][0-9] | hp9[0-9][0-9])
749 cpu=hppa1.0
750 vendor=hp
751 ;;
752 hp9k2[0-9][0-9] | hp9k31[0-9])
753 cpu=m68000
754 vendor=hp
755 ;;
756 hp9k3[2-9][0-9])
757 cpu=m68k
758 vendor=hp
759 ;;
760 hp9k6[0-9][0-9] | hp6[0-9][0-9])
761 cpu=hppa1.0
762 vendor=hp
763 ;;
764 hp9k7[0-79][0-9] | hp7[0-79][0-9])
765 cpu=hppa1.1
766 vendor=hp
767 ;;
768 hp9k78[0-9] | hp78[0-9])
769 # FIXME: really hppa2.0-hp
770 cpu=hppa1.1
771 vendor=hp
772 ;;
773 hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
774 # FIXME: really hppa2.0-hp
775 cpu=hppa1.1
776 vendor=hp
777 ;;
778 hp9k8[0-9][13679] | hp8[0-9][13679])
779 cpu=hppa1.1
780 vendor=hp
781 ;;
782 hp9k8[0-9][0-9] | hp8[0-9][0-9])
783 cpu=hppa1.0
784 vendor=hp
785 ;;
786 i*86v32)
787 cpu=`echo "$1" | sed -e 's/86.*/86/'`
788 vendor=pc
789 basic_os=sysv32
790 ;;
791 i*86v4*)
792 cpu=`echo "$1" | sed -e 's/86.*/86/'`
793 vendor=pc
794 basic_os=sysv4
795 ;;
796 i*86v)
797 cpu=`echo "$1" | sed -e 's/86.*/86/'`
798 vendor=pc
799 basic_os=sysv
800 ;;
801 i*86sol2)
802 cpu=`echo "$1" | sed -e 's/86.*/86/'`
803 vendor=pc
804 basic_os=solaris2
805 ;;
806 j90 | j90-cray)
807 cpu=j90
808 vendor=cray
809 basic_os=${basic_os:-unicos}
810 ;;
811 iris | iris4d)
812 cpu=mips
813 vendor=sgi
814 case $basic_os in
815 irix*)
816 ;;
817 *)
818 basic_os=irix4
819 ;;
820 esac
821 ;;
822 miniframe)
823 cpu=m68000
824 vendor=convergent
825 ;;
826 *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
827 cpu=m68k
828 vendor=atari
829 basic_os=mint
830 ;;
831 news-3600 | risc-news)
832 cpu=mips
833 vendor=sony
834 basic_os=newsos
835 ;;
836 next | m*-next)
837 cpu=m68k
838 vendor=next
839 case $basic_os in
840 openstep*)
841 ;;
842 nextstep*)
843 ;;
844 ns2*)
845 basic_os=nextstep2
846 ;;
847 *)
848 basic_os=nextstep3
849 ;;
850 esac
851 ;;
852 np1)
853 cpu=np1
854 vendor=gould
855 ;;
856 op50n-* | op60c-*)
857 cpu=hppa1.1
858 vendor=oki
859 basic_os=proelf
860 ;;
861 pa-hitachi)
862 cpu=hppa1.1
863 vendor=hitachi
864 basic_os=hiuxwe2
865 ;;
866 pbd)
867 cpu=sparc
868 vendor=tti
869 ;;
870 pbb)
871 cpu=m68k
872 vendor=tti
873 ;;
874 pc532)
875 cpu=ns32k
876 vendor=pc532
877 ;;
878 pn)
879 cpu=pn
880 vendor=gould
881 ;;
882 power)
883 cpu=power
884 vendor=ibm
885 ;;
886 ps2)
887 cpu=i386
888 vendor=ibm
889 ;;
890 rm[46]00)
891 cpu=mips
892 vendor=siemens
893 ;;
894 rtpc | rtpc-*)
895 cpu=romp
896 vendor=ibm
897 ;;
898 sde)
899 cpu=mipsisa32
900 vendor=sde
901 basic_os=${basic_os:-elf}
902 ;;
903 simso-wrs)
904 cpu=sparclite
905 vendor=wrs
906 basic_os=vxworks
907 ;;
908 tower | tower-32)
909 cpu=m68k
910 vendor=ncr
911 ;;
912 vpp*|vx|vx-*)
913 cpu=f301
914 vendor=fujitsu
915 ;;
916 w65)
917 cpu=w65
918 vendor=wdc
919 ;;
920 w89k-*)
921 cpu=hppa1.1
922 vendor=winbond
923 basic_os=proelf
924 ;;
925 none)
926 cpu=none
927 vendor=none
928 ;;
929 leon|leon[3-9])
930 cpu=sparc
931 vendor=$basic_machine
932 ;;
933 leon-*|leon[3-9]-*)
934 cpu=sparc
935 vendor=`echo "$basic_machine" | sed 's/-.*//'`
936 ;;
937
938 *-*)
939 # shellcheck disable=SC2162
940 saved_IFS=$IFS
941 IFS="-" read cpu vendor <<EOF
942$basic_machine
943EOF
944 IFS=$saved_IFS
945 ;;
946 # We use 'pc' rather than 'unknown'
947 # because (1) that's what they normally are, and
948 # (2) the word "unknown" tends to confuse beginning users.
949 i*86 | x86_64)
950 cpu=$basic_machine
951 vendor=pc
952 ;;
953 # These rules are duplicated from below for sake of the special case above;
954 # i.e. things that normalized to x86 arches should also default to "pc"
955 pc98)
956 cpu=i386
957 vendor=pc
958 ;;
959 x64 | amd64)
960 cpu=x86_64
961 vendor=pc
962 ;;
963 # Recognize the basic CPU types without company name.
964 *)
965 cpu=$basic_machine
966 vendor=unknown
967 ;;
968esac
969
970unset -v basic_machine
971
972# Decode basic machines in the full and proper CPU-Company form.
973case $cpu-$vendor in
974 # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
975 # some cases the only manufacturer, in others, it is the most popular.
976 craynv-unknown)
977 vendor=cray
978 basic_os=${basic_os:-unicosmp}
979 ;;
980 c90-unknown | c90-cray)
981 vendor=cray
982 basic_os=${Basic_os:-unicos}
983 ;;
984 fx80-unknown)
985 vendor=alliant
986 ;;
987 romp-unknown)
988 vendor=ibm
989 ;;
990 mmix-unknown)
991 vendor=knuth
992 ;;
993 microblaze-unknown | microblazeel-unknown)
994 vendor=xilinx
995 ;;
996 rs6000-unknown)
997 vendor=ibm
998 ;;
999 vax-unknown)
1000 vendor=dec
1001 ;;
1002 pdp11-unknown)
1003 vendor=dec
1004 ;;
1005 we32k-unknown)
1006 vendor=att
1007 ;;
1008 cydra-unknown)
1009 vendor=cydrome
1010 ;;
1011 i370-ibm*)
1012 vendor=ibm
1013 ;;
1014 orion-unknown)
1015 vendor=highlevel
1016 ;;
1017 xps-unknown | xps100-unknown)
1018 cpu=xps100
1019 vendor=honeywell
1020 ;;
1021
1022 # Here we normalize CPU types with a missing or matching vendor
1023 armh-unknown | armh-alt)
1024 cpu=armv7l
1025 vendor=alt
1026 basic_os=${basic_os:-linux-gnueabihf}
1027 ;;
1028 dpx20-unknown | dpx20-bull)
1029 cpu=rs6000
1030 vendor=bull
1031 basic_os=${basic_os:-bosx}
1032 ;;
1033
1034 # Here we normalize CPU types irrespective of the vendor
1035 amd64-*)
1036 cpu=x86_64
1037 ;;
1038 blackfin-*)
1039 cpu=bfin
1040 basic_os=linux
1041 ;;
1042 c54x-*)
1043 cpu=tic54x
1044 ;;
1045 c55x-*)
1046 cpu=tic55x
1047 ;;
1048 c6x-*)
1049 cpu=tic6x
1050 ;;
1051 e500v[12]-*)
1052 cpu=powerpc
1053 basic_os=${basic_os}"spe"
1054 ;;
1055 mips3*-*)
1056 cpu=mips64
1057 ;;
1058 ms1-*)
1059 cpu=mt
1060 ;;
1061 m68knommu-*)
1062 cpu=m68k
1063 basic_os=linux
1064 ;;
1065 m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1066 cpu=s12z
1067 ;;
1068 openrisc-*)
1069 cpu=or32
1070 ;;
1071 parisc-*)
1072 cpu=hppa
1073 basic_os=linux
1074 ;;
1075 pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1076 cpu=i586
1077 ;;
1078 pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
1079 cpu=i686
1080 ;;
1081 pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1082 cpu=i686
1083 ;;
1084 pentium4-*)
1085 cpu=i786
1086 ;;
1087 pc98-*)
1088 cpu=i386
1089 ;;
1090 ppc-* | ppcbe-*)
1091 cpu=powerpc
1092 ;;
1093 ppcle-* | powerpclittle-*)
1094 cpu=powerpcle
1095 ;;
1096 ppc64-*)
1097 cpu=powerpc64
1098 ;;
1099 ppc64le-* | powerpc64little-*)
1100 cpu=powerpc64le
1101 ;;
1102 sb1-*)
1103 cpu=mipsisa64sb1
1104 ;;
1105 sb1el-*)
1106 cpu=mipsisa64sb1el
1107 ;;
1108 sh5e[lb]-*)
1109 cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
1110 ;;
1111 spur-*)
1112 cpu=spur
1113 ;;
1114 strongarm-* | thumb-*)
1115 cpu=arm
1116 ;;
1117 tx39-*)
1118 cpu=mipstx39
1119 ;;
1120 tx39el-*)
1121 cpu=mipstx39el
1122 ;;
1123 x64-*)
1124 cpu=x86_64
1125 ;;
1126 xscale-* | xscalee[bl]-*)
1127 cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
1128 ;;
1129 arm64-* | aarch64le-*)
1130 cpu=aarch64
1131 ;;
1132
1133 # Recognize the canonical CPU Types that limit and/or modify the
1134 # company names they are paired with.
1135 cr16-*)
1136 basic_os=${basic_os:-elf}
1137 ;;
1138 crisv32-* | etraxfs*-*)
1139 cpu=crisv32
1140 vendor=axis
1141 ;;
1142 cris-* | etrax*-*)
1143 cpu=cris
1144 vendor=axis
1145 ;;
1146 crx-*)
1147 basic_os=${basic_os:-elf}
1148 ;;
1149 neo-tandem)
1150 cpu=neo
1151 vendor=tandem
1152 ;;
1153 nse-tandem)
1154 cpu=nse
1155 vendor=tandem
1156 ;;
1157 nsr-tandem)
1158 cpu=nsr
1159 vendor=tandem
1160 ;;
1161 nsv-tandem)
1162 cpu=nsv
1163 vendor=tandem
1164 ;;
1165 nsx-tandem)
1166 cpu=nsx
1167 vendor=tandem
1168 ;;
1169 mipsallegrexel-sony)
1170 cpu=mipsallegrexel
1171 vendor=sony
1172 ;;
1173 tile*-*)
1174 basic_os=${basic_os:-linux-gnu}
1175 ;;
1176
1177 *)
1178 # Recognize the canonical CPU types that are allowed with any
1179 # company name.
1180 case $cpu in
1181 1750a | 580 \
1182 | a29k \
1183 | aarch64 | aarch64_be \
1184 | abacus \
1185 | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
1186 | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
1187 | alphapca5[67] | alpha64pca5[67] \
1188 | am33_2.0 \
1189 | amdgcn \
1190 | arc | arceb | arc32 | arc64 \
1191 | arm | arm[lb]e | arme[lb] | armv* \
1192 | avr | avr32 \
1193 | asmjs \
1194 | ba \
1195 | be32 | be64 \
1196 | bfin | bpf | bs2000 \
1197 | c[123]* | c30 | [cjt]90 | c4x \
1198 | c8051 | clipper | craynv | csky | cydra \
1199 | d10v | d30v | dlx | dsp16xx \
1200 | e2k | elxsi | epiphany \
1201 | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
1202 | h8300 | h8500 \
1203 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
1204 | hexagon \
1205 | i370 | i*86 | i860 | i960 | ia16 | ia64 \
1206 | ip2k | iq2000 \
1207 | k1om \
1208 | le32 | le64 \
1209 | lm32 \
1210 | loongarch32 | loongarch64 \
1211 | m32c | m32r | m32rle \
1212 | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
1213 | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
1214 | m88110 | m88k | maxq | mb | mcore | mep | metag \
1215 | microblaze | microblazeel \
1216 | mips | mipsbe | mipseb | mipsel | mipsle \
1217 | mips16 \
1218 | mips64 | mips64eb | mips64el \
1219 | mips64octeon | mips64octeonel \
1220 | mips64orion | mips64orionel \
1221 | mips64r5900 | mips64r5900el \
1222 | mips64vr | mips64vrel \
1223 | mips64vr4100 | mips64vr4100el \
1224 | mips64vr4300 | mips64vr4300el \
1225 | mips64vr5000 | mips64vr5000el \
1226 | mips64vr5900 | mips64vr5900el \
1227 | mipsisa32 | mipsisa32el \
1228 | mipsisa32r2 | mipsisa32r2el \
1229 | mipsisa32r3 | mipsisa32r3el \
1230 | mipsisa32r5 | mipsisa32r5el \
1231 | mipsisa32r6 | mipsisa32r6el \
1232 | mipsisa64 | mipsisa64el \
1233 | mipsisa64r2 | mipsisa64r2el \
1234 | mipsisa64r3 | mipsisa64r3el \
1235 | mipsisa64r5 | mipsisa64r5el \
1236 | mipsisa64r6 | mipsisa64r6el \
1237 | mipsisa64sb1 | mipsisa64sb1el \
1238 | mipsisa64sr71k | mipsisa64sr71kel \
1239 | mipsr5900 | mipsr5900el \
1240 | mipstx39 | mipstx39el \
1241 | mmix \
1242 | mn10200 | mn10300 \
1243 | moxie \
1244 | mt \
1245 | msp430 \
1246 | nds32 | nds32le | nds32be \
1247 | nfp \
1248 | nios | nios2 | nios2eb | nios2el \
1249 | none | np1 | ns16k | ns32k | nvptx \
1250 | open8 \
1251 | or1k* \
1252 | or32 \
1253 | orion \
1254 | picochip \
1255 | pdp10 | pdp11 | pj | pjl | pn | power \
1256 | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
1257 | pru \
1258 | pyramid \
1259 | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
1260 | rl78 | romp | rs6000 | rx \
1261 | s390 | s390x \
1262 | score \
1263 | sh | shl \
1264 | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
1265 | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
1266 | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
1267 | sparclite \
1268 | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
1269 | spu \
1270 | tahoe \
1271 | thumbv7* \
1272 | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
1273 | tron \
1274 | ubicom32 \
1275 | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
1276 | vax \
1277 | visium \
1278 | w65 \
1279 | wasm32 | wasm64 \
1280 | we32k \
1281 | x86 | x86_64 | xc16x | xgate | xps100 \
1282 | xstormy16 | xtensa* \
1283 | ymp \
1284 | z8k | z80)
1285 ;;
1286
1287 *)
1288 echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
1289 exit 1
1290 ;;
1291 esac
1292 ;;
1293esac
1294
1295# Here we canonicalize certain aliases for manufacturers.
1296case $vendor in
1297 digital*)
1298 vendor=dec
1299 ;;
1300 commodore*)
1301 vendor=cbm
1302 ;;
1303 *)
1304 ;;
1305esac
1306
1307# Decode manufacturer-specific aliases for certain operating systems.
1308
1309if test x$basic_os != x
1310then
1311
1312# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
1313# set os.
1314case $basic_os in
1315 gnu/linux*)
1316 kernel=linux
1317 os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
1318 ;;
1319 os2-emx)
1320 kernel=os2
1321 os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
1322 ;;
1323 nto-qnx*)
1324 kernel=nto
1325 os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
1326 ;;
1327 *-*)
1328 # shellcheck disable=SC2162
1329 saved_IFS=$IFS
1330 IFS="-" read kernel os <<EOF
1331$basic_os
1332EOF
1333 IFS=$saved_IFS
1334 ;;
1335 # Default OS when just kernel was specified
1336 nto*)
1337 kernel=nto
1338 os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
1339 ;;
1340 linux*)
1341 kernel=linux
1342 os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
1343 ;;
1344 managarm*)
1345 kernel=managarm
1346 os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
1347 ;;
1348 *)
1349 kernel=
1350 os=$basic_os
1351 ;;
1352esac
1353
1354# Now, normalize the OS (knowing we just have one component, it's not a kernel,
1355# etc.)
1356case $os in
1357 # First match some system type aliases that might get confused
1358 # with valid system types.
1359 # solaris* is a basic system type, with this one exception.
1360 auroraux)
1361 os=auroraux
1362 ;;
1363 bluegene*)
1364 os=cnk
1365 ;;
1366 solaris1 | solaris1.*)
1367 os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
1368 ;;
1369 solaris)
1370 os=solaris2
1371 ;;
1372 unixware*)
1373 os=sysv4.2uw
1374 ;;
1375 # es1800 is here to avoid being matched by es* (a different OS)
1376 es1800*)
1377 os=ose
1378 ;;
1379 # Some version numbers need modification
1380 chorusos*)
1381 os=chorusos
1382 ;;
1383 isc)
1384 os=isc2.2
1385 ;;
1386 sco6)
1387 os=sco5v6
1388 ;;
1389 sco5)
1390 os=sco3.2v5
1391 ;;
1392 sco4)
1393 os=sco3.2v4
1394 ;;
1395 sco3.2.[4-9]*)
1396 os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
1397 ;;
1398 sco*v* | scout)
1399 # Don't match below
1400 ;;
1401 sco*)
1402 os=sco3.2v2
1403 ;;
1404 psos*)
1405 os=psos
1406 ;;
1407 qnx*)
1408 os=qnx
1409 ;;
1410 hiux*)
1411 os=hiuxwe2
1412 ;;
1413 lynx*178)
1414 os=lynxos178
1415 ;;
1416 lynx*5)
1417 os=lynxos5
1418 ;;
1419 lynxos*)
1420 # don't get caught up in next wildcard
1421 ;;
1422 lynx*)
1423 os=lynxos
1424 ;;
1425 mac[0-9]*)
1426 os=`echo "$os" | sed -e 's|mac|macos|'`
1427 ;;
1428 opened*)
1429 os=openedition
1430 ;;
1431 os400*)
1432 os=os400
1433 ;;
1434 sunos5*)
1435 os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
1436 ;;
1437 sunos6*)
1438 os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
1439 ;;
1440 wince*)
1441 os=wince
1442 ;;
1443 utek*)
1444 os=bsd
1445 ;;
1446 dynix*)
1447 os=bsd
1448 ;;
1449 acis*)
1450 os=aos
1451 ;;
1452 atheos*)
1453 os=atheos
1454 ;;
1455 syllable*)
1456 os=syllable
1457 ;;
1458 386bsd)
1459 os=bsd
1460 ;;
1461 ctix* | uts*)
1462 os=sysv
1463 ;;
1464 nova*)
1465 os=rtmk-nova
1466 ;;
1467 ns2)
1468 os=nextstep2
1469 ;;
1470 # Preserve the version number of sinix5.
1471 sinix5.*)
1472 os=`echo "$os" | sed -e 's|sinix|sysv|'`
1473 ;;
1474 sinix*)
1475 os=sysv4
1476 ;;
1477 tpf*)
1478 os=tpf
1479 ;;
1480 triton*)
1481 os=sysv3
1482 ;;
1483 oss*)
1484 os=sysv3
1485 ;;
1486 svr4*)
1487 os=sysv4
1488 ;;
1489 svr3)
1490 os=sysv3
1491 ;;
1492 sysvr4)
1493 os=sysv4
1494 ;;
1495 ose*)
1496 os=ose
1497 ;;
1498 *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1499 os=mint
1500 ;;
1501 dicos*)
1502 os=dicos
1503 ;;
1504 pikeos*)
1505 # Until real need of OS specific support for
1506 # particular features comes up, bare metal
1507 # configurations are quite functional.
1508 case $cpu in
1509 arm*)
1510 os=eabi
1511 ;;
1512 *)
1513 os=elf
1514 ;;
1515 esac
1516 ;;
1517 *)
1518 # No normalization, but not necessarily accepted, that comes below.
1519 ;;
1520esac
1521
1522else
1523
1524# Here we handle the default operating systems that come with various machines.
1525# The value should be what the vendor currently ships out the door with their
1526# machine or put another way, the most popular os provided with the machine.
1527
1528# Note that if you're going to try to match "-MANUFACTURER" here (say,
1529# "-sun"), then you have to tell the case statement up towards the top
1530# that MANUFACTURER isn't an operating system. Otherwise, code above
1531# will signal an error saying that MANUFACTURER isn't an operating
1532# system, and we'll never get to this point.
1533
1534kernel=
1535case $cpu-$vendor in
1536 score-*)
1537 os=elf
1538 ;;
1539 spu-*)
1540 os=elf
1541 ;;
1542 *-acorn)
1543 os=riscix1.2
1544 ;;
1545 arm*-rebel)
1546 kernel=linux
1547 os=gnu
1548 ;;
1549 arm*-semi)
1550 os=aout
1551 ;;
1552 c4x-* | tic4x-*)
1553 os=coff
1554 ;;
1555 c8051-*)
1556 os=elf
1557 ;;
1558 clipper-intergraph)
1559 os=clix
1560 ;;
1561 hexagon-*)
1562 os=elf
1563 ;;
1564 tic54x-*)
1565 os=coff
1566 ;;
1567 tic55x-*)
1568 os=coff
1569 ;;
1570 tic6x-*)
1571 os=coff
1572 ;;
1573 # This must come before the *-dec entry.
1574 pdp10-*)
1575 os=tops20
1576 ;;
1577 pdp11-*)
1578 os=none
1579 ;;
1580 *-dec | vax-*)
1581 os=ultrix4.2
1582 ;;
1583 m68*-apollo)
1584 os=domain
1585 ;;
1586 i386-sun)
1587 os=sunos4.0.2
1588 ;;
1589 m68000-sun)
1590 os=sunos3
1591 ;;
1592 m68*-cisco)
1593 os=aout
1594 ;;
1595 mep-*)
1596 os=elf
1597 ;;
1598 mips*-cisco)
1599 os=elf
1600 ;;
1601 mips*-*)
1602 os=elf
1603 ;;
1604 or32-*)
1605 os=coff
1606 ;;
1607 *-tti) # must be before sparc entry or we get the wrong os.
1608 os=sysv3
1609 ;;
1610 sparc-* | *-sun)
1611 os=sunos4.1.1
1612 ;;
1613 pru-*)
1614 os=elf
1615 ;;
1616 *-be)
1617 os=beos
1618 ;;
1619 *-ibm)
1620 os=aix
1621 ;;
1622 *-knuth)
1623 os=mmixware
1624 ;;
1625 *-wec)
1626 os=proelf
1627 ;;
1628 *-winbond)
1629 os=proelf
1630 ;;
1631 *-oki)
1632 os=proelf
1633 ;;
1634 *-hp)
1635 os=hpux
1636 ;;
1637 *-hitachi)
1638 os=hiux
1639 ;;
1640 i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1641 os=sysv
1642 ;;
1643 *-cbm)
1644 os=amigaos
1645 ;;
1646 *-dg)
1647 os=dgux
1648 ;;
1649 *-dolphin)
1650 os=sysv3
1651 ;;
1652 m68k-ccur)
1653 os=rtu
1654 ;;
1655 m88k-omron*)
1656 os=luna
1657 ;;
1658 *-next)
1659 os=nextstep
1660 ;;
1661 *-sequent)
1662 os=ptx
1663 ;;
1664 *-crds)
1665 os=unos
1666 ;;
1667 *-ns)
1668 os=genix
1669 ;;
1670 i370-*)
1671 os=mvs
1672 ;;
1673 *-gould)
1674 os=sysv
1675 ;;
1676 *-highlevel)
1677 os=bsd
1678 ;;
1679 *-encore)
1680 os=bsd
1681 ;;
1682 *-sgi)
1683 os=irix
1684 ;;
1685 *-siemens)
1686 os=sysv4
1687 ;;
1688 *-masscomp)
1689 os=rtu
1690 ;;
1691 f30[01]-fujitsu | f700-fujitsu)
1692 os=uxpv
1693 ;;
1694 *-rom68k)
1695 os=coff
1696 ;;
1697 *-*bug)
1698 os=coff
1699 ;;
1700 *-apple)
1701 os=macos
1702 ;;
1703 *-atari*)
1704 os=mint
1705 ;;
1706 *-wrs)
1707 os=vxworks
1708 ;;
1709 *)
1710 os=none
1711 ;;
1712esac
1713
1714fi
1715
1716# Now, validate our (potentially fixed-up) OS.
1717case $os in
1718 # Sometimes we do "kernel-libc", so those need to count as OSes.
1719 musl* | newlib* | relibc* | uclibc*)
1720 ;;
1721 # Likewise for "kernel-abi"
1722 eabi* | gnueabi*)
1723 ;;
1724 # VxWorks passes extra cpu info in the 4th filed.
1725 simlinux | simwindows | spe)
1726 ;;
1727 # Now accept the basic system types.
1728 # The portable systems comes first.
1729 # Each alternative MUST end in a * to match a version number.
1730 gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
1731 | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
1732 | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
1733 | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
1734 | hiux* | abug | nacl* | netware* | windows* \
1735 | os9* | macos* | osx* | ios* \
1736 | mpw* | magic* | mmixware* | mon960* | lnews* \
1737 | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
1738 | aos* | aros* | cloudabi* | sortix* | twizzler* \
1739 | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
1740 | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
1741 | mirbsd* | netbsd* | dicos* | openedition* | ose* \
1742 | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
1743 | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
1744 | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
1745 | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
1746 | udi* | lites* | ieee* | go32* | aux* | hcos* \
1747 | chorusrdb* | cegcc* | glidix* | serenity* \
1748 | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
1749 | midipix* | mingw32* | mingw64* | mint* \
1750 | uxpv* | beos* | mpeix* | udk* | moxiebox* \
1751 | interix* | uwin* | mks* | rhapsody* | darwin* \
1752 | openstep* | oskit* | conix* | pw32* | nonstopux* \
1753 | storm-chaos* | tops10* | tenex* | tops20* | its* \
1754 | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
1755 | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
1756 | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
1757 | skyos* | haiku* | rdos* | toppers* | drops* | es* \
1758 | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
1759 | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
1760 | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
1761 | fiwix* | mlibc* )
1762 ;;
1763 # This one is extra strict with allowed versions
1764 sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
1765 # Don't forget version if it is 3.2v4 or newer.
1766 ;;
1767 none)
1768 ;;
1769 kernel* )
1770 # Restricted further below
1771 ;;
1772 *)
1773 echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
1774 exit 1
1775 ;;
1776esac
1777
1778# As a final step for OS-related things, validate the OS-kernel combination
1779# (given a valid OS), if there is a kernel.
1780case $kernel-$os in
1781 linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
1782 | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
1783 ;;
1784 uclinux-uclibc* )
1785 ;;
1786 managarm-mlibc* | managarm-kernel* )
1787 ;;
1788 -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
1789 # These are just libc implementations, not actual OSes, and thus
1790 # require a kernel.
1791 echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
1792 exit 1
1793 ;;
1794 -kernel* )
1795 echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
1796 exit 1
1797 ;;
1798 *-kernel* )
1799 echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
1800 exit 1
1801 ;;
1802 kfreebsd*-gnu* | kopensolaris*-gnu*)
1803 ;;
1804 vxworks-simlinux | vxworks-simwindows | vxworks-spe)
1805 ;;
1806 nto-qnx*)
1807 ;;
1808 os2-emx)
1809 ;;
1810 *-eabi* | *-gnueabi*)
1811 ;;
1812 -*)
1813 # Blank kernel with real OS is always fine.
1814 ;;
1815 *-*)
1816 echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
1817 exit 1
1818 ;;
1819esac
1820
1821# Here we handle the case where we know the os, and the CPU type, but not the
1822# manufacturer. We pick the logical manufacturer.
1823case $vendor in
1824 unknown)
1825 case $cpu-$os in
1826 *-riscix*)
1827 vendor=acorn
1828 ;;
1829 *-sunos*)
1830 vendor=sun
1831 ;;
1832 *-cnk* | *-aix*)
1833 vendor=ibm
1834 ;;
1835 *-beos*)
1836 vendor=be
1837 ;;
1838 *-hpux*)
1839 vendor=hp
1840 ;;
1841 *-mpeix*)
1842 vendor=hp
1843 ;;
1844 *-hiux*)
1845 vendor=hitachi
1846 ;;
1847 *-unos*)
1848 vendor=crds
1849 ;;
1850 *-dgux*)
1851 vendor=dg
1852 ;;
1853 *-luna*)
1854 vendor=omron
1855 ;;
1856 *-genix*)
1857 vendor=ns
1858 ;;
1859 *-clix*)
1860 vendor=intergraph
1861 ;;
1862 *-mvs* | *-opened*)
1863 vendor=ibm
1864 ;;
1865 *-os400*)
1866 vendor=ibm
1867 ;;
1868 s390-* | s390x-*)
1869 vendor=ibm
1870 ;;
1871 *-ptx*)
1872 vendor=sequent
1873 ;;
1874 *-tpf*)
1875 vendor=ibm
1876 ;;
1877 *-vxsim* | *-vxworks* | *-windiss*)
1878 vendor=wrs
1879 ;;
1880 *-aux*)
1881 vendor=apple
1882 ;;
1883 *-hms*)
1884 vendor=hitachi
1885 ;;
1886 *-mpw* | *-macos*)
1887 vendor=apple
1888 ;;
1889 *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
1890 vendor=atari
1891 ;;
1892 *-vos*)
1893 vendor=stratus
1894 ;;
1895 esac
1896 ;;
1897esac
1898
1899echo "$cpu-$vendor-${kernel:+$kernel-}$os"
1900exit
1901
1902# Local variables:
1903# eval: (add-hook 'before-save-hook 'time-stamp)
1904# time-stamp-start: "timestamp='"
1905# time-stamp-format: "%:y-%02m-%02d"
1906# time-stamp-end: "'"
1907# End:
diff --git a/exec/install-sh b/exec/install-sh
deleted file mode 100755
index e046efdf0a3..00000000000
--- a/exec/install-sh
+++ /dev/null
@@ -1,541 +0,0 @@
1#!/usr/bin/sh
2# install - install a program, script, or datafile
3
4scriptversion=2020-11-14.01; # UTC
5
6# This originates from X11R5 (mit/util/scripts/install.sh), which was
7# later released in X11R6 (xc/config/util/install.sh) with the
8# following copyright and license.
9#
10# Copyright (C) 1994 X Consortium
11#
12# Permission is hereby granted, free of charge, to any person obtaining a copy
13# of this software and associated documentation files (the "Software"), to
14# deal in the Software without restriction, including without limitation the
15# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
16# sell copies of the Software, and to permit persons to whom the Software is
17# furnished to do so, subject to the following conditions:
18#
19# The above copyright notice and this permission notice shall be included in
20# all copies or substantial portions of the Software.
21#
22# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
27# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28#
29# Except as contained in this notice, the name of the X Consortium shall not
30# be used in advertising or otherwise to promote the sale, use or other deal-
31# ings in this Software without prior written authorization from the X Consor-
32# tium.
33#
34#
35# FSF changes to this file are in the public domain.
36#
37# Calling this script install-sh is preferred over install.sh, to prevent
38# 'make' implicit rules from creating a file called install from it
39# when there is no Makefile.
40#
41# This script is compatible with the BSD install script, but was written
42# from scratch.
43
44tab=' '
45nl='
46'
47IFS=" $tab$nl"
48
49# Set DOITPROG to "echo" to test this script.
50
51doit=${DOITPROG-}
52doit_exec=${doit:-exec}
53
54# Put in absolute file names if you don't have them in your path;
55# or use environment vars.
56
57chgrpprog=${CHGRPPROG-chgrp}
58chmodprog=${CHMODPROG-chmod}
59chownprog=${CHOWNPROG-chown}
60cmpprog=${CMPPROG-cmp}
61cpprog=${CPPROG-cp}
62mkdirprog=${MKDIRPROG-mkdir}
63mvprog=${MVPROG-mv}
64rmprog=${RMPROG-rm}
65stripprog=${STRIPPROG-strip}
66
67posix_mkdir=
68
69# Desired mode of installed file.
70mode=0755
71
72# Create dirs (including intermediate dirs) using mode 755.
73# This is like GNU 'install' as of coreutils 8.32 (2020).
74mkdir_umask=22
75
76backupsuffix=
77chgrpcmd=
78chmodcmd=$chmodprog
79chowncmd=
80mvcmd=$mvprog
81rmcmd="$rmprog -f"
82stripcmd=
83
84src=
85dst=
86dir_arg=
87dst_arg=
88
89copy_on_change=false
90is_target_a_directory=possibly
91
92usage="\
93Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
94 or: $0 [OPTION]... SRCFILES... DIRECTORY
95 or: $0 [OPTION]... -t DIRECTORY SRCFILES...
96 or: $0 [OPTION]... -d DIRECTORIES...
97
98In the 1st form, copy SRCFILE to DSTFILE.
99In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
100In the 4th, create DIRECTORIES.
101
102Options:
103 --help display this help and exit.
104 --version display version info and exit.
105
106 -c (ignored)
107 -C install only if different (preserve data modification time)
108 -d create directories instead of installing files.
109 -g GROUP $chgrpprog installed files to GROUP.
110 -m MODE $chmodprog installed files to MODE.
111 -o USER $chownprog installed files to USER.
112 -p pass -p to $cpprog.
113 -s $stripprog installed files.
114 -S SUFFIX attempt to back up existing files, with suffix SUFFIX.
115 -t DIRECTORY install into DIRECTORY.
116 -T report an error if DSTFILE is a directory.
117
118Environment variables override the default commands:
119 CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
120 RMPROG STRIPPROG
121
122By default, rm is invoked with -f; when overridden with RMPROG,
123it's up to you to specify -f if you want it.
124
125If -S is not specified, no backups are attempted.
126
127Email bug reports to bug-automake@gnu.org.
128Automake home page: https://www.gnu.org/software/automake/
129"
130
131while test $# -ne 0; do
132 case $1 in
133 -c) ;;
134
135 -C) copy_on_change=true;;
136
137 -d) dir_arg=true;;
138
139 -g) chgrpcmd="$chgrpprog $2"
140 shift;;
141
142 --help) echo "$usage"; exit $?;;
143
144 -m) mode=$2
145 case $mode in
146 *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
147 echo "$0: invalid mode: $mode" >&2
148 exit 1;;
149 esac
150 shift;;
151
152 -o) chowncmd="$chownprog $2"
153 shift;;
154
155 -p) cpprog="$cpprog -p";;
156
157 -s) stripcmd=$stripprog;;
158
159 -S) backupsuffix="$2"
160 shift;;
161
162 -t)
163 is_target_a_directory=always
164 dst_arg=$2
165 # Protect names problematic for 'test' and other utilities.
166 case $dst_arg in
167 -* | [=\(\)!]) dst_arg=./$dst_arg;;
168 esac
169 shift;;
170
171 -T) is_target_a_directory=never;;
172
173 --version) echo "$0 $scriptversion"; exit $?;;
174
175 --) shift
176 break;;
177
178 -*) echo "$0: invalid option: $1" >&2
179 exit 1;;
180
181 *) break;;
182 esac
183 shift
184done
185
186# We allow the use of options -d and -T together, by making -d
187# take the precedence; this is for compatibility with GNU install.
188
189if test -n "$dir_arg"; then
190 if test -n "$dst_arg"; then
191 echo "$0: target directory not allowed when installing a directory." >&2
192 exit 1
193 fi
194fi
195
196if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
197 # When -d is used, all remaining arguments are directories to create.
198 # When -t is used, the destination is already specified.
199 # Otherwise, the last argument is the destination. Remove it from $@.
200 for arg
201 do
202 if test -n "$dst_arg"; then
203 # $@ is not empty: it contains at least $arg.
204 set fnord "$@" "$dst_arg"
205 shift # fnord
206 fi
207 shift # arg
208 dst_arg=$arg
209 # Protect names problematic for 'test' and other utilities.
210 case $dst_arg in
211 -* | [=\(\)!]) dst_arg=./$dst_arg;;
212 esac
213 done
214fi
215
216if test $# -eq 0; then
217 if test -z "$dir_arg"; then
218 echo "$0: no input file specified." >&2
219 exit 1
220 fi
221 # It's OK to call 'install-sh -d' without argument.
222 # This can happen when creating conditional directories.
223 exit 0
224fi
225
226if test -z "$dir_arg"; then
227 if test $# -gt 1 || test "$is_target_a_directory" = always; then
228 if test ! -d "$dst_arg"; then
229 echo "$0: $dst_arg: Is not a directory." >&2
230 exit 1
231 fi
232 fi
233fi
234
235if test -z "$dir_arg"; then
236 do_exit='(exit $ret); exit $ret'
237 trap "ret=129; $do_exit" 1
238 trap "ret=130; $do_exit" 2
239 trap "ret=141; $do_exit" 13
240 trap "ret=143; $do_exit" 15
241
242 # Set umask so as not to create temps with too-generous modes.
243 # However, 'strip' requires both read and write access to temps.
244 case $mode in
245 # Optimize common cases.
246 *644) cp_umask=133;;
247 *755) cp_umask=22;;
248
249 *[0-7])
250 if test -z "$stripcmd"; then
251 u_plus_rw=
252 else
253 u_plus_rw='% 200'
254 fi
255 cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
256 *)
257 if test -z "$stripcmd"; then
258 u_plus_rw=
259 else
260 u_plus_rw=,u+rw
261 fi
262 cp_umask=$mode$u_plus_rw;;
263 esac
264fi
265
266for src
267do
268 # Protect names problematic for 'test' and other utilities.
269 case $src in
270 -* | [=\(\)!]) src=./$src;;
271 esac
272
273 if test -n "$dir_arg"; then
274 dst=$src
275 dstdir=$dst
276 test -d "$dstdir"
277 dstdir_status=$?
278 # Don't chown directories that already exist.
279 if test $dstdir_status = 0; then
280 chowncmd=""
281 fi
282 else
283
284 # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
285 # might cause directories to be created, which would be especially bad
286 # if $src (and thus $dsttmp) contains '*'.
287 if test ! -f "$src" && test ! -d "$src"; then
288 echo "$0: $src does not exist." >&2
289 exit 1
290 fi
291
292 if test -z "$dst_arg"; then
293 echo "$0: no destination specified." >&2
294 exit 1
295 fi
296 dst=$dst_arg
297
298 # If destination is a directory, append the input filename.
299 if test -d "$dst"; then
300 if test "$is_target_a_directory" = never; then
301 echo "$0: $dst_arg: Is a directory" >&2
302 exit 1
303 fi
304 dstdir=$dst
305 dstbase=`basename "$src"`
306 case $dst in
307 */) dst=$dst$dstbase;;
308 *) dst=$dst/$dstbase;;
309 esac
310 dstdir_status=0
311 else
312 dstdir=`dirname "$dst"`
313 test -d "$dstdir"
314 dstdir_status=$?
315 fi
316 fi
317
318 case $dstdir in
319 */) dstdirslash=$dstdir;;
320 *) dstdirslash=$dstdir/;;
321 esac
322
323 obsolete_mkdir_used=false
324
325 if test $dstdir_status != 0; then
326 case $posix_mkdir in
327 '')
328 # With -d, create the new directory with the user-specified mode.
329 # Otherwise, rely on $mkdir_umask.
330 if test -n "$dir_arg"; then
331 mkdir_mode=-m$mode
332 else
333 mkdir_mode=
334 fi
335
336 posix_mkdir=false
337 # The $RANDOM variable is not portable (e.g., dash). Use it
338 # here however when possible just to lower collision chance.
339 tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
340
341 trap '
342 ret=$?
343 rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
344 exit $ret
345 ' 0
346
347 # Because "mkdir -p" follows existing symlinks and we likely work
348 # directly in world-writeable /tmp, make sure that the '$tmpdir'
349 # directory is successfully created first before we actually test
350 # 'mkdir -p'.
351 if (umask $mkdir_umask &&
352 $mkdirprog $mkdir_mode "$tmpdir" &&
353 exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
354 then
355 if test -z "$dir_arg" || {
356 # Check for POSIX incompatibilities with -m.
357 # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
358 # other-writable bit of parent directory when it shouldn't.
359 # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
360 test_tmpdir="$tmpdir/a"
361 ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
362 case $ls_ld_tmpdir in
363 d????-?r-*) different_mode=700;;
364 d????-?--*) different_mode=755;;
365 *) false;;
366 esac &&
367 $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
368 ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
369 test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
370 }
371 }
372 then posix_mkdir=:
373 fi
374 rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
375 else
376 # Remove any dirs left behind by ancient mkdir implementations.
377 rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
378 fi
379 trap '' 0;;
380 esac
381
382 if
383 $posix_mkdir && (
384 umask $mkdir_umask &&
385 $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
386 )
387 then :
388 else
389
390 # mkdir does not conform to POSIX,
391 # or it failed possibly due to a race condition. Create the
392 # directory the slow way, step by step, checking for races as we go.
393
394 case $dstdir in
395 /*) prefix='/';;
396 [-=\(\)!]*) prefix='./';;
397 *) prefix='';;
398 esac
399
400 oIFS=$IFS
401 IFS=/
402 set -f
403 set fnord $dstdir
404 shift
405 set +f
406 IFS=$oIFS
407
408 prefixes=
409
410 for d
411 do
412 test X"$d" = X && continue
413
414 prefix=$prefix$d
415 if test -d "$prefix"; then
416 prefixes=
417 else
418 if $posix_mkdir; then
419 (umask $mkdir_umask &&
420 $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
421 # Don't fail if two instances are running concurrently.
422 test -d "$prefix" || exit 1
423 else
424 case $prefix in
425 *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
426 *) qprefix=$prefix;;
427 esac
428 prefixes="$prefixes '$qprefix'"
429 fi
430 fi
431 prefix=$prefix/
432 done
433
434 if test -n "$prefixes"; then
435 # Don't fail if two instances are running concurrently.
436 (umask $mkdir_umask &&
437 eval "\$doit_exec \$mkdirprog $prefixes") ||
438 test -d "$dstdir" || exit 1
439 obsolete_mkdir_used=true
440 fi
441 fi
442 fi
443
444 if test -n "$dir_arg"; then
445 { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
446 { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
447 { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
448 test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
449 else
450
451 # Make a couple of temp file names in the proper directory.
452 dsttmp=${dstdirslash}_inst.$$_
453 rmtmp=${dstdirslash}_rm.$$_
454
455 # Trap to clean up those temp files at exit.
456 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
457
458 # Copy the file name to the temp name.
459 (umask $cp_umask &&
460 { test -z "$stripcmd" || {
461 # Create $dsttmp read-write so that cp doesn't create it read-only,
462 # which would cause strip to fail.
463 if test -z "$doit"; then
464 : >"$dsttmp" # No need to fork-exec 'touch'.
465 else
466 $doit touch "$dsttmp"
467 fi
468 }
469 } &&
470 $doit_exec $cpprog "$src" "$dsttmp") &&
471
472 # and set any options; do chmod last to preserve setuid bits.
473 #
474 # If any of these fail, we abort the whole thing. If we want to
475 # ignore errors from any of these, just make sure not to ignore
476 # errors from the above "$doit $cpprog $src $dsttmp" command.
477 #
478 { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
479 { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
480 { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
481 { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
482
483 # If -C, don't bother to copy if it wouldn't change the file.
484 if $copy_on_change &&
485 old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
486 new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
487 set -f &&
488 set X $old && old=:$2:$4:$5:$6 &&
489 set X $new && new=:$2:$4:$5:$6 &&
490 set +f &&
491 test "$old" = "$new" &&
492 $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
493 then
494 rm -f "$dsttmp"
495 else
496 # If $backupsuffix is set, and the file being installed
497 # already exists, attempt a backup. Don't worry if it fails,
498 # e.g., if mv doesn't support -f.
499 if test -n "$backupsuffix" && test -f "$dst"; then
500 $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
501 fi
502
503 # Rename the file to the real destination.
504 $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
505
506 # The rename failed, perhaps because mv can't rename something else
507 # to itself, or perhaps because mv is so ancient that it does not
508 # support -f.
509 {
510 # Now remove or move aside any old file at destination location.
511 # We try this two ways since rm can't unlink itself on some
512 # systems and the destination file might be busy for other
513 # reasons. In this case, the final cleanup might fail but the new
514 # file should still install successfully.
515 {
516 test ! -f "$dst" ||
517 $doit $rmcmd "$dst" 2>/dev/null ||
518 { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
519 { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
520 } ||
521 { echo "$0: cannot unlink or rename $dst" >&2
522 (exit 1); exit 1
523 }
524 } &&
525
526 # Now rename the file to the real destination.
527 $doit $mvcmd "$dsttmp" "$dst"
528 }
529 fi || exit 1
530
531 trap '' 0
532 fi
533done
534
535# Local variables:
536# eval: (add-hook 'before-save-hook 'time-stamp)
537# time-stamp-start: "scriptversion="
538# time-stamp-format: "%:y-%02m-%02d.%02H"
539# time-stamp-time-zone: "UTC0"
540# time-stamp-end: "; # UTC"
541# End: