From: Adhemerval Zanella Date: Mon, 1 Dec 2025 20:09:47 +0000 (-0300) Subject: configure: Only use -Wno-discarded-qualifiers iff compiler supports it X-Git-Url: https://git.feebdaed.xyz/?a=commitdiff_plain;h=67b631db8750e614364ea24077865774f40bf8a9;p=0xmirror%2Fglibc.git configure: Only use -Wno-discarded-qualifiers iff compiler supports it The clang analogous option is -Wno-incompatible-pointer-types-discards-qualifiers, so add a configure option to check which one compiler supports. --- diff --git a/configure b/configure index fc36935dd0..b80b9e5255 100755 --- a/configure +++ b/configure @@ -7431,6 +7431,47 @@ printf "%s\n" "$libc_cv_fpie" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -Wno-discarded-qualifiers" >&5 +printf %s "checking for -Wno-discarded-qualifiers... " >&6; } +if test ${libc_cv_cflags_wno_discarded_qualifiers+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if { ac_try='${CC-cc} -Werror -Wno-discarded-qualifiers -xc /dev/null -S -o /dev/null' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : + libc_cv_cflags_wno_discarded_qualifiers=-Wno-discarded-qualifiers +else case e in #( + e) libc_cv_cflags_wno_discarded_qualifiers= ;; +esac +fi +if test -z "$libc_cv_cflags_wno_discarded_qualifiers"; then + if { ac_try='${CC-cc} -Werror -Wno-incompatible-pointer-types-discards-qualifiers -xc /dev/null -S -o /dev/null' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : + libc_cv_cflags_wno_incompatible_pointer_type_discards_qualifiers=-Wno-incompatible-pointer-types-discards-qualifiers +else case e in #( + e) libc_cv_cflags_wno_incompatible_pointer_type_discards_qualifiers= ;; +esac +fi + libc_cv_cflags_wno_discarded_qualifiers=$libc_cv_cflags_wno_incompatible_pointer_type_discards_qualifiers +fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cflags_wno_discarded_qualifiers" >&5 +printf "%s\n" "$libc_cv_cflags_wno_discarded_qualifiers" >&6; } +config_vars="$config_vars +config-cflags-wno-discarded-qualifiers = $libc_cv_cflags_wno_discarded_qualifiers" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GLOB_DAT reloc" >&5 printf %s "checking for GLOB_DAT reloc... " >&6; } if test ${libc_cv_has_glob_dat+y} diff --git a/configure.ac b/configure.ac index 679a4a96cf..ef9fdd1f59 100644 --- a/configure.ac +++ b/configure.ac @@ -1370,6 +1370,22 @@ LIBC_TRY_CC_OPTION([-fpie], [libc_cv_fpie=yes], [libc_cv_fpie=no]) AC_SUBST(libc_cv_fpie) +dnl Check how to suppress C23-qualifier-generic const warnings. GCC has +dnl -Wno-discarded-qualifiers, while clang -Wno-incompatible-pointer-types-discards-qualifiers +AC_CACHE_CHECK(for -Wno-discarded-qualifiers, libc_cv_cflags_wno_discarded_qualifiers, [dnl +LIBC_TRY_CC_OPTION([-Werror -Wno-discarded-qualifiers], + [libc_cv_cflags_wno_discarded_qualifiers=-Wno-discarded-qualifiers], + [libc_cv_cflags_wno_discarded_qualifiers=]) +if test -z "$libc_cv_cflags_wno_discarded_qualifiers"; then + LIBC_TRY_CC_OPTION([-Werror -Wno-incompatible-pointer-types-discards-qualifiers], + [libc_cv_cflags_wno_incompatible_pointer_type_discards_qualifiers=-Wno-incompatible-pointer-types-discards-qualifiers], + [libc_cv_cflags_wno_incompatible_pointer_type_discards_qualifiers=]) + libc_cv_cflags_wno_discarded_qualifiers=$libc_cv_cflags_wno_incompatible_pointer_type_discards_qualifiers +fi +]) +LIBC_CONFIG_VAR([config-cflags-wno-discarded-qualifiers], + [$libc_cv_cflags_wno_discarded_qualifiers]) + AC_CACHE_CHECK(for GLOB_DAT reloc, libc_cv_has_glob_dat, [dnl cat > conftest.c <