From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from rock.gnat.com (rock.gnat.com [205.232.38.15]) by sourceware.org (Postfix) with ESMTPS id 1E804383582C for ; Wed, 22 Jun 2022 05:14:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1E804383582C Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 92C9D1160F6; Wed, 22 Jun 2022 01:14:50 -0400 (EDT) X-Virus-Scanned: Debian amavisd-new at gnat.com Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id hd-JU+r5pQvp; Wed, 22 Jun 2022 01:14:50 -0400 (EDT) Received: from free.home (tron.gnat.com [IPv6:2620:20:4000:0:46a8:42ff:fe0e:e294]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by rock.gnat.com (Postfix) with ESMTPS id 401A91160F1; Wed, 22 Jun 2022 01:14:50 -0400 (EDT) Received: from livre (livre.home [172.31.160.2]) by free.home (8.15.2/8.15.2) with ESMTPS id 25M5EZL7722612 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 22 Jun 2022 02:14:37 -0300 From: Alexandre Oliva To: gcc-patches@gcc.gnu.org Cc: Richard Earnshaw , Marcus Shawcroft , Kyrylo Tkachov , richard.sandiford@arm.com Subject: Re: [PATCH] aarch64: testsuite: symbol-range compile only Organization: Free thinker, does not speak for AdaCore References: Errors-To: aoliva@lxoliva.fsfla.org Date: Wed, 22 Jun 2022 02:14:35 -0300 In-Reply-To: (Richard Sandiford's message of "Tue, 21 Jun 2022 11:06:32 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Scanned-By: MIMEDefang 2.84 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_SHORT, SPF_HELO_NONE, 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: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Jun 2022 05:14:52 -0000 On Jun 21, 2022, Richard Sandiford wrote: > Could we instead have a new target selector for whether the memory > map includes xGB of RAM? How about this? Testing on aarch64-rtems6.0. Ok to install? aarch64: testsuite: symbol-range fallback to compile From: Alexandre Oliva On some of our embedded aarch64 targets, RAM size is too small for this test to fit. It doesn't look like this test requires linking, and if it does, the -tiny version may presumably get most of the coverage without going overboard in target system requirements. Still, linking may be useful, so introduce a TwoPlusGigs effective target, that checks for the ability to link a program with 2GB of sbss, and use that to select whether to link or just compile symbol-range.c. for gcc/testsuite/ChangeLog * lib/target-supports.exp (check_effective_target_TwoPlusGigs): New. * gcc.target/aarch64/symbol-range.c: Link only on TwoPlusGigs targets, compile otherwise. --- gcc/testsuite/gcc.target/aarch64/symbol-range.c | 3 ++- gcc/testsuite/lib/target-supports.exp | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.target/aarch64/symbol-range.c b/gcc/testsuite/gcc.target/aarch64/symbol-range.c index d8e82fa1b2829..f9a916c7ae2f0 100644 --- a/gcc/testsuite/gcc.target/aarch64/symbol-range.c +++ b/gcc/testsuite/gcc.target/aarch64/symbol-range.c @@ -1,4 +1,5 @@ -/* { dg-do link } */ +/* { dg-do link { target TwoPlusGigs } } */ +/* { dg-do compile { target { ! TwoPlusGigs } } } */ /* { dg-options "-O3 -save-temps -mcmodel=small" } */ char fixed_regs[0x80000000]; diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index d1f4eb7641fa7..0507d6e617fef 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -2906,6 +2906,15 @@ proc check_effective_target_le { } { }] } +# Return 1 if we can link a program with 2+GB of data. + +proc check_effective_target_TwoPlusGigs { } { + return [check_no_compiler_messages TwoPlusGigs executable { + int dummy[0x80000000]; + int main () { return 0; } + }] +} + # Return 1 if we're generating 32-bit code using default options, 0 # otherwise. -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about