This is an automated email from the ASF dual-hosted git repository.

avamingli pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudberry.git

commit fd4abf4f7ec761a87feab59bba6798c91daa6424
Author: Tom Lane <[email protected]>
AuthorDate: Tue Sep 20 18:59:53 2022 -0400

    Disable -Wdeprecated-non-prototype in the back branches.
    
    There doesn't seem to be any good ABI-preserving way to silence
    clang 15's -Wdeprecated-non-prototype warnings about our tree-walk
    APIs.  While we've fixed it properly in HEAD, the only way to not
    see hundreds of these in the back branches is to disable the
    warnings.  We're not going to do anything about them, so we might
    as well disable them.
    
    I noticed that we also get some of these warnings about fmgr.c's
    support for V0 function call convention, in branches before v10
    where we removed that.  That's another area we aren't going to
    change, so turning off the warning seems fine for that too.
    
    Per project policy, this is a candidate for back-patching into
    out-of-support branches: it suppresses annoying compiler warnings
    but changes no behavior.  Hence, back-patch all the way to 9.2.
    
    Discussion: 
https://postgr.es/m/ca+hukgkphpdtv67y+s6yic8kh5oxedg6a-twwo_xznktcg0...@mail.gmail.com
    (cherry-picked from 52a5fd5b9f8f91fb1df6c7258e1ff58739a61db8 pg:REL_12_15)
---
 configure    | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac | 12 +++++++++
 2 files changed, 99 insertions(+)

diff --git a/configure b/configure
index 7ee6e2de51..6b46424ed4 100755
--- a/configure
+++ b/configure
@@ -6738,6 +6738,51 @@ fi
   if test -n "$NOT_THE_CFLAGS"; then
     CFLAGS="$CFLAGS -Wno-compound-token-split-by-macro"
   fi
+  # Similarly remove clang 15+'s deprecated-non-prototype, as it warns about
+  # tree-walking APIs that we can't reasonably change in the back branches.
+  NOT_THE_CFLAGS=""
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC} supports 
-Wdeprecated-non-prototype, for NOT_THE_CFLAGS" >&5
+$as_echo_n "checking whether ${CC} supports -Wdeprecated-non-prototype, for 
NOT_THE_CFLAGS... " >&6; }
+if ${pgac_cv_prog_CC_cflags__Wdeprecated_non_prototype+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  pgac_save_CFLAGS=$CFLAGS
+pgac_save_CC=$CC
+CC=${CC}
+CFLAGS="${NOT_THE_CFLAGS} -Wdeprecated-non-prototype"
+ac_save_c_werror_flag=$ac_c_werror_flag
+ac_c_werror_flag=yes
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv_prog_CC_cflags__Wdeprecated_non_prototype=yes
+else
+  pgac_cv_prog_CC_cflags__Wdeprecated_non_prototype=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_c_werror_flag=$ac_save_c_werror_flag
+CFLAGS="$pgac_save_CFLAGS"
+CC="$pgac_save_CC"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 
$pgac_cv_prog_CC_cflags__Wdeprecated_non_prototype" >&5
+$as_echo "$pgac_cv_prog_CC_cflags__Wdeprecated_non_prototype" >&6; }
+if test x"$pgac_cv_prog_CC_cflags__Wdeprecated_non_prototype" = x"yes"; then
+  NOT_THE_CFLAGS="${NOT_THE_CFLAGS} -Wdeprecated-non-prototype"
+fi
+
+
+  if test -n "$NOT_THE_CFLAGS"; then
+    CFLAGS="$CFLAGS -Wno-deprecated-non-prototype"
+  fi
   # Similarly disable useless truncation warnings from gcc 8+
   NOT_THE_CFLAGS=""
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC} supports 
-Wformat-truncation, for NOT_THE_CFLAGS" >&5
@@ -7711,6 +7756,48 @@ fi
     BITCODE_CFLAGS="$BITCODE_CFLAGS -Wno-compound-token-split-by-macro"
   fi
   NOT_THE_CFLAGS=""
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CLANG} supports 
-Wdeprecated-non-prototype, for NOT_THE_CFLAGS" >&5
+$as_echo_n "checking whether ${CLANG} supports -Wdeprecated-non-prototype, for 
NOT_THE_CFLAGS... " >&6; }
+if ${pgac_cv_prog_CLANG_cflags__Wdeprecated_non_prototype+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  pgac_save_CFLAGS=$CFLAGS
+pgac_save_CC=$CC
+CC=${CLANG}
+CFLAGS="${NOT_THE_CFLAGS} -Wdeprecated-non-prototype"
+ac_save_c_werror_flag=$ac_c_werror_flag
+ac_c_werror_flag=yes
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  pgac_cv_prog_CLANG_cflags__Wdeprecated_non_prototype=yes
+else
+  pgac_cv_prog_CLANG_cflags__Wdeprecated_non_prototype=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_c_werror_flag=$ac_save_c_werror_flag
+CFLAGS="$pgac_save_CFLAGS"
+CC="$pgac_save_CC"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 
$pgac_cv_prog_CLANG_cflags__Wdeprecated_non_prototype" >&5
+$as_echo "$pgac_cv_prog_CLANG_cflags__Wdeprecated_non_prototype" >&6; }
+if test x"$pgac_cv_prog_CLANG_cflags__Wdeprecated_non_prototype" = x"yes"; then
+  NOT_THE_CFLAGS="${NOT_THE_CFLAGS} -Wdeprecated-non-prototype"
+fi
+
+  if test -n "$NOT_THE_CFLAGS"; then
+    BITCODE_CFLAGS="$BITCODE_CFLAGS -Wno-deprecated-non-prototype"
+  fi
+  NOT_THE_CFLAGS=""
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CLANG} supports 
-Wformat-truncation, for NOT_THE_CFLAGS" >&5
 $as_echo_n "checking whether ${CLANG} supports -Wformat-truncation, for 
