From patchwork Sat Dec 23 06:22:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Frysinger X-Patchwork-Id: 82788 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 94A4A385842E for ; Sat, 23 Dec 2023 06:23:03 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) by sourceware.org (Postfix) with ESMTP id 5F6EE3858D33 for ; Sat, 23 Dec 2023 06:22:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5F6EE3858D33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gentoo.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gentoo.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5F6EE3858D33 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=140.211.166.183 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703312571; cv=none; b=xq1H0LfQSKUfYwQix/00UkKSOdKrRqkpBidtRiTHdxdVjRR4UPCa3owNNyVNkKQ+Bed7/Hd0W6CAFg5KSIpd8lTD+sZe9qT+Jx7hlP7x9xyFQjhOyZkQv36SVqrDs+WEHa0AIqlP7SvlPXh80L9gccjsV13SvES1suvF1sSJrMY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703312571; c=relaxed/simple; bh=kVgpZuAFI87nJD+YETV1ZW4iKPgFrKqYOC3DX7sS6Zg=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=D4n8epnXUkxkT0bHU3NpVKNS8FX9falTUFpi64Uwr4lZSvMo/stxJwlflZfv12SPzmzHri3K8vsdr9CgZdhomG01XLonU7B6rZBJRlaI+FOng4WH8f7YOXIeIIKbOBKTOayleC8+oZnXK1257T4MKyHsgPO5H2QyzJw47V82kSs= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by smtp.gentoo.org (Postfix, from userid 559) id 07CAE342FF9; Sat, 23 Dec 2023 06:22:50 +0000 (UTC) From: Mike Frysinger To: gdb-patches@sourceware.org Subject: [PATCH/committed] sim: warnings: rework individual flag disable into dedicated vars Date: Sat, 23 Dec 2023 01:22:48 -0500 Message-ID: <20231223062248.20111-1-vapier@gentoo.org> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org The -Wshadow=local is too new for some compilers, so move it to a var that we test at configure time. --- sim/Makefile.in | 9 ++- sim/configure | 127 +++++++++++++++++++++++++------ sim/cris/local.mk | 6 +- sim/m4/sim_ac_option_warnings.m4 | 66 +++++++++++----- 4 files changed, 157 insertions(+), 51 deletions(-) diff --git a/sim/cris/local.mk b/sim/cris/local.mk index a8eea65572ad..fe3f3c8d043c 100644 --- a/sim/cris/local.mk +++ b/sim/cris/local.mk @@ -17,10 +17,10 @@ ## along with this program. If not, see . ## Some CGEN kludges are causing build-time warnings. See cris.cpu for details. -AM_CFLAGS_%C%_mloopv10f.o = -Wno-unused-but-set-variable -AM_CFLAGS_%C%_mloopv32f.o = -Wno-unused-but-set-variable +AM_CFLAGS_%C%_mloopv10f.o = $(SIM_CFLAG_WNO_UNUSED_BUT_SET_VARIABLE) +AM_CFLAGS_%C%_mloopv32f.o = $(SIM_CFLAG_WNO_UNUSED_BUT_SET_VARIABLE) ## Some CGEN assignments use variable names that are nested & repeated. -AM_CFLAGS_%C%_mloopv10f.o += -Wno-shadow=local +AM_CFLAGS_%C%_mloopv10f.o += $(SIM_CFLAG_WNO_SHADOW_LOCAL) nodist_%C%_libsim_a_SOURCES = \ %D%/modules.c diff --git a/sim/m4/sim_ac_option_warnings.m4 b/sim/m4/sim_ac_option_warnings.m4 index 1c2d09152306..02b5ffaa5c76 100644 --- a/sim/m4/sim_ac_option_warnings.m4 +++ b/sim/m4/sim_ac_option_warnings.m4 @@ -128,33 +128,57 @@ then # Separate out the -Werror flag as some files just cannot be # compiled with it enabled. for w in ${build_warnings}; do - # GCC does not complain about -Wno-unknown-warning. Invert - # and test -Wunknown-warning instead. - case $w in - -Wno-*) - wtest=`echo $w | sed 's/-Wno-/-W/g'` ;; - -Wformat-nonliteral) - # gcc requires -Wformat before -Wformat-nonliteral - # will work, so stick them together. - w="-Wformat $w" - wtest="$w" - ;; - *) - wtest=$w ;; - esac - case $w in -Werr*) WERROR_CFLAGS=-Werror ;; - *) - # Check whether GCC accepts it. - saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror $wtest" - AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",) - CFLAGS="$saved_CFLAGS" + *) _SIM_TEST_WARNING_FLAG($w, [WARN_CFLAGS="${WARN_CFLAGS} $w"]) ;; esac done AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS}) + + dnl Test individual flags to export to dedicated variables. + m4_map([_SIM_EXPORT_WARNING_FLAG], m4_split(m4_normalize([ + -Wno-shadow=local + -Wno-unused-but-set-variable + ])))dnl fi ]) +dnl Test a warning flag $1 and execute $2 if it passes, else $3. +AC_DEFUN([_SIM_TEST_WARNING_FLAG], [dnl + dnl GCC does not complain about -Wno-unknown-warning. Invert + dnl and test -Wunknown-warning instead. + w="$1" + case $w in + -Wno-*) + wtest=`echo $w | sed 's/-Wno-/-W/g'` ;; + -Wformat-nonliteral) + dnl gcc requires -Wformat before -Wformat-nonliteral + dnl will work, so stick them together. + w="-Wformat $w" + wtest="$w" + ;; + *) + wtest=$w ;; + esac + + dnl Check whether GCC accepts it. + saved_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror $wtest" + AC_TRY_COMPILE([],[],$2,$3) + CFLAGS="$saved_CFLAGS" +]) +dnl Export variable $1 to $2 for use in makefiles. +AC_DEFUN([_SIM_EXPORT_WARNING], [dnl + AS_VAR_SET($1, $2) + AC_SUBST($1) +]) +dnl Test if $1 is a known warning flag, and export a variable for makefiles. +dnl If $1=-Wfoo, then SIM_CFLAG_WFOO will be set to -Wfoo if it's supported. +AC_DEFUN([_SIM_EXPORT_WARNING_FLAG], [dnl + AC_MSG_CHECKING([whether $1 is supported]) + _SIM_TEST_WARNING_FLAG($1, [dnl + _SIM_EXPORT_WARNING([SIM_CFLAG]m4_toupper(m4_translit($1, [-= ], [__])), $1) + AC_MSG_RESULT(yes) + ], [AC_MSG_RESULT(no)]) +]) AC_SUBST(WARN_CFLAGS) AC_SUBST(WERROR_CFLAGS)