From patchwork Thu Feb 10 13:55:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 51006 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 0C9A83858436 for ; Thu, 10 Feb 2022 13:58:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0C9A83858436 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1644501508; bh=lS/HXdZGEKjYekx5n+1CMP2xn9ErjSriQhjE3O8HRtA=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=NsbePyNsRJle/3FAsPhrj0D5ppO2RI4IG9IIlF0fKRS0Yvv60CAW6XQJWkpKNGAuH y9gpANU1D4FeqyBZfIOiwygApVZ4viC/WZ4lklUT2E/IDvDlsMFg1OJ3m6tPYJfmQz S6GbksAhf8ADjZ8AZdySriDGa8YqVcjhARsJKRoY= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) by sourceware.org (Postfix) with ESMTPS id D9E2A385840E for ; Thu, 10 Feb 2022 13:55:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D9E2A385840E Received: by mail-pl1-x62b.google.com with SMTP id c3so1888355pls.5 for ; Thu, 10 Feb 2022 05:55:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=lS/HXdZGEKjYekx5n+1CMP2xn9ErjSriQhjE3O8HRtA=; b=adkm6P0KH3jkI9OIrcsRoW1SFwM/Q4LsqxJYrJ4Nhm4kefuOjARk8zJC7RTCEDneLR HV+T9V9NP+V+WMk2R/cdpdYf87N+RjJ4e9ivXirzpYSriE8VkHAdEUN7sdWngDY71px9 5Ft8BfW7NMSciLgYMpr74gY8OrxblbrFbo6PxE2RTtvLRVv3F9SuQdw2sLFj/l/F261B Y0qPr9jwd2OFanzlnAvOZL2KuiJGoJX3Uyn+RgYM4VmgdNnoMwLuBMmvx7imuMZsxge9 F692+MWBIsm8zk+tywFXsHk0K+D23l2hX3hOqZW+rtzCyDJjOKJHz51HLXrYH8oez+da zCyQ== X-Gm-Message-State: AOAM533V30FY7bechUpEAVJXO9ywd8G+lojR3WUuyubCKEOmxHV5OMqV Nbtf3OFQrxoje8gQJT3Foz6APaN4VYs= X-Google-Smtp-Source: ABdhPJzQAOj7JcVS2skdfNzbp9FuUmcgGRa8WB6JMKT+AL59pFtKDlyBnb/DUZMjTXt2EthQ/0auCA== X-Received: by 2002:a17:903:228c:: with SMTP id b12mr7895843plh.39.1644501316553; Thu, 10 Feb 2022 05:55:16 -0800 (PST) Received: from gnu-tgl-2.localdomain ([172.58.38.240]) by smtp.gmail.com with ESMTPSA id n22sm24423051pfu.77.2022.02.10.05.55.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Feb 2022 05:55:16 -0800 (PST) Received: from gnu-tgl-2.. (localhost [IPv6:::1]) by gnu-tgl-2.localdomain (Postfix) with ESMTP id 4F92930032A; Thu, 10 Feb 2022 05:55:15 -0800 (PST) To: gcc-patches@gcc.gnu.org Subject: [PATCH] x86: Update PR 35513 tests Date: Thu, 10 Feb 2022 05:55:15 -0800 Message-Id: <20220210135515.162048-1-hjl.tools@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-3029.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-Patchwork-Original-From: "H.J. Lu via Gcc-patches" From: "H.J. Lu" Reply-To: "H.J. Lu" Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" 1. Require linker with GNU_PROPERTY_1_NEEDED support for PR 35513 run-time tests. 2. Compile pr35513-8.c to scan assembly code. PR testsuite/104481 * g++.target/i386/pr35513-1.C: Require property_1_needed target. * g++.target/i386/pr35513-2.C: Likewise. * gcc.target/i386/pr35513-8.c: Change to compile. * lib/target-supports.exp (check_compile): Support assembly code. (check_effective_target_property_1_needed): New proc. --- gcc/testsuite/g++.target/i386/pr35513-1.C | 2 +- gcc/testsuite/g++.target/i386/pr35513-2.C | 2 +- gcc/testsuite/gcc.target/i386/pr35513-8.c | 2 +- gcc/testsuite/lib/target-supports.exp | 37 +++++++++++++++++++++++ 4 files changed, 40 insertions(+), 3 deletions(-) diff --git a/gcc/testsuite/g++.target/i386/pr35513-1.C b/gcc/testsuite/g++.target/i386/pr35513-1.C index 6f8db37fb7c..daa615662c5 100644 --- a/gcc/testsuite/g++.target/i386/pr35513-1.C +++ b/gcc/testsuite/g++.target/i386/pr35513-1.C @@ -1,4 +1,4 @@ -// { dg-do run } +// { dg-do run { target property_1_needed } } // { dg-options "-O2 -mno-direct-extern-access" } #include diff --git a/gcc/testsuite/g++.target/i386/pr35513-2.C b/gcc/testsuite/g++.target/i386/pr35513-2.C index 9143ff3f0a5..ecccdaeb666 100644 --- a/gcc/testsuite/g++.target/i386/pr35513-2.C +++ b/gcc/testsuite/g++.target/i386/pr35513-2.C @@ -1,4 +1,4 @@ -// { dg-do run } +// { dg-do run { target property_1_needed } } // { dg-options "-O2 -mno-direct-extern-access" } class Foo diff --git a/gcc/testsuite/gcc.target/i386/pr35513-8.c b/gcc/testsuite/gcc.target/i386/pr35513-8.c index 7ba67de2156..d51f7efb353 100644 --- a/gcc/testsuite/gcc.target/i386/pr35513-8.c +++ b/gcc/testsuite/gcc.target/i386/pr35513-8.c @@ -1,4 +1,4 @@ -/* { dg-do assemble { target { *-*-linux* && { ! ia32 } } } } */ +/* { dg-do compile { target { *-*-linux* && { ! ia32 } } } } */ /* { dg-require-effective-target maybe_x32 } */ /* { dg-options "-mx32 -O2 -fno-pic -fexceptions -fasynchronous-unwind-tables -mno-direct-extern-access" } */ diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 4463cc8d7ed..0d8a7df5026 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -30,6 +30,7 @@ # # Assume by default that CONTENTS is C code. # Otherwise, code should contain: +# "/* Assembly" for assembly code, # "// C++" for c++, # "// D" for D, # "! Fortran" for Fortran code, @@ -57,6 +58,7 @@ proc check_compile {basename type contents args} { set options "" } switch -glob -- $contents { + "*/* Assembly*" { set src ${basename}[pid].S } "*! Fortran*" { set src ${basename}[pid].f90 } "*// C++*" { set src ${basename}[pid].cc } "*// D*" { set src ${basename}[pid].d } @@ -11758,3 +11760,38 @@ proc check_effective_target_pytest3 { } { return 0; } } + +proc check_effective_target_property_1_needed { } { + return [check_no_compiler_messages_nocache property_1_needed executable { +/* Assembly code */ +#ifdef __LP64__ +# define __PROPERTY_ALIGN 3 +#else +# define __PROPERTY_ALIGN 2 +#endif + + .section ".note.gnu.property", "a" + .p2align __PROPERTY_ALIGN + .long 1f - 0f /* name length. */ + .long 4f - 1f /* data length. */ + /* NT_GNU_PROPERTY_TYPE_0. */ + .long 5 /* note type. */ +0: + .asciz "GNU" /* vendor name. */ +1: + .p2align __PROPERTY_ALIGN + /* GNU_PROPERTY_1_NEEDED. */ + .long 0xb0008000 /* pr_type. */ + .long 3f - 2f /* pr_datasz. */ +2: + /* GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS. */ + .long 1 +3: + .p2align __PROPERTY_ALIGN +4: + .text + .globl main +main: + .byte 0 + } ""] +}