From patchwork Fri Nov 18 12:03:23 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Toma Tabacu X-Patchwork-Id: 696556 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3tKxVH1PmBz9t0J for ; Fri, 18 Nov 2016 23:03:48 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="S5Wr0YQr"; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:date:message-id:references:in-reply-to:content-type :content-transfer-encoding:mime-version; q=dns; s=default; b=DRY Jud+gCcv0jH7IjT00K0vUnKUWdaFLfic87U1BqiLFF7H13jiGpcPWsDSYg77rIhE OzJC7IU2gDimve2uESNKCFMeVelRCIo7KChiZYzgeAkeFca7C7J531iaH6Cgpyhy Q9hzjeyDh8Me3qYCqqiRlLTKAe/LkIhaDCBl4Gzs= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:date:message-id:references:in-reply-to:content-type :content-transfer-encoding:mime-version; s=default; bh=ZkBDsxNOD 8sONYsRkkO31YiVqmk=; b=S5Wr0YQrhM1XgtpL0+dx/k2Tb/JGObOfIT0zW01Wz QlR03bEvDm2xZ/Iu1IDb1amWvlEDP6ZoR94SFUaKsq2NPk7uOZ68FEUJ6+5kIbph THrconYpHW+ugs76kxPHkrquQbyph6UP12S4eRh31xbLNKrSJP3MGEfFBehx8qxw xE= Received: (qmail 34847 invoked by alias); 18 Nov 2016 12:03:40 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 34817 invoked by uid 89); 18 Nov 2016 12:03:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-4.6 required=5.0 tests=AWL, BAYES_00, MIME_BASE64_BLANKS, RCVD_IN_DNSWL_NONE, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 spammy=quality X-HELO: mailapp01.imgtec.com Received: from mailapp01.imgtec.com (HELO mailapp01.imgtec.com) (195.59.15.196) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 18 Nov 2016 12:03:28 +0000 Received: from HHMAIL01.hh.imgtec.org (unknown [10.100.10.19]) by Forcepoint Email with ESMTPS id ECF4724C321E4; Fri, 18 Nov 2016 12:03:21 +0000 (GMT) Received: from HHMAIL-X.hh.imgtec.org (10.100.10.113) by HHMAIL01.hh.imgtec.org (10.100.10.19) with Microsoft SMTP Server (TLS) id 14.3.294.0; Fri, 18 Nov 2016 12:03:24 +0000 Received: from HHMAIL01.hh.imgtec.org ([fe80::710b:f219:72bc:e0b3]) by HHMAIL-X.hh.imgtec.org ([fe80::3509:b0ce:371:2b%18]) with mapi id 14.03.0294.000; Fri, 18 Nov 2016 12:03:24 +0000 From: Toma Tabacu To: "Moore, Catherine" , Matthew Fortune , Andrew Bennett , "'gcc-patches@gcc.gnu.org'" Subject: RE: [PATCH] MIPS: If a test in the MIPS testsuite requires standard library support check the sysroot supports the required test options. Date: Fri, 18 Nov 2016 12:03:23 +0000 Message-ID: References: <0DA23CC379F5F945ACB41CF394B98277210F9A11@LEMAIL01.le.imgtec.org> <6D39441BF12EF246A7ABCE6654B023532124BA16@LEMAIL01.le.imgtec.org> <0DA23CC379F5F945ACB41CF394B98277211136C2@LEMAIL01.le.imgtec.org> <0DA23CC379F5F945ACB41CF394B982776D88AD11@HHMAIL01.hh.imgtec.org> <6D39441BF12EF246A7ABCE6654B0235380AD0392@HHMAIL01.hh.imgtec.org> <41111f82b7ca436cbbfceac46db281a5@SVR-ORW-MBX-04.mgc.mentorg.com> In-Reply-To: <41111f82b7ca436cbbfceac46db281a5@SVR-ORW-MBX-04.mgc.mentorg.com> MIME-Version: 1.0 X-IsSubscribed: yes > From: Moore, Catherine [mailto:Catherine_Moore@mentor.com] > Sent: 17 November 2016 21:53 > To: Matthew Fortune; Toma Tabacu; Andrew Bennett; 'gcc- > patches@gcc.gnu.org' > Cc: Moore, Catherine > Subject: RE: [PATCH] MIPS: If a test in the MIPS testsuite requires standard > library support check the sysroot supports the required test options. > > > > > -----Original Message----- > > From: gcc-patches-owner@gcc.gnu.org [mailto:gcc-patches- > > owner@gcc.gnu.org] On Behalf Of Matthew Fortune > > Sent: Thursday, November 17, 2016 8:47 AM > > To: Toma Tabacu ; Andrew Bennett > > ; Moore, Catherine > > ; 'gcc-patches@gcc.gnu.org' > patches@gcc.gnu.org> > > Subject: RE: [PATCH] MIPS: If a test in the MIPS testsuite requires > > standard library support check the sysroot supports the required test > > options. > > > > Toma Tabacu writes: > > > Hi, > > > > > > The patch below is a rebased version of Andrew's patch plus a few > > more changes > > > to test options. > > > > > > I have tested Andrew's patch by passing -msoft-float to the testsuite > > without > > > having a soft-float library available, and saw that the inline-memcpy- > > {1,2,3,4,5}.c > > > and memcpy-1.c tests were also failing to find standard library > > headers. > > > In the version below, I have added (REQUIRES_STDLIB) to them as > > well. > > > > > > However, I believe that the memcpy-1.c test was removed from the > > first version > > > of Andrew's patch in response to Matthew's comments, but I don't > > think it > > > should be. > > > > > > Tested with mips-img-linux-gnu and mips-mti-linux-gnu. > > > > This looks OK to me but I then again I helped with the design for this. > > > > I'd like to give Catherine a chance to take a look though as the feature > > is unusual. > > > > One comment below. > > > > > diff --git a/gcc/testsuite/gcc.target/mips/mips.exp > > > b/gcc/testsuite/gcc.target/mips/mips.exp > > > index e22d782..ccd4ecb 100644 > > > --- a/gcc/testsuite/gcc.target/mips/mips.exp > > > +++ b/gcc/testsuite/gcc.target/mips/mips.exp > > > @@ -1420,6 +1426,22 @@ proc mips-dg-options { args } { > > > } > > > } > > > > > > + # If the test is marked as requiring standard libraries check > > > + # that the sysroot has support for the current set of test options. > > > + if { [mips_have_test_option_p options "REQUIRES_STDLIB"] } { > > > + mips_push_test_options saved_options $extra_tool_flags > > > + set output [mips_preprocess "" { > > > + #include > > > + } 1] > > > + mips_pop_test_options saved_options > > > + > > > + # If the preprocessing of the stdlib.h file produced errors mark > > > + # the test as unsupported. > > > + if { ![string equal $output ""] } { > > > + set do_what [lreplace $do_what 1 1 "N"] > > > > We should describe what we expect the format of do_what to be at > > the time > > of writing in case it ever changes. i.e. a comment to say what the > > second > > character means and therefore make it clear that setting it to 'n' makes > > the test unsupported. > > > > This patch looks okay to me after updating the comment as Matthew suggested. The version below has a more detailed comment about marking tests as unsupported. Matthew, does it look good to you ? Also, should we document our expectations for the rest of do_what's format (elements 0 and 2) ? Regards, Toma Tabacu gcc/testsuite/ChangeLog: * gcc.target/mips/inline-memcpy-1.c (dg-options): Add (REQUIRES_STDLIB). * gcc.target/mips/inline-memcpy-2.c: Ditto. * gcc.target/mips/inline-memcpy-3.c: Ditto. * gcc.target/mips/inline-memcpy-4.c: Ditto. * gcc.target/mips/inline-memcpy-5.c: Ditto. * gcc.target/mips/loongson-shift-count-truncated-1.c: Ditto. * gcc.target/mips/loongson-simd.c: Ditto. * gcc.target/mips/memcpy-1.c: Ditto. * gcc.target/mips/mips-3d-1.c: Ditto. * gcc.target/mips/mips-3d-2.c: Ditto. * gcc.target/mips/mips-3d-3.c: Ditto. * gcc.target/mips/mips-3d-4.c: Ditto. * gcc.target/mips/mips-3d-5.c: Ditto. * gcc.target/mips/mips-3d-6.c: Ditto. * gcc.target/mips/mips-3d-7.c: Ditto. * gcc.target/mips/mips-3d-8.c: Ditto. * gcc.target/mips/mips-3d-9.c: Ditto. * gcc.target/mips/mips-ps-1.c: Ditto. * gcc.target/mips/mips-ps-2.c: Ditto. * gcc.target/mips/mips-ps-3.c: Ditto. * gcc.target/mips/mips-ps-4.c: Ditto. * gcc.target/mips/mips-ps-6.c: Ditto. * gcc.target/mips/mips16-attributes.c: Ditto. * gcc.target/mips/mips32-dsp-run.c: Ditto. * gcc.target/mips/mips32-dsp.c: Ditto. * gcc.target/mips/save-restore-1.c: Ditto. * gcc.target/mips/mips.exp (mips_option_groups): Add stdlib. (mips_preprocess): Add ignore_output argument that when set will not return the pre-processed output. (mips_arch_info): Update arguments for the call to mips_preprocess. (mips-dg-init): Ditto. (mips-dg-options): Check if a test having test option (REQUIRES_STDLIB) has the required sysroot support for the current test options. diff --git a/gcc/testsuite/gcc.target/mips/inline-memcpy-1.c b/gcc/testsuite/gcc.target/mips/inline-memcpy-1.c index 5a254b1..8b1ad80 100644 --- a/gcc/testsuite/gcc.target/mips/inline-memcpy-1.c +++ b/gcc/testsuite/gcc.target/mips/inline-memcpy-1.c @@ -1,4 +1,4 @@ -/* { dg-options "-fno-common isa_rev>=6" } */ +/* { dg-options "-fno-common isa_rev>=6 (REQUIRES_STDLIB)" } */ /* { dg-skip-if "code quality test" { *-*-* } { "-O0" "-Os" } { "" } } */ /* { dg-final { scan-assembler-not "\tmemcpy" } } */ diff --git a/gcc/testsuite/gcc.target/mips/inline-memcpy-2.c b/gcc/testsuite/gcc.target/mips/inline-memcpy-2.c index e144e61..e9feb93 100644 --- a/gcc/testsuite/gcc.target/mips/inline-memcpy-2.c +++ b/gcc/testsuite/gcc.target/mips/inline-memcpy-2.c @@ -1,4 +1,4 @@ -/* { dg-options "-fno-common isa_rev>=6" } */ +/* { dg-options "-fno-common isa_rev>=6 (REQUIRES_STDLIB)" } */ /* { dg-skip-if "code quality test" { *-*-* } { "-O0" "-Os"} { "" } } */ /* { dg-final { scan-assembler-not "\tmemcpy" } } */ /* { dg-final { scan-assembler-times "\tsh\t" 16 } } */ diff --git a/gcc/testsuite/gcc.target/mips/inline-memcpy-3.c b/gcc/testsuite/gcc.target/mips/inline-memcpy-3.c index 96a0387..3bdb28b 100644 --- a/gcc/testsuite/gcc.target/mips/inline-memcpy-3.c +++ b/gcc/testsuite/gcc.target/mips/inline-memcpy-3.c @@ -1,4 +1,4 @@ -/* { dg-options "-fno-common isa_rev<=5" } */ +/* { dg-options "-fno-common isa_rev<=5 (REQUIRES_STDLIB)" } */ /* { dg-skip-if "code quality test" { *-*-* } { "-O0" "-Os"} { "" } } */ /* { dg-final { scan-assembler-not "\tmemcpy" } } */ /* { dg-final { scan-assembler-times "swl" 8 } } */ diff --git a/gcc/testsuite/gcc.target/mips/inline-memcpy-4.c b/gcc/testsuite/gcc.target/mips/inline-memcpy-4.c index 0e7a22e..d64eb5d 100644 --- a/gcc/testsuite/gcc.target/mips/inline-memcpy-4.c +++ b/gcc/testsuite/gcc.target/mips/inline-memcpy-4.c @@ -1,4 +1,4 @@ -/* { dg-options "-fno-common isa_rev<=5 -mabi=64" } */ +/* { dg-options "-fno-common isa_rev<=5 -mabi=64 (REQUIRES_STDLIB)" } */ /* { dg-skip-if "code quality test" { *-*-* } { "-O0" "-Os"} { "" } } */ /* { dg-final { scan-assembler-not "\tmemcpy" } } */ /* { dg-final { scan-assembler-times "sdl" 4 } } */ diff --git a/gcc/testsuite/gcc.target/mips/inline-memcpy-5.c b/gcc/testsuite/gcc.target/mips/inline-memcpy-5.c index 1b9fa16..55ee38a 100644 --- a/gcc/testsuite/gcc.target/mips/inline-memcpy-5.c +++ b/gcc/testsuite/gcc.target/mips/inline-memcpy-5.c @@ -1,4 +1,4 @@ -/* { dg-options "-fno-common isa_rev<=5 -mabi=n32" } */ +/* { dg-options "-fno-common isa_rev<=5 -mabi=n32 (REQUIRES_STDLIB)" } */ /* { dg-skip-if "code quality test" { *-*-* } { "-O0" "-Os"} { "" } } */ /* { dg-final { scan-assembler-not "\tmemcpy" } } */ /* { dg-final { scan-assembler-times "sdl" 4 } } */ diff --git a/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c b/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c index f57a18c..baed48c 100644 --- a/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c +++ b/gcc/testsuite/gcc.target/mips/loongson-shift-count-truncated-1.c @@ -4,7 +4,7 @@ /* loongson.h does not handle or check for MIPS16ness. There doesn't seem any good reason for it to, given that the Loongson processors do not support MIPS16. */ -/* { dg-options "isa=loongson -mhard-float -mno-mips16" } */ +/* { dg-options "isa=loongson -mhard-float -mno-mips16 (REQUIRES_STDLIB)" } */ /* See PR 52155. */ /* { dg-options "isa=loongson -mhard-float -mno-mips16 -mlong64" { mips*-*-elf* && ilp32 } } */ diff --git a/gcc/testsuite/gcc.target/mips/loongson-simd.c b/gcc/testsuite/gcc.target/mips/loongson-simd.c index 6d2ceb6..f263b43 100644 --- a/gcc/testsuite/gcc.target/mips/loongson-simd.c +++ b/gcc/testsuite/gcc.target/mips/loongson-simd.c @@ -26,7 +26,7 @@ along with GCC; see the file COPYING3. If not see because inclusion of some system headers e.g. stdint.h will fail due to not finding stubs-o32_hard.h. */ /* { dg-require-effective-target mips_nanlegacy } */ -/* { dg-options "isa=loongson -mhard-float -mno-micromips -mno-mips16 -flax-vector-conversions" } */ +/* { dg-options "isa=loongson -mhard-float -mno-micromips -mno-mips16 -flax-vector-conversions (REQUIRES_STDLIB)" } */ #include "loongson.h" #include diff --git a/gcc/testsuite/gcc.target/mips/memcpy-1.c b/gcc/testsuite/gcc.target/mips/memcpy-1.c index 94786a7..bd8519f 100644 --- a/gcc/testsuite/gcc.target/mips/memcpy-1.c +++ b/gcc/testsuite/gcc.target/mips/memcpy-1.c @@ -1,4 +1,4 @@ -/* { dg-options "-fno-common" } */ +/* { dg-options "-fno-common (REQUIRES_STDLIB)" } */ /* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* { dg-final { scan-assembler-not "\tlbu\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-1.c b/gcc/testsuite/gcc.target/mips/mips-3d-1.c index 9c67513..cb827ad 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-1.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-1.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-mips3d forbid_cpu=octeon.*" } */ +/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */ /* Test MIPS-3D builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-2.c b/gcc/testsuite/gcc.target/mips/mips-3d-2.c index 4da059f..52ec3a5 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-2.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-2.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-mips3d forbid_cpu=octeon.*" } */ +/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */ /* Test MIPS-3D branch-if-any-two builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-3.c b/gcc/testsuite/gcc.target/mips/mips-3d-3.c index fcdcf24..cfb9ea8 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-3.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-3.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-mips3d forbid_cpu=octeon.*" } */ +/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */ /* Test MIPS-3D absolute compare builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-4.c b/gcc/testsuite/gcc.target/mips/mips-3d-4.c index 340921c..ca4923c 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-4.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-4.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-mips3d forbid_cpu=octeon.*" } */ +/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */ /* Test MIPS-3D branch-if-any-four builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-5.c b/gcc/testsuite/gcc.target/mips/mips-3d-5.c index e7dbfeb..86523d2 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-5.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-5.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-mips3d forbid_cpu=octeon.*" } */ +/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */ /* Test MIPS-3D absolute-compare & branch-if-any-four builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-6.c b/gcc/testsuite/gcc.target/mips/mips-3d-6.c index d75faa1..8e8fbb6 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-6.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-6.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-mips3d forbid_cpu=octeon.*" } */ +/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */ /* Test MIPS-3D absolute compare (floats) builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-7.c b/gcc/testsuite/gcc.target/mips/mips-3d-7.c index 8e69d49..20f0199 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-7.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-7.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-mips3d forbid_cpu=octeon.*" } */ +/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */ /* Test MIPS-3D absolute compare (doubles) builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-8.c b/gcc/testsuite/gcc.target/mips/mips-3d-8.c index 0ad8c48..c59f547 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-8.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-8.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-mips3d forbid_cpu=octeon.*" } */ +/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */ /* Test MIPS-3D absolute compare and conditional move builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-3d-9.c b/gcc/testsuite/gcc.target/mips/mips-3d-9.c index 0c30252..2815841 100644 --- a/gcc/testsuite/gcc.target/mips/mips-3d-9.c +++ b/gcc/testsuite/gcc.target/mips/mips-3d-9.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-mips3d forbid_cpu=octeon.*" } */ +/* { dg-options "-mips3d forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */ /* Matrix Multiplications */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-1.c b/gcc/testsuite/gcc.target/mips/mips-ps-1.c index 980dd05..56ba68c 100644 --- a/gcc/testsuite/gcc.target/mips/mips-ps-1.c +++ b/gcc/testsuite/gcc.target/mips/mips-ps-1.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-mpaired-single forbid_cpu=octeon.*" } */ +/* { dg-options "-mpaired-single forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */ /* Test v2sf calculations */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-2.c b/gcc/testsuite/gcc.target/mips/mips-ps-2.c index 654aa06..e0ff4d1 100644 --- a/gcc/testsuite/gcc.target/mips/mips-ps-2.c +++ b/gcc/testsuite/gcc.target/mips/mips-ps-2.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-mpaired-single forbid_cpu=octeon.*" } */ +/* { dg-options "-mpaired-single forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */ /* Test MIPS paired-single builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-3.c b/gcc/testsuite/gcc.target/mips/mips-ps-3.c index fc892a8..a16bd4b 100644 --- a/gcc/testsuite/gcc.target/mips/mips-ps-3.c +++ b/gcc/testsuite/gcc.target/mips/mips-ps-3.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-mpaired-single forbid_cpu=octeon.*" } */ +/* { dg-options "-mpaired-single forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */ /* Test MIPS paired-single conditional move */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-4.c b/gcc/testsuite/gcc.target/mips/mips-ps-4.c index 7871e56..893358d 100644 --- a/gcc/testsuite/gcc.target/mips/mips-ps-4.c +++ b/gcc/testsuite/gcc.target/mips/mips-ps-4.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-mpaired-single forbid_cpu=octeon.*" } */ +/* { dg-options "-mpaired-single forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */ /* Test MIPS paired-single comparisons */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips-ps-6.c b/gcc/testsuite/gcc.target/mips/mips-ps-6.c index 42c1756..8aa704d 100644 --- a/gcc/testsuite/gcc.target/mips/mips-ps-6.c +++ b/gcc/testsuite/gcc.target/mips/mips-ps-6.c @@ -1,7 +1,7 @@ /* mips-ps-2.c with an extra -ffinite-math-only option. This option changes the way that abs.ps is handled. */ /* { dg-do run } */ -/* { dg-options "-mpaired-single -ffinite-math-only forbid_cpu=octeon.*" } */ +/* { dg-options "-mpaired-single -ffinite-math-only forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */ /* Test MIPS paired-single builtin functions */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips.exp b/gcc/testsuite/gcc.target/mips/mips.exp index 97b2aea..c0b9680 100644 --- a/gcc/testsuite/gcc.target/mips/mips.exp +++ b/gcc/testsuite/gcc.target/mips/mips.exp @@ -261,6 +261,7 @@ set mips_option_groups { section_start "-Wl,--section-start=.*" frame-header "-mframe-header-opt|-mno-frame-header-opt" stack-protector "-fstack-protector" + stdlib "REQUIRES_STDLIB" } for { set option 0 } { $option < 32 } { incr option } { @@ -447,14 +448,19 @@ proc mips_same_option_p { option1 option2 } { # Preprocess CODE using target_compile options OPTIONS. Return the # compiler output. -proc mips_preprocess { options code } { +proc mips_preprocess { options code ignore_output } { global tool set src dummy[pid].c set f [open $src "w"] puts $f $code close $f - set output [${tool}_target_compile $src "" preprocess $options] + if { $ignore_output } { + set output [${tool}_target_compile $src dummy[pid].i preprocess $options] + file delete dummy[pid].i + } else { + set output [${tool}_target_compile $src "" preprocess $options] + } file delete $src return $output @@ -504,7 +510,7 @@ proc mips_arch_info { arch prop } { #else int isa_rev = 0; #endif - }] + } 0] foreach lhs { isa isa_rev } { regsub ".*$lhs = (\[^;\]*).*" $output {\1} rhs verbose -log "Architecture $arch has $lhs $rhs" @@ -863,7 +869,7 @@ proc mips-dg-init {} { 0 }; - }] + } 0] foreach line [split $output "\r\n"] { # Poor man's string concatenation. regsub -all {" "} $line "" line @@ -1454,6 +1460,28 @@ proc mips-dg-options { args } { } } + # If the test is marked as requiring standard libraries check + # that the sysroot has support for the current set of test options. + if { [mips_have_test_option_p options "REQUIRES_STDLIB"] } { + mips_push_test_options saved_options $extra_tool_flags + set output [mips_preprocess "" { + #include + } 1] + mips_pop_test_options saved_options + + # If the preprocessing of the stdlib.h file produced errors, + # mark the test as unsupported by changing the second element of + # do_what to "N". + # The second element of do_what holds information about test selection + # and it can have one of two values: + # "S" - the test is selected and will be run + # "N" - the test is not selected and will not be run + # This mirrors the format of dg-do-what from lib/dg.exp in DejaGNU. + if { ![string equal $output ""] } { + set do_what [lreplace $do_what 1 1 "N"] + } + } + # If the test is MIPS16-compatible, provide a counterpart to the # NOMIPS16 convenience macro. if { [mips_have_test_option_p options "-mips16"] } { diff --git a/gcc/testsuite/gcc.target/mips/mips16-attributes.c b/gcc/testsuite/gcc.target/mips/mips16-attributes.c index d90ec66..e1497c0 100644 --- a/gcc/testsuite/gcc.target/mips/mips16-attributes.c +++ b/gcc/testsuite/gcc.target/mips/mips16-attributes.c @@ -2,7 +2,7 @@ of calling a nomips16/mips16/default function from a nomips16/mips16/default function. */ /* { dg-do run } */ -/* { dg-options "(-mips16)" } */ +/* { dg-options "(-mips16) (REQUIRES_STDLIB)" } */ /* { dg-skip-if "" { *-*-* } { "-mmicromips" } { "" } } */ #include diff --git a/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c b/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c index ccd9d38..ca12d04 100644 --- a/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c +++ b/gcc/testsuite/gcc.target/mips/mips32-dsp-run.c @@ -1,6 +1,6 @@ /* Test MIPS32 DSP instructions */ /* { dg-do run } */ -/* { dg-options "-mdsp" } */ +/* { dg-options "-mdsp (REQUIRES_STDLIB)" } */ #include #include diff --git a/gcc/testsuite/gcc.target/mips/mips32-dsp.c b/gcc/testsuite/gcc.target/mips/mips32-dsp.c index 9aaf120..d212bcf 100644 --- a/gcc/testsuite/gcc.target/mips/mips32-dsp.c +++ b/gcc/testsuite/gcc.target/mips/mips32-dsp.c @@ -1,6 +1,6 @@ /* Test MIPS32 DSP instructions */ /* { dg-do compile } */ -/* { dg-options "-mgp32 -mdsp" } */ +/* { dg-options "-mgp32 -mdsp (REQUIRES_STDLIB)" } */ /* { dg-final { scan-assembler "\taddq.ph\t" } } */ /* { dg-final { scan-assembler "\taddq_s.ph\t" } } */ /* { dg-final { scan-assembler "\taddq_s.w\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/save-restore-1.c b/gcc/testsuite/gcc.target/mips/save-restore-1.c index b3ce1b1..5e1e838 100644 --- a/gcc/testsuite/gcc.target/mips/save-restore-1.c +++ b/gcc/testsuite/gcc.target/mips/save-restore-1.c @@ -1,5 +1,5 @@ /* Check that we can use the save instruction to save varargs. */ -/* { dg-options "(-mips16) isa_rev>=1 -mabi=32" } */ +/* { dg-options "(-mips16) isa_rev>=1 -mabi=32 (REQUIRES_STDLIB)" } */ #include