NOT_THE_CFLAGS... " >&6; }
 if ${pgac_cv_prog_CLANG_cflags__Wformat_truncation+:} false; then :
diff --git a/configure.ac b/configure.ac
index f5ad58194c..1310ff80ad 100644
--- a/configure.ac
+++ b/configure.ac
@@ -613,6 +613,13 @@ if test "$GCC" = yes -a "$ICC" = no; then
   if test -n "$NOT_THE_CFLAGS"; then
     CFLAGS="$CFLAGS -Wno-compound-token-split-by-macro"
   fi
+  # Similarly remove clang 15+'s deprecated-non-prototype, as it warns about
+  # tree-walking APIs that we can't reasonably change in the back branches.
+  NOT_THE_CFLAGS=""
+  PGAC_PROG_CC_VAR_OPT(NOT_THE_CFLAGS, [-Wdeprecated-non-prototype])
+  if test -n "$NOT_THE_CFLAGS"; then
+    CFLAGS="$CFLAGS -Wno-deprecated-non-prototype"
+  fi
   # Similarly disable useless truncation warnings from gcc 8+
   NOT_THE_CFLAGS=""
   PGAC_PROG_CC_VAR_OPT(NOT_THE_CFLAGS, [-Wformat-truncation])
@@ -687,6 +694,11 @@ if test "$with_llvm" = yes ; then
     BITCODE_CFLAGS="$BITCODE_CFLAGS -Wno-compound-token-split-by-macro"
   fi
   NOT_THE_CFLAGS=""
+  PGAC_PROG_VARCC_VARFLAGS_OPT(CLANG, NOT_THE_CFLAGS, 
[-Wdeprecated-non-prototype])
+  if test -n "$NOT_THE_CFLAGS"; then
+    BITCODE_CFLAGS="$BITCODE_CFLAGS -Wno-deprecated-non-prototype"
+  fi
+  NOT_THE_CFLAGS=""
   PGAC_PROG_VARCC_VARFLAGS_OPT(CLANG, NOT_THE_CFLAGS, [-Wformat-truncation])
   if test -n "$NOT_THE_CFLAGS"; then
     BITCODE_CFLAGS="$BITCODE_CFLAGS -Wno-format-truncation"


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to