11#! /bin/sh
22# Attempt to guess a canonical system name.
3- # Copyright 1992-2023 Free Software Foundation, Inc.
3+ # Copyright 1992-2024 Free Software Foundation, Inc.
44
55# shellcheck disable=SC2006,SC2268 # see below for rationale
66
7- timestamp=' 2023-06-23 '
7+ timestamp=' 2024-07-27 '
88
99# This file is free software; you can redistribute it and/or modify it
1010# under the terms of the GNU General Public License as published by
@@ -60,7 +60,7 @@ version="\
6060GNU config.guess ($timestamp )
6161
6262Originally written by Per Bothner.
63- Copyright 1992-2023 Free Software Foundation, Inc.
63+ Copyright 1992-2024 Free Software Foundation, Inc.
6464
6565This is free software; see the source for copying conditions. There is NO
6666warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -123,7 +123,7 @@ set_cc_for_build() {
123123 dummy=$tmp /dummy
124124 case ${CC_FOR_BUILD-} ,${HOST_CC-} ,${CC-} in
125125 ,,) echo " int x;" > " $dummy .c"
126- for driver in cc gcc c89 c99 ; do
126+ for driver in cc gcc c17 c99 c89 ; do
127127 if ($driver -c -o " $dummy .o" " $dummy .c" ) > /dev/null 2>&1 ; then
128128 CC_FOR_BUILD=$driver
129129 break
@@ -155,20 +155,26 @@ Linux|GNU|GNU/*)
155155
156156 set_cc_for_build
157157 cat << -EOF > "$dummy .c"
158+ #if defined(__ANDROID__)
159+ LIBC=android
160+ #else
158161 #include <features.h>
159162 #if defined(__UCLIBC__)
160163 LIBC=uclibc
161164 #elif defined(__dietlibc__)
162165 LIBC=dietlibc
163166 #elif defined(__GLIBC__)
164167 LIBC=gnu
168+ #elif defined(__LLVM_LIBC__)
169+ LIBC=llvm
165170 #else
166171 #include <stdarg.h>
167172 /* First heuristic to detect musl libc. */
168173 #ifdef __DEFINED_va_list
169174 LIBC=musl
170175 #endif
171176 #endif
177+ #endif
172178 EOF
173179 cc_set_libc=` $CC_FOR_BUILD -E " $dummy .c" 2> /dev/null | grep ' ^LIBC' | sed ' s, ,,g' `
174180 eval " $cc_set_libc "
628634 sed ' s/^ //' << EOF > "$dummy .c"
629635 #include <sys/systemcfg.h>
630636
631- main()
637+ int
638+ main ()
632639 {
633640 if (!__power_pc())
634641 exit(1);
712719 #include <stdlib.h>
713720 #include <unistd.h>
714721
715- int main ()
722+ int
723+ main ()
716724 {
717725 #if defined(_SC_KERNEL_BITS)
718726 long bits = sysconf(_SC_KERNEL_BITS);
904912 fi
905913 ;;
906914 * :FreeBSD:* :* )
907- UNAME_PROCESSOR=` /usr/bin/ uname -p`
915+ UNAME_PROCESSOR=` uname -p`
908916 case $UNAME_PROCESSOR in
909917 amd64)
910918 UNAME_PROCESSOR=x86_64 ;;
976984 GUESS=$UNAME_MACHINE -unknown-minix
977985 ;;
978986 aarch64:Linux:* :* )
979- GUESS=$UNAME_MACHINE -unknown-linux-$LIBC
987+ set_cc_for_build
988+ CPU=$UNAME_MACHINE
989+ LIBCABI=$LIBC
990+ if test " $CC_FOR_BUILD " ! = no_compiler_found; then
991+ ABI=64
992+ sed ' s/^ //' << EOF > "$dummy .c"
993+ #ifdef __ARM_EABI__
994+ #ifdef __ARM_PCS_VFP
995+ ABI=eabihf
996+ #else
997+ ABI=eabi
998+ #endif
999+ #endif
1000+ EOF
1001+ cc_set_abi=` $CC_FOR_BUILD -E " $dummy .c" 2> /dev/null | grep ' ^ABI' | sed ' s, ,,g' `
1002+ eval " $cc_set_abi "
1003+ case $ABI in
1004+ eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;;
1005+ esac
1006+ fi
1007+ GUESS=$CPU -unknown-linux-$LIBCABI
9801008 ;;
9811009 aarch64_be:Linux:* :* )
9821010 UNAME_MACHINE=aarch64_be
@@ -1042,6 +1070,15 @@ EOF
10421070 k1om:Linux:* :* )
10431071 GUESS=$UNAME_MACHINE -unknown-linux-$LIBC
10441072 ;;
1073+ kvx:Linux:* :* )
1074+ GUESS=$UNAME_MACHINE -unknown-linux-$LIBC
1075+ ;;
1076+ kvx:cos:* :* )
1077+ GUESS=$UNAME_MACHINE -unknown-cos
1078+ ;;
1079+ kvx:mbr:* :* )
1080+ GUESS=$UNAME_MACHINE -unknown-mbr
1081+ ;;
10451082 loongarch32:Linux:* :* | loongarch64:Linux:* :* )
10461083 GUESS=$UNAME_MACHINE -unknown-linux-$LIBC
10471084 ;;
@@ -1560,6 +1597,9 @@ EOF
15601597 * :Unleashed:* :* )
15611598 GUESS=$UNAME_MACHINE -unknown-unleashed$UNAME_RELEASE
15621599 ;;
1600+ * :Ironclad:* :* )
1601+ GUESS=$UNAME_MACHINE -unknown-ironclad
1602+ ;;
15631603esac
15641604
15651605# Do we have a guess based on uname results?
@@ -1583,6 +1623,7 @@ cat > "$dummy.c" <<EOF
15831623#endif
15841624#endif
15851625#endif
1626+ int
15861627main ()
15871628{
15881629#if defined (sony)
0 commit comments