From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-sender-0.a4lg.com (mail-sender.a4lg.com [153.120.152.154]) by sourceware.org (Postfix) with ESMTPS id A3EA63860759 for ; Thu, 20 Oct 2022 09:26:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A3EA63860759 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=irq.a4lg.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=irq.a4lg.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id 04F47300089; Thu, 20 Oct 2022 09:26:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irq.a4lg.com; s=2017s01; t=1666258018; bh=a39D+JEBFWkt60Xlc0Ik9VXp/KP0HhLBkvIl/XwRUvo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Mime-Version:Content-Transfer-Encoding; b=NercItNoz9Zvtyg9Eqyvuc9kN4AwT+4x6N/Z6KROKr6vwyHvgfSRBa6owq1X/ZI0I JxggtAg636cTQ1KtaEROJjN6hAbwPoJygNKwhwtuWmqIsp6VWcxew8olhwlgEIXYV1 Hr7+Avt8FcqmFCUG4VYnNKaGuttlbiTqk5v17Nwk= From: Tsukasa OI To: Tsukasa OI , Andrew Burgess , Mike Frysinger , Nick Clifton Cc: binutils@sourceware.org Subject: [PATCH 02/40] sim: Check known getrusage declaration existence Date: Thu, 20 Oct 2022 09:25:48 +0000 Message-Id: In-Reply-To: References: Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,GIT_PATCH_0,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 List-Id: Clang generates a warning if there is a function declaration/definition with zero arguments. Such declarations/definitions without a prototype (an argument list) are deprecated forms of indefinite arguments ("-Wdeprecated-non-prototype"). On the default configuration, it causes a build failure (unless "--disable-werror" is specified). Such getrusage function declarations are placed in three files under sim/ppc and to avoid defining those on the modern environments, this commit will make the configuration script to find the known declaration of getrusage and defines HAVE_DECL_GETRUSAGE if it finds one. If we find one (and we *will* in most modern environments), we don't need to rely on the deprecated declarations. --- sim/config.h.in | 4 ++++ sim/configure | 32 ++++++++++++++++++++++++++++++++ sim/configure.ac | 10 ++++++++++ 3 files changed, 46 insertions(+) diff --git a/sim/config.h.in b/sim/config.h.in index 9a94b289e46..bc7ec588ec6 100644 --- a/sim/config.h.in +++ b/sim/config.h.in @@ -44,6 +44,10 @@ /* Is the prototype for getopt in in the expected format? */ #undef HAVE_DECL_GETOPT +/* Is the prototype for getrusage in in the expected format? + */ +#undef HAVE_DECL_GETRUSAGE + /* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. */ #undef HAVE_DECL_TZNAME diff --git a/sim/configure b/sim/configure index dac7f085be1..fbdd256d374 100755 --- a/sim/configure +++ b/sim/configure @@ -16460,6 +16460,38 @@ $as_echo "#define HAVE_DECL_GETOPT 1" >>confdefs.h fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a known getrusage prototype in sys/resource.h" >&5 +$as_echo_n "checking for a known getrusage prototype in sys/resource.h... " >&6; } +if ${sim_cv_decl_getrusage_sys_resource_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +extern int getrusage (int, struct rusage *); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + sim_cv_decl_getrusage_sys_resource_h=yes +else + sim_cv_decl_getrusage_sys_resource_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_cv_decl_getrusage_sys_resource_h" >&5 +$as_echo "$sim_cv_decl_getrusage_sys_resource_h" >&6; } +if test $sim_cv_decl_getrusage_sys_resource_h = yes; then + +$as_echo "#define HAVE_DECL_GETRUSAGE 1" >>confdefs.h + +fi + diff --git a/sim/configure.ac b/sim/configure.ac index be0cfdbea32..9411fc10f9d 100644 --- a/sim/configure.ac +++ b/sim/configure.ac @@ -187,6 +187,16 @@ if test $sim_cv_decl_getopt_unistd_h = yes; then [Is the prototype for getopt in in the expected format?]) fi +AC_MSG_CHECKING(for a known getrusage prototype in sys/resource.h) +AC_CACHE_VAL(sim_cv_decl_getrusage_sys_resource_h, +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], [extern int getrusage (int, struct rusage *);])], +sim_cv_decl_getrusage_sys_resource_h=yes, sim_cv_decl_getrusage_sys_resource_h=no)]) +AC_MSG_RESULT($sim_cv_decl_getrusage_sys_resource_h) +if test $sim_cv_decl_getrusage_sys_resource_h = yes; then + AC_DEFINE([HAVE_DECL_GETRUSAGE], 1, + [Is the prototype for getrusage in in the expected format?]) +fi + dnl These are unfortunate. They are conditionally called by other sim macros dnl but always used by common/Make-common.in. So we have to subst here even dnl when the rest of the code is in the respective macros. Once we merge the -- 2.34.1