Dmitry V. Levin wrote:
> I'd prefer to be on the safe side and have ABI=64 assigned by default
> somewhere before the eval.

You're right, that is safer.

> > +       #endif
> > +       #endif
> > +EOF
> > +       cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | 
> > sed 's, ,,g'`
> > +       eval "$cc_set_abi"
> > +       case "$ABI" in
> 
> commit 9a37c126ce64403b83e9cfe72e29c26ab3a209b3 claims that quotes
> in case commands are redundant.

Oh, I forgot that your preferred habits differ from my preferred habits.

Amended patch (again tested) is attached.

From 3e1b33747c648f11afbd1591e473b18b0872645a Mon Sep 17 00:00:00 2001
From: Bruno Haible <br...@clisp.org>
Date: Sun, 8 May 2022 19:08:08 +0200
Subject: [PATCH] config.guess (x86_64:Linux:*:*): Detect 32-bit ABI.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* config.guess (x86_64:Linux:*:*): Test for the 32-bit ABI. Don't assume that
__ILP32__ is a certain indicator for the x32 ABI; for GCC ≥ 9 it no longer is.
---
 config.guess | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/config.guess b/config.guess
index 7f76b62..160ecf0 100755
--- a/config.guess
+++ b/config.guess
@@ -4,7 +4,7 @@
 
 # shellcheck disable=SC2006,SC2268 # see below for rationale
 
-timestamp='2022-01-09'
+timestamp='2022-05-08'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -1151,16 +1151,27 @@ EOF
 	;;
     x86_64:Linux:*:*)
 	set_cc_for_build
+	CPU=$UNAME_MACHINE
 	LIBCABI=$LIBC
 	if test "$CC_FOR_BUILD" != no_compiler_found; then
-	    if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
-		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
-		grep IS_X32 >/dev/null
-	    then
-		LIBCABI=${LIBC}x32
-	    fi
+	    ABI=64
+	    sed 's/^	    //' << EOF > "$dummy.c"
+	    #ifdef __i386__
+	    ABI=x86
+	    #else
+	    #ifdef __ILP32__
+	    ABI=x32
+	    #endif
+	    #endif
+EOF
+	    cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+	    eval "$cc_set_abi"
+	    case $ABI in
+		x86) CPU=i686 ;;
+		x32) LIBCABI=${LIBC}x32 ;;
+	    esac
 	fi
-	GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
+	GUESS=$CPU-pc-linux-$LIBCABI
 	;;
     xtensa*:Linux:*:*)
 	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
-- 
2.25.1

Reply via email to