On Fri, Feb 11, 2022 at 9:43 PM Hongtao Liu <crazy...@gmail.com> wrote: > > On Thu, Feb 10, 2022 at 9:58 PM H.J. Lu via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: > > > > 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. > This is for testcase fixup, and i think it should be ok.
I am checking it in. Thanks. > > --- > > 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 <iostream> > > 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 > > + } ""] > > +} > > -- > > 2.34.1 > > > > > -- > BR, > Hongtao -- H.J.