From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-3.7 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS, SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id E26F61F66E for ; Mon, 15 Feb 2021 02:50:28 +0000 (UTC) Received: from localhost ([::1]:50408 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lBTxz-0003sU-DU for normalperson@yhbt.net; Sun, 14 Feb 2021 21:50:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:34278) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lBTxt-0003s8-Bg for bug-gnulib@gnu.org; Sun, 14 Feb 2021 21:50:21 -0500 Received: from mo4-p00-ob.smtp.rzone.de ([81.169.146.221]:16747) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lBTxq-00057C-TO for bug-gnulib@gnu.org; Sun, 14 Feb 2021 21:50:21 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1613357414; s=strato-dkim-0002; d=clisp.org; h=Message-ID:Date:Subject:To:From:Cc:Date:From:Subject:Sender; bh=USfvnwXy8ghh4tvvzf40t98G9w7Si1Zg05ExnMspxtM=; b=eEcrQ5Z0Li2uM7minRN0tr+m2aaH3ko7m2Y7vHOQMRNFyUVIyFVkQnmMadWah8QY2F FOqQvdPQGR4jvUBpsKF0l/O4kYDchqgJwqHKUS5M7kfyLclOfNIAUFVUBxpN3koMVnOX qghpwV2/PU5asnUnXbyCxuTwu/h2RNoDS9hftyS8xqGcITkr85TqStYH4O8p75kSFlVC OmysHTgPdAz6XbRcr0s7mZGKYWzkPf+MHstPly4XQd+h/Fe7lWrqKo2YGNGnzAE40EkB S18yXOP72JQglwey5Z4ENbTGdEsDkmaNi2SEA0ic4u2POVZNDNqvUxf2JIiol7MrsHSP SP/Q== X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH+AHjwLuWOH6f3zZ9W" X-RZG-CLASS-ID: mo00 Received: from bruno.haible.de by smtp.strato.de (RZmta 47.17.1 DYNA|AUTH) with ESMTPSA id j01affx1F2oDOmm (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (curve X9_62_prime256v1 with 256 ECDH bits, eq. 3072 bits RSA)) (Client did not present a certificate); Mon, 15 Feb 2021 03:50:13 +0100 (CET) From: Bruno Haible To: bug-gnulib@gnu.org Subject: Fix distinction of 32-bit/64-bit mode with xlc 13.1.3 on AIX Date: Mon, 15 Feb 2021 03:50:12 +0100 Message-ID: <6456685.5lUXKWfzpP@omega> User-Agent: KMail/5.1.3 (Linux/4.4.0-201-generic; KDE/5.18.0; x86_64; ; ) MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Received-SPF: none client-ip=81.169.146.221; envelope-from=bruno@clisp.org; helo=mo4-p00-ob.smtp.rzone.de X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-gnulib@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Gnulib discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnulib-bounces+normalperson=yhbt.net@gnu.org Sender: "bug-gnulib" Starting with xlc version 13, this compiler defines the preprocessor macro _ARCH_PPC64 also in 32-bit builds. See: $ xlc -qversion IBM XL C/C++ for AIX, V12.1 (5765-J02, 5725-C72) Version: 12.01.0000.0000 $ echo > empty.c ; xlc -qshowmacros=pre -E empty.c | grep ARCH_PPC #define _ARCH_PPC 1 $ xlc -qversion IBM XL C/C++ for AIX, V13.1.3 (5725-C72, 5765-J07) Version: 13.01.0003.0006 $ echo > empty.c ; xlc -qshowmacros=pre -E empty.c | grep ARCH_PPC #define _ARCH_PPCGR 1 #define _ARCH_PPC64GRSQ 1 #define _ARCH_PPC 1 #define _ARCH_PPC64GR 1 #define _ARCH_PPC64 1 So, in order to distinguish a 32-bit mode from a 64-bit mode, only the following macros can be used: - defined in 32-bit mode only: _ILP32 __ILP32__ - defined in 64-bit mode only: _LP64 __LP64__ __64BIT__ This patch fixes it. 2021-02-14 Bruno Haible Fix distinction of 32-bit/64-bit mode with xlc 13.1.3 on AIX. * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI, gl_HOST_CPU_C_ABI_32BIT): Test __LP64__ instead of _ARCH_PPC64. * m4/lib-ld.m4 (AC_LIB_PROG_LD): Likewise. * lib/stddef.in.h: Likewise. diff --git a/lib/stddef.in.h b/lib/stddef.in.h index 6385892..ba6f903 100644 --- a/lib/stddef.in.h +++ b/lib/stddef.in.h @@ -51,7 +51,7 @@ /* On AIX 7.2, with xlc in 64-bit mode, defines max_align_t to a type with alignment 4, but 'long' has alignment 8. */ -# if defined _AIX && defined _ARCH_PPC64 +# if defined _AIX && defined __LP64__ # if !GNULIB_defined_max_align_t # ifdef _MAX_ALIGN_T /* /usr/include/stddef.h has already defined max_align_t. Override it. */ diff --git a/m4/host-cpu-c-abi.m4 b/m4/host-cpu-c-abi.m4 index 7dc830e..64e28b1 100644 --- a/m4/host-cpu-c-abi.m4 +++ b/m4/host-cpu-c-abi.m4 @@ -1,4 +1,4 @@ -# host-cpu-c-abi.m4 serial 13 +# host-cpu-c-abi.m4 serial 14 dnl Copyright (C) 2002-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -211,7 +211,7 @@ changequote([,])dnl # be generating 64-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( - [[#if defined __powerpc64__ || defined _ARCH_PPC64 + [[#if defined __powerpc64__ || defined __LP64__ int ok; #else error fail @@ -605,7 +605,7 @@ changequote([,])dnl # be generating 64-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( - [[#if defined __powerpc64__ || defined _ARCH_PPC64 + [[#if defined __powerpc64__ || defined __LP64__ int ok; #else error fail diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 index aa07cb4..076358d 100644 --- a/m4/lib-ld.m4 +++ b/m4/lib-ld.m4 @@ -1,4 +1,4 @@ -# lib-ld.m4 serial 9 +# lib-ld.m4 serial 10 dnl Copyright (C) 1996-2003, 2009-2021 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -122,7 +122,7 @@ else *-*-aix*) AC_COMPILE_IFELSE( [AC_LANG_SOURCE( - [[#if defined __powerpc64__ || defined _ARCH_PPC64 + [[#if defined __powerpc64__ || defined __LP64__ int ok; #else error fail