From patchwork Thu Oct 3 19:44:50 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Lyon X-Patchwork-Id: 1992484 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=zbhlP5dc; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4XKMcl466xz1xt1 for ; Fri, 4 Oct 2024 05:46:31 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C55AF384640A for ; Thu, 3 Oct 2024 19:46:29 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-ot1-x329.google.com (mail-ot1-x329.google.com [IPv6:2607:f8b0:4864:20::329]) by sourceware.org (Postfix) with ESMTPS id 0302B3865473 for ; Thu, 3 Oct 2024 19:45:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0302B3865473 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0302B3865473 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::329 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1727984712; cv=none; b=nJg6mJozTA7bnWfyeaCVFcwT4yF1Jd1K3z8HkTa4d+pHwhpiMGSgjVhO68RJBxKxoYsega+Bc5vNSmIkGMWYTX8Uh76R56NtmECUikg62evAKQbGqzbZnEyb2cSew4b929OEDSd0AgdABrcb0Me8bVvpbBDdtO+kCp6dcX9Je4s= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1727984712; c=relaxed/simple; bh=HNnLS3WfzPPlcOItyZyCNqlcGpS9A32K99W4BPZQXWM=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=qVHuIsAFysWWgkFQ0dtb6pbbbmAI7eCMl324RV+0e1PjQG1BfdVS73SyVHdXGoQkTOeAzjoDUriCrydIVpdckxc4CRkkwEfKMTjehNLQc34pHj7jzIubfG81d2GKraZSo62KrBpVhV8s6sMhP+DZR/4llILPB5Xy/5CdsEhxbLs= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ot1-x329.google.com with SMTP id 46e09a7af769-710e1a47b40so543378a34.2 for ; Thu, 03 Oct 2024 12:45:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1727984709; x=1728589509; darn=gcc.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nHST+BY+8LHufX0iZPzS2QYyOnu7RghNTCZcHyDLU8g=; b=zbhlP5dcQoXPoXuJwDH+8UNPG5oCZYBQhwJ5KTmBAPy4WjN3umxF9eKK71qNM8eLpf iQBB+J+Op9jCkdUEUUEcPVvILpcIHwbw9N/i0lUuYZr10/TsFc1RnQIB2tJYFI6ay23Q FoUi1VoVNXkb94wq2fZq9tH/VijwZyu6LyX2NnGJl7g2qhQh5sbeiWv23LQH4aTIeMAP m2IFR+L+rPZ+0eZny86fM9K/3L0BwxfoSE+KxYDNjfuRP41Zp5vLExOt3yaDWNGdsLtk GT38dgb5VflQl1un28U1l6tYbhrKXF4VpxUVP2wIAs9nUZ5435twkm0FOzU3LV/hr4Oi 78qA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727984709; x=1728589509; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nHST+BY+8LHufX0iZPzS2QYyOnu7RghNTCZcHyDLU8g=; b=F8DpmBNfnyUTCgz0Fagc9JvWINFOSG4D1UQC+m8SgISI2e0OImfV/6Vh1c+gw97J7I A1S+/PDf0+gkstAUWzlymybQ6KHQi1BuiBOMhaRK0t2LxPtJYe8PWkog7ZK0jiNJ+F1/ DHsKHGaNpZ/mJ9QR3AJoHPEs5Rv+MGSd1dTUCLC9BOD2dlm+l0M+vLnGRnOAfz2lFvPh cRqqpJdHC4uCDuv2pJHLYPKsdA8PXNFN6vFPaRn9WT1BRwcEJxycYiEGzV+Y8VILcF8r UvgxWmOi5oZ3KEcHXYu1RebHckKs3KF8797/+WoLP0BD2JEUpzWzU3QW47cY31p1UKJk SaQg== X-Gm-Message-State: AOJu0Ywg7GWl2zEKIkSolENI/XyQqy7flN+yIKzPV5aC+LiCpVxNjsFi 9j+rT4tzHVBUDgWIiLWh4FvWREjNQGnovCeZhA/uZiDF3Yc82s2tC9nlUQTDXK0pHIzhH9ojjph Q6G+CjA== X-Google-Smtp-Source: AGHT+IHV+lIjPsaxTTi8FeKldqCJCUPXF+jqI4s9PbkayZB5xDVe3tLemp4zA3cm0dB0fE8WbJMUVw== X-Received: by 2002:a05:6870:7012:b0:259:ae64:9234 with SMTP id 586e51a60fabf-287c1e0d726mr466634fac.13.1727984708760; Thu, 03 Oct 2024 12:45:08 -0700 (PDT) Received: from localhost.localdomain ([139.178.84.207]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-287ab9b5c14sm651838fac.14.2024.10.03.12.45.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Oct 2024 12:45:08 -0700 (PDT) From: Christophe Lyon To: gcc-patches@gcc.gnu.org, richard.sandiford@arm.com, wdijkstr@arm.com, matthieu.longo@arm.com Cc: Christophe Lyon Subject: [PATCH 3/3] aarch64: libgcc: Add -Werror support Date: Thu, 3 Oct 2024 19:44:50 +0000 Message-Id: <20241003194450.1052220-4-christophe.lyon@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20241003194450.1052220-1-christophe.lyon@linaro.org> References: <20241003194450.1052220-1-christophe.lyon@linaro.org> MIME-Version: 1.0 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP 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: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org When --enable-werror is enabled when running the top-level configure, it passes --enable-werror-always to subdirs. Some of them, like libgcc, ignore it. This patch adds support for it, enabled only for aarch64, to avoid breaking bootstrap for other targets. The patch also adds -Wno-prio-ctor-dtor to avoid a warning when compiling lse_init.c libgcc/ * Makefile.in (WERROR): New. * config/aarch64/t-aarch64: Handle WERROR. Always use -Wno-prio-ctor-dtor. * configure.ac: Add support for --enable-werror-always. * configure: Regenerate. --- libgcc/Makefile.in | 1 + libgcc/config/aarch64/t-aarch64 | 1 + libgcc/configure | 31 +++++++++++++++++++++++++++++++ libgcc/configure.ac | 5 +++++ 4 files changed, 38 insertions(+) diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in index 0e46e9ef768..eca62546642 100644 --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in @@ -84,6 +84,7 @@ AR_FLAGS = rc CC = @CC@ CFLAGS = @CFLAGS@ +WERROR = @WERROR@ RANLIB = @RANLIB@ LN_S = @LN_S@ diff --git a/libgcc/config/aarch64/t-aarch64 b/libgcc/config/aarch64/t-aarch64 index b70e7b94edd..ae1588ce307 100644 --- a/libgcc/config/aarch64/t-aarch64 +++ b/libgcc/config/aarch64/t-aarch64 @@ -30,3 +30,4 @@ LIB2ADDEH += \ $(srcdir)/config/aarch64/__arm_za_disable.S SHLIB_MAPFILES += $(srcdir)/config/aarch64/libgcc-sme.ver +LIBGCC2_CFLAGS += $(WERROR) -Wno-prio-ctor-dtor diff --git a/libgcc/configure b/libgcc/configure index cff1eff9625..ae56f7dbdc9 100755 --- a/libgcc/configure +++ b/libgcc/configure @@ -592,6 +592,7 @@ enable_execute_stack asm_hidden_op extra_parts cpu_type +WERROR get_gcc_base_ver HAVE_STRUB_SUPPORT thread_header @@ -719,6 +720,7 @@ enable_tm_clone_registry with_glibc_version enable_tls with_gcc_major_version_only +enable_werror_always ' ac_precious_vars='build_alias host_alias @@ -1361,6 +1363,7 @@ Optional Features: installations without PT_GNU_EH_FRAME support --disable-tm-clone-registry disable TM clone registry --enable-tls Use thread-local storage [default=yes] + --enable-werror-always enable -Werror despite compiler version Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -5808,6 +5811,34 @@ fi +# Only enable with --enable-werror-always until existing warnings are +# corrected. +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +WERROR= +# Check whether --enable-werror-always was given. +if test "${enable_werror_always+set}" = set; then : + enableval=$enable_werror_always; +else + enable_werror_always=no +fi + +if test $enable_werror_always = yes; then : + WERROR="$WERROR${WERROR:+ }-Werror" +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + # Substitute configuration variables diff --git a/libgcc/configure.ac b/libgcc/configure.ac index 4e8c036990f..6b3ea2aea5c 100644 --- a/libgcc/configure.ac +++ b/libgcc/configure.ac @@ -13,6 +13,7 @@ sinclude(../config/unwind_ipinfo.m4) sinclude(../config/gthr.m4) sinclude(../config/sjlj.m4) sinclude(../config/cet.m4) +sinclude(../config/warnings.m4) AC_INIT([GNU C Runtime Library], 1.0,,[libgcc]) AC_CONFIG_SRCDIR([static-object.mk]) @@ -746,6 +747,10 @@ AC_SUBST(HAVE_STRUB_SUPPORT) # Determine what GCC version number to use in filesystem paths. GCC_BASE_VER +# Only enable with --enable-werror-always until existing warnings are +# corrected. +ACX_PROG_CC_WARNINGS_ARE_ERRORS([manual]) + # Substitute configuration variables AC_SUBST(cpu_type) AC_SUBST(extra_parts)