Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oMXxp-000549-Rm for pgsql-hackers@arkaria.postgresql.org; Fri, 12 Aug 2022 16:56:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oMXxn-0008Dw-Q7 for pgsql-hackers@arkaria.postgresql.org; Fri, 12 Aug 2022 16:56:47 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oMXxn-0008BI-Ep for pgsql-hackers@lists.postgresql.org; Fri, 12 Aug 2022 16:56:47 +0000 Received: from sss.pgh.pa.us ([66.207.139.130]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oMXxg-0004px-SY for pgsql-hackers@postgresql.org; Fri, 12 Aug 2022 16:56:47 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.15.2/8.15.2) with ESMTP id 27CGuV19166623; Fri, 12 Aug 2022 12:56:31 -0400 From: Tom Lane To: Thomas Munro cc: Peter Eisentraut , Andres Freund , Andrew Dunstan , Robert Haas , pgsql-hackers Subject: Re: Cleaning up historical portability baggage In-reply-to: References: <20220712173352.trdeq66asbv6vf2q@awork3.anarazel.de> <1662559.1657648462@sss.pgh.pa.us> <1249825.1658622186@sss.pgh.pa.us> <20220804034343.unm4rdynedbigamv@awork3.anarazel.de> <3322724.1659586159@sss.pgh.pa.us> <295419.1659918447@sss.pgh.pa.us> <747620.1660002360@sss.pgh.pa.us> <81bb50c! a-d0ea-8cb2-7453-a5058a7b49a8@enterprisedb.com> Comments: In-reply-to Thomas Munro message dated "Fri, 12 Aug 2022 20:03:41 +1200" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0" Content-ID: <166617.1660323388.0@sss.pgh.pa.us> Date: Fri, 12 Aug 2022 12:56:31 -0400 Message-ID: <166622.1660323391@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" Content-ID: <166617.1660323388.1@sss.pgh.pa.us> Continuing the project of removing dead configure tests ... I see that prairiedog was the only buildfarm animal failing the HAVE_PPC_LWARX_MUTEX_HINT test, and it seems pretty unlikely that there are any assemblers remaining in the wild that can't parse that. (I've confirmed that son-of-prairiedog, the NetBSD 9.3 installation I'm cranking up on that hardware, is okay with it.) So, PFA a little patch to remove that test. It doesn't look like we can remove the adjacent test about "i" syntax, unfortunately, because the AIX animals still fail that. regards, tom lane ------- =_aaaaaaaaaa0 Content-Type: text/x-diff; name="drop-lwarx-hint-test.patch"; charset="us-ascii" Content-ID: <166617.1660323388.2@sss.pgh.pa.us> Content-Description: drop-lwarx-hint-test.patch Content-Transfer-Encoding: quoted-printable diff --git a/configure b/configure index cf2c4b85fe..35dcfbb709 100755 --- a/configure +++ b/configure @@ -15423,39 +15423,7 @@ $as_echo "#define HAVE_X86_64_POPCNTQ 1" >>confde= fs.h fi ;; ppc*|powerpc*) - # On PPC, check if assembler supports LWARX instruction's mutex hint = bit - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether assembler s= upports lwarx hint bit" >&5 -$as_echo_n "checking whether assembler supports lwarx hint bit... " >&6; = } -if ${pgac_cv_have_ppc_mutex_hint+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -int a =3D 0; int *p =3D &a; int r; - __asm__ __volatile__ (" lwarx %0,0,%1,1\n" : "=3D&r"(r) : "r"(p)); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - pgac_cv_have_ppc_mutex_hint=3Dyes -else - pgac_cv_have_ppc_mutex_hint=3Dno -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_have_ppc_mutex_= hint" >&5 -$as_echo "$pgac_cv_have_ppc_mutex_hint" >&6; } - if test x"$pgac_cv_have_ppc_mutex_hint" =3D xyes ; then - -$as_echo "#define HAVE_PPC_LWARX_MUTEX_HINT 1" >>confdefs.h - - fi - # Check if compiler accepts "i"(x) when __builtin_constant_p(x). + # On PPC, check if compiler accepts "i"(x) when __builtin_constant_p(= x). { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether __builtin_c= onstant_p(x) implies \"i\"(x) acceptance" >&5 $as_echo_n "checking whether __builtin_constant_p(x) implies \"i\"(x) acc= eptance... " >&6; } if ${pgac_cv_have_i_constraint__builtin_constant_p+:} false; then : diff --git a/configure.ac b/configure.ac index b5798bcb0a..a2aa725455 100644 --- a/configure.ac +++ b/configure.ac @@ -1687,18 +1687,7 @@ case $host_cpu in fi ;; ppc*|powerpc*) - # On PPC, check if assembler supports LWARX instruction's mutex hint = bit - AC_CACHE_CHECK([whether assembler supports lwarx hint bit], - [pgac_cv_have_ppc_mutex_hint], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], - [int a =3D 0; int *p =3D &a; int r; - __asm__ __volatile__ (" lwarx %0,0,%1,1\n" : "=3D&r"(r) : "r"(p));])], - [pgac_cv_have_ppc_mutex_hint=3Dyes], - [pgac_cv_have_ppc_mutex_hint=3Dno])]) - if test x"$pgac_cv_have_ppc_mutex_hint" =3D xyes ; then - AC_DEFINE(HAVE_PPC_LWARX_MUTEX_HINT, 1, [Define to 1 if the assembler su= pports PPC's LWARX mutex hint bit.]) - fi - # Check if compiler accepts "i"(x) when __builtin_constant_p(x). + # On PPC, check if compiler accepts "i"(x) when __builtin_constant_p(= x). AC_CACHE_CHECK([whether __builtin_constant_p(x) implies "i"(x) accept= ance], [pgac_cv_have_i_constraint__builtin_constant_p], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index fc5ad5fd65..049c2d204f 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -349,9 +349,6 @@ /* Define to 1 if you have the `posix_fallocate' function. */ #undef HAVE_POSIX_FALLOCATE = -/* Define to 1 if the assembler supports PPC's LWARX mutex hint bit. */ -#undef HAVE_PPC_LWARX_MUTEX_HINT - /* Define to 1 if you have the `ppoll' function. */ #undef HAVE_PPOLL = diff --git a/src/include/pg_config_manual.h b/src/include/pg_config_manual= .h index 5ee2c46267..ffd385765c 100644 --- a/src/include/pg_config_manual.h +++ b/src/include/pg_config_manual.h @@ -236,11 +236,9 @@ * which should be safe in nearly all cases. You might want to override * this if you are building 32-bit code for a known-recent PPC machine. */ -#ifdef HAVE_PPC_LWARX_MUTEX_HINT /* must have assembler support in any ca= se */ #if defined(__ppc64__) || defined(__powerpc64__) #define USE_PPC_LWARX_MUTEX_HINT #endif -#endif = /* * On PPC machines, decide whether to use LWSYNC instructions in place of diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index cc82668457..243c5fa824 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -313,7 +313,6 @@ sub GenerateFiles HAVE_PAM_PAM_APPL_H =3D> undef, HAVE_POSIX_FADVISE =3D> undef, HAVE_POSIX_FALLOCATE =3D> undef, - HAVE_PPC_LWARX_MUTEX_HINT =3D> undef, HAVE_PPOLL =3D> undef, HAVE_PS_STRINGS =3D> undef, HAVE_PTHREAD =3D> undef, ------- =_aaaaaaaaaa0--