From jussi.kivilinna at iki.fi Mon Feb 2 19:21:56 2026 From: jussi.kivilinna at iki.fi (Jussi Kivilinna) Date: Mon, 2 Feb 2026 20:21:56 +0200 Subject: [PATCH] configure.ac: fix HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS on x32 targets Message-ID: <20260202182156.2115138-1-jussi.kivilinna@iki.fi> * configure.ac (gcry_cv_compiler_defines__x86_64__): New. (HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS): Enable if __x86_64__ macro is defined by compiler and size of long is 4 (x32) or 8 (amd64). -- Signed-off-by: Jussi Kivilinna --- configure.ac | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index be6b29b4..d94319cc 100644 --- a/configure.ac +++ b/configure.ac @@ -1829,6 +1829,25 @@ if test $amd64_as_feature_detection = yes; then fi +# +# Check whether compiler defines __x86_64__ macro (amd64 or x32) +# +AC_CACHE_CHECK([whether compiler defines __x86_64__ macro], + [gcry_cv_compiler_defines__x86_64__], + [if test "$mpi_cpu_arch" != "x86" || + test "$try_asm_modules" != "yes" ; then + gcry_cv_compiler_defines__x86_64__="n/a" + else + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ + #ifndef __x86_64__ + # error "Architecture is not x86_64" + #endif + ]])], + [gcry_cv_compiler_defines__x86_64__=yes], + [gcry_cv_compiler_defines__x86_64__=no]) + fi]) + + # # Check whether GCC assembler supports features needed for our i386/amd64 # implementations @@ -1859,7 +1878,9 @@ if test $amd64_as_feature_detection = yes; then [gcry_cv_gcc_x86_platform_as_ok=yes]) fi]) if test "$gcry_cv_gcc_x86_platform_as_ok" = "yes" && - test "$ac_cv_sizeof_unsigned_long" = "8"; then + test "$gcry_cv_compiler_defines__x86_64__" = "yes" && + (test "$ac_cv_sizeof_unsigned_long" = "4" || + test "$ac_cv_sizeof_unsigned_long" = "8"); then AC_DEFINE(HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS,1, [Defined if underlying assembler is compatible with amd64 assembly implementations]) fi -- 2.51.0