Push to trunk since the CI is green :)
On Tue, Apr 1, 2025 at 3:43 PM Kito Cheng <kito.ch...@sifive.com> wrote: > > Linux toolchain may configured with --enable-default-pie, and that will > cause lots of regression test failures because the function name will > append with @plt suffix (e.g. `call foo` become `call foo@plt`), also > some code generation will different due to the code model like the address > generation for global variable, so we may add -fno-pie to those > testcases to prevent that. > > We may consider just drop @plt suffix to prevent that at all, because > it's not difference between w/ and w/o @plt suffix, the linker will pick > the right one to do, however it's late stage of GCC development, so just > tweak the testcase should be the best way to do now. > > Changes from v1: > - Add more testcase for PIE (from rvv.exp). > - Tweak the rule for match @plt. > > gcc/testsuite/ChangeLog: > > * gcc.target/riscv/rv32i_zcmp.c: Tweak testcase for PIE. > * gcc.target/riscv/rv32e_zcmp.c: Likewise. > * gcc.target/riscv/zcmp_stack_alignment.c: Likewise. > * gcc.target/riscv/cm_mv_rv32.c: Likewise. > * gcc.target/riscv/cpymem-64.c: Likewise. > * gcc.target/riscv/fmax-snan.c: Likewise. > * gcc.target/riscv/fmaxf-snan.c: Likewise. > * gcc.target/riscv/fmin-snan.c: Likewise. > * gcc.target/riscv/fminf-snan.c: Likewise. > * gcc.target/riscv/large-model.c: Likewise. > * gcc.target/riscv/predef-1.c: Likewise. > * gcc.target/riscv/predef-4.c: Likewise. > * gcc.target/riscv/predef-7.c: Likewise. > * gcc.target/riscv/predef-9.c: Likewise. > * gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c: > Likewise. > * gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c: Likewise. > * gcc.target/riscv/rvv/base/abi-callee-saved-2.c: Likewise. > * gcc.target/riscv/rvv/base/cmpmem-1.c: Likewise. > * gcc.target/riscv/rvv/base/cmpmem-3.c: Likewise. > * gcc.target/riscv/rvv/base/cmpmem-4.c: Likewise. > * gcc.target/riscv/rvv/base/cpymem-1.c: Likewise. > * gcc.target/riscv/rvv/base/movmem-1.c: Likewise. > * gcc.target/riscv/rvv/base/pr114352-3.c: Likewise. > * gcc.target/riscv/rvv/base/setmem-1.c: Likewise. > * gcc.target/riscv/rvv/base/setmem-2.c: Likewise. > * gcc.target/riscv/rvv/base/setmem-3.c: Likewise. > * gcc.target/riscv/rvv/base/spill-9.c: Likewise. > * g++.target/riscv/mv-symbols1.C: Likewise. > * g++.target/riscv/mv-symbols3.C: Likewise. > * g++.target/riscv/mv-symbols4.C: Likewise. > * g++.target/riscv/mv-symbols5.C: Likewise. > * g++.target/riscv/mvc-symbols1.C: Likewise. > * g++.target/riscv/mvc-symbols3.C: Likewise. > --- > gcc/testsuite/g++.target/riscv/mv-symbols1.C | 4 ++-- > gcc/testsuite/g++.target/riscv/mv-symbols3.C | 4 ++-- > gcc/testsuite/g++.target/riscv/mv-symbols4.C | 4 ++-- > gcc/testsuite/g++.target/riscv/mv-symbols5.C | 4 ++-- > gcc/testsuite/g++.target/riscv/mvc-symbols1.C | 4 ++-- > gcc/testsuite/g++.target/riscv/mvc-symbols3.C | 4 ++-- > gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c | 4 ++-- > gcc/testsuite/gcc.target/riscv/cpymem-64.c | 4 ++-- > gcc/testsuite/gcc.target/riscv/fmax-snan.c | 2 +- > gcc/testsuite/gcc.target/riscv/fmaxf-snan.c | 2 +- > gcc/testsuite/gcc.target/riscv/fmin-snan.c | 2 +- > gcc/testsuite/gcc.target/riscv/fminf-snan.c | 2 +- > gcc/testsuite/gcc.target/riscv/large-model.c | 2 +- > gcc/testsuite/gcc.target/riscv/predef-1.c | 2 +- > gcc/testsuite/gcc.target/riscv/predef-4.c | 2 +- > gcc/testsuite/gcc.target/riscv/predef-7.c | 2 +- > gcc/testsuite/gcc.target/riscv/predef-9.c | 2 +- > gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c | 6 +++--- > gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c | 6 +++--- > .../riscv/rvv/base/abi-callee-saved-2-save-restore.c | 6 +++--- > .../gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c | 6 +++--- > .../gcc.target/riscv/rvv/base/abi-callee-saved-2.c | 6 +++--- > gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-1.c | 4 ++-- > gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-3.c | 4 ++-- > gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-4.c | 4 ++-- > gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-1.c | 4 ++-- > gcc/testsuite/gcc.target/riscv/rvv/base/movmem-1.c | 2 +- > gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-3.c | 4 ++-- > gcc/testsuite/gcc.target/riscv/rvv/base/setmem-1.c | 2 +- > gcc/testsuite/gcc.target/riscv/rvv/base/setmem-2.c | 2 +- > gcc/testsuite/gcc.target/riscv/rvv/base/setmem-3.c | 2 +- > gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c | 2 +- > gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c | 2 +- > 33 files changed, 56 insertions(+), 56 deletions(-) > > diff --git a/gcc/testsuite/g++.target/riscv/mv-symbols1.C > b/gcc/testsuite/g++.target/riscv/mv-symbols1.C > index ea1a536fd00..e18c984cf51 100644 > --- a/gcc/testsuite/g++.target/riscv/mv-symbols1.C > +++ b/gcc/testsuite/g++.target/riscv/mv-symbols1.C > @@ -57,7 +57,7 @@ int bar(int x) > /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ > -/* { dg-final { scan-assembler-times "\n\t\call\t_Z3foov\n" 1 } } */ > +/* { dg-final { scan-assembler-times "\n\t\call\t_Z3foov(?:@plt)?\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, > @gnu_indirect_function\n" 1 } } */ > /* { dg-final { scan-assembler-times > "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ > > @@ -65,6 +65,6 @@ int bar(int x) > /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ > -/* { dg-final { scan-assembler-times "\n\t\call\t_Z3fooi\n" 1 } } */ > +/* { dg-final { scan-assembler-times "\n\t\call\t_Z3fooi(?:@plt)?\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, > @gnu_indirect_function\n" 1 } } */ > /* { dg-final { scan-assembler-times > "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ > diff --git a/gcc/testsuite/g++.target/riscv/mv-symbols3.C > b/gcc/testsuite/g++.target/riscv/mv-symbols3.C > index 4dc81cf7395..6596a277f6a 100644 > --- a/gcc/testsuite/g++.target/riscv/mv-symbols3.C > +++ b/gcc/testsuite/g++.target/riscv/mv-symbols3.C > @@ -37,7 +37,7 @@ int bar() > /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ > -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */ > +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov(?:@plt)?\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, > @gnu_indirect_function\n" 1 } } */ > /* { dg-final { scan-assembler-times > "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ > > @@ -45,6 +45,6 @@ int bar() > /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ > -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 0 } } */ > +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi(?:@plt)?\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, > @gnu_indirect_function\n" 0 } } */ > /* { dg-final { scan-assembler-times > "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 0 } } */ > diff --git a/gcc/testsuite/g++.target/riscv/mv-symbols4.C > b/gcc/testsuite/g++.target/riscv/mv-symbols4.C > index b0ed16a5eda..83d51e33706 100644 > --- a/gcc/testsuite/g++.target/riscv/mv-symbols4.C > +++ b/gcc/testsuite/g++.target/riscv/mv-symbols4.C > @@ -43,7 +43,7 @@ int bar() > /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ > -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */ > +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov(?:@plt)?\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, > @gnu_indirect_function\n" 1 } } */ > /* { dg-final { scan-assembler-times > "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ > > @@ -51,6 +51,6 @@ int bar() > /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ > -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 0 } } */ > +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi(?:@plt)?\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, > @gnu_indirect_function\n" 0 } } */ > /* { dg-final { scan-assembler-times > "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 0 } } */ > diff --git a/gcc/testsuite/g++.target/riscv/mv-symbols5.C > b/gcc/testsuite/g++.target/riscv/mv-symbols5.C > index f4c6b294e0f..c92421ab0fb 100644 > --- a/gcc/testsuite/g++.target/riscv/mv-symbols5.C > +++ b/gcc/testsuite/g++.target/riscv/mv-symbols5.C > @@ -49,7 +49,7 @@ int bar() > /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ > -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */ > +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov(?:@plt)?\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, > @gnu_indirect_function\n" 1 } } */ > /* { dg-final { scan-assembler-times > "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ > > @@ -57,6 +57,6 @@ int bar() > /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ > -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 0 } } */ > +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi(?:@plt)?\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, > @gnu_indirect_function\n" 0 } } */ > /* { dg-final { scan-assembler-times > "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 0 } } */ > diff --git a/gcc/testsuite/g++.target/riscv/mvc-symbols1.C > b/gcc/testsuite/g++.target/riscv/mvc-symbols1.C > index c78bc7cb64a..bd65a2c8249 100644 > --- a/gcc/testsuite/g++.target/riscv/mvc-symbols1.C > +++ b/gcc/testsuite/g++.target/riscv/mvc-symbols1.C > @@ -36,7 +36,7 @@ int bar(int x) > /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ > -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */ > +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov(?:@plt)?\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, > @gnu_indirect_function\n" 1 } } */ > /* { dg-final { scan-assembler-times > "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ > > @@ -44,6 +44,6 @@ int bar(int x) > /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ > -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 1 } } */ > +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi(?:@plt)?\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, > @gnu_indirect_function\n" 1 } } */ > /* { dg-final { scan-assembler-times > "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ > diff --git a/gcc/testsuite/g++.target/riscv/mvc-symbols3.C > b/gcc/testsuite/g++.target/riscv/mvc-symbols3.C > index b36c3fa7a95..78f027b0457 100644 > --- a/gcc/testsuite/g++.target/riscv/mvc-symbols3.C > +++ b/gcc/testsuite/g++.target/riscv/mvc-symbols3.C > @@ -29,7 +29,7 @@ int bar(int x) > /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ > -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */ > +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov(?:@plt)?\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, > @gnu_indirect_function\n" 1 } } */ > /* { dg-final { scan-assembler-times > "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ > > @@ -37,6 +37,6 @@ int bar(int x) > /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 0 } } */ > /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ > -/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 1 } } */ > +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi(?:@plt)?\n" 1 } } */ > /* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, > @gnu_indirect_function\n" 1 } } */ > /* { dg-final { scan-assembler-times > "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c > b/gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c > index e2369fc4d2d..326d5dc5d66 100644 > --- a/gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c > +++ b/gcc/testsuite/gcc.target/riscv/cm_mv_rv32.c > @@ -10,10 +10,10 @@ func (int a, int b); > **sum: > ** ... > ** cm.mvsa01 s1,s2 > -** call func > +** call func(?:@plt)? > ** mv s0,a0 > ** cm.mva01s s1,s2 > -** call func > +** call func(?:@plt)? > ** ... > */ > int > diff --git a/gcc/testsuite/gcc.target/riscv/cpymem-64.c > b/gcc/testsuite/gcc.target/riscv/cpymem-64.c > index 37b8ef0e020..c91b0154a29 100644 > --- a/gcc/testsuite/gcc.target/riscv/cpymem-64.c > +++ b/gcc/testsuite/gcc.target/riscv/cpymem-64.c > @@ -95,7 +95,7 @@ COPY_ALIGNED_N(11) > /* > **copy_15: > ** ... > -** (call|tail)\tmemcpy > +** (call|tail)\tmemcpy(?:@plt)? > ** ... > */ > COPY_N(15) > @@ -116,7 +116,7 @@ COPY_ALIGNED_N(15) > /* > **copy_27: > ** ... > -** (call|tail)\tmemcpy > +** (call|tail)\tmemcpy(?:@plt)? > ** ... > */ > COPY_N(27) > diff --git a/gcc/testsuite/gcc.target/riscv/fmax-snan.c > b/gcc/testsuite/gcc.target/riscv/fmax-snan.c > index aabaad5c973..a1f61495783 100644 > --- a/gcc/testsuite/gcc.target/riscv/fmax-snan.c > +++ b/gcc/testsuite/gcc.target/riscv/fmax-snan.c > @@ -10,4 +10,4 @@ fmax (double x, double y) > > /* { dg-final { scan-assembler-not "\tfmax\\.d\t" } } */ > /* { dg-final { scan-assembler-not "\tfge\\.d\t" } } */ > -/* { dg-final { scan-assembler "\t(call|tail)\tfmax\t" } } */ > +/* { dg-final { scan-assembler "\t(call|tail)\tfmax(?:@plt)?\t" } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/fmaxf-snan.c > b/gcc/testsuite/gcc.target/riscv/fmaxf-snan.c > index f74a8171882..1daf3e9e0aa 100644 > --- a/gcc/testsuite/gcc.target/riscv/fmaxf-snan.c > +++ b/gcc/testsuite/gcc.target/riscv/fmaxf-snan.c > @@ -10,4 +10,4 @@ fmaxf (float x, float y) > > /* { dg-final { scan-assembler-not "\tfmax\\.s\t" } } */ > /* { dg-final { scan-assembler-not "\tfge\\.s\t" } } */ > -/* { dg-final { scan-assembler "\t(call|tail)\tfmaxf\t" } } */ > +/* { dg-final { scan-assembler "\t(call|tail)\tfmaxf(?:@plt)?\t" } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/fmin-snan.c > b/gcc/testsuite/gcc.target/riscv/fmin-snan.c > index 3b2e8c3aa66..cc0e16cc201 100644 > --- a/gcc/testsuite/gcc.target/riscv/fmin-snan.c > +++ b/gcc/testsuite/gcc.target/riscv/fmin-snan.c > @@ -10,4 +10,4 @@ fmin (double x, double y) > > /* { dg-final { scan-assembler-not "\tfmin\\.d\t" } } */ > /* { dg-final { scan-assembler-not "\tfle\\.d\t" } } */ > -/* { dg-final { scan-assembler "\t(call|tail)\tfmin\t" } } */ > +/* { dg-final { scan-assembler "\t(call|tail)\tfmin(?:@plt)?\t" } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/fminf-snan.c > b/gcc/testsuite/gcc.target/riscv/fminf-snan.c > index d28822e5eca..598644e9b00 100644 > --- a/gcc/testsuite/gcc.target/riscv/fminf-snan.c > +++ b/gcc/testsuite/gcc.target/riscv/fminf-snan.c > @@ -10,4 +10,4 @@ fminf (float x, float y) > > /* { dg-final { scan-assembler-not "\tfmin\\.s\t" } } */ > /* { dg-final { scan-assembler-not "\tfle\\.s\t" } } */ > -/* { dg-final { scan-assembler "\t(call|tail)\tfminf\t" } } */ > +/* { dg-final { scan-assembler "\t(call|tail)\tfminf(?:@plt)?\t" } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/large-model.c > b/gcc/testsuite/gcc.target/riscv/large-model.c > index 244d14e1878..d5ef7a0d0b9 100644 > --- a/gcc/testsuite/gcc.target/riscv/large-model.c > +++ b/gcc/testsuite/gcc.target/riscv/large-model.c > @@ -1,5 +1,5 @@ > /* { dg-do compile } */ > -/* { dg-options "-march=rv64gc -mabi=lp64 -fno-section-anchors > -mcmodel=large" } */ > +/* { dg-options "-march=rv64gc -mabi=lp64 -fno-section-anchors > -mcmodel=large -fno-pie" } */ > /* { dg-skip-if "" { *-*-* } {"-O0"} } */ > int a, b; > int foo1() > diff --git a/gcc/testsuite/gcc.target/riscv/predef-1.c > b/gcc/testsuite/gcc.target/riscv/predef-1.c > index 250812a1040..551346e1fd3 100644 > --- a/gcc/testsuite/gcc.target/riscv/predef-1.c > +++ b/gcc/testsuite/gcc.target/riscv/predef-1.c > @@ -1,5 +1,5 @@ > /* { dg-do compile } */ > -/* { dg-options "-march=rv32i -mabi=ilp32 -mcmodel=medlow" } */ > +/* { dg-options "-march=rv32i -mabi=ilp32 -mcmodel=medlow -fno-pie" } */ > > int main () { > #if !defined(__riscv) > diff --git a/gcc/testsuite/gcc.target/riscv/predef-4.c > b/gcc/testsuite/gcc.target/riscv/predef-4.c > index ba8b5c785a9..7b3c05477d8 100644 > --- a/gcc/testsuite/gcc.target/riscv/predef-4.c > +++ b/gcc/testsuite/gcc.target/riscv/predef-4.c > @@ -1,5 +1,5 @@ > /* { dg-do compile } */ > -/* { dg-options "-march=rv64ia -mabi=lp64 -mcmodel=medlow" } */ > +/* { dg-options "-march=rv64ia -mabi=lp64 -mcmodel=medlow -fno-pie" } */ > > int main () { > #if !defined(__riscv) > diff --git a/gcc/testsuite/gcc.target/riscv/predef-7.c > b/gcc/testsuite/gcc.target/riscv/predef-7.c > index 833e2be887d..36caf8eb49d 100644 > --- a/gcc/testsuite/gcc.target/riscv/predef-7.c > +++ b/gcc/testsuite/gcc.target/riscv/predef-7.c > @@ -1,5 +1,5 @@ > /* { dg-do compile } */ > -/* { dg-options "-march=rv32em -mabi=ilp32e -mno-div -mcmodel=medlow" } */ > +/* { dg-options "-march=rv32em -mabi=ilp32e -mno-div -mcmodel=medlow > -fno-pie" } */ > > int main () { > #if !defined(__riscv) > diff --git a/gcc/testsuite/gcc.target/riscv/predef-9.c > b/gcc/testsuite/gcc.target/riscv/predef-9.c > index b173d5df57f..fa072ad9b79 100644 > --- a/gcc/testsuite/gcc.target/riscv/predef-9.c > +++ b/gcc/testsuite/gcc.target/riscv/predef-9.c > @@ -1,5 +1,5 @@ > /* { dg-do compile } */ > -/* { dg-options "-march=rv64em -mabi=lp64e -mno-div -mcmodel=medlow" } */ > +/* { dg-options "-march=rv64em -mabi=lp64e -mno-div -mcmodel=medlow > -fno-pie" } */ > /* { dg-warning "LP64E ABI is marked for deprecation in GCC" "" { target > *-*-* } 0 } */ > /* { dg-note "if you need LP64E please notify the GCC project via PR116152" > "" { target *-*-* } 0 } */ > > diff --git a/gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c > b/gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c > index 0af4d7199f6..fd845f53335 100644 > --- a/gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c > +++ b/gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c > @@ -244,9 +244,9 @@ test_f0 () > /* > **foo: > ** cm.push {ra}, -16 > -** call f1 > +** call f1(?:@plt)? > ** cm.pop {ra}, 16 > -** tail f2 > +** tail f2(?:@plt)? > */ > void > foo (void) > @@ -258,7 +258,7 @@ foo (void) > /* > **test_popretz: > ** cm.push {ra}, -16 > -** call f1 > +** call f1(?:@plt)? > ** li a0,0 > ** cm.popret {ra}, 16 > */ > diff --git a/gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c > b/gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c > index 723889f49df..d90f4f47c8d 100644 > --- a/gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c > +++ b/gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c > @@ -244,9 +244,9 @@ test_f0 () > /* > **foo: > ** cm.push {ra}, -16 > -** call f1 > +** call f1(?:@plt)? > ** cm.pop {ra}, 16 > -** tail f2 > +** tail f2(?:@plt)? > */ > void > foo (void) > @@ -258,7 +258,7 @@ foo (void) > /* > **test_popretz: > ** cm.push {ra}, -16 > -** call f1 > +** call f1(?:@plt)? > ** li a0,0 > ** cm.popret {ra}, 16 > */ > diff --git > a/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c > b/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c > index 39c8c007d3f..d21b810ea25 100644 > --- > a/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c > +++ > b/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c > @@ -51,7 +51,7 @@ foo1 (vint8m1_t a) > ** vs1r\.v\tv30,0\(sp\) > ** sub\tsp,sp,t0 > ** vs1r\.v\tv31,0\(sp\) > -** call\tbar2 > +** call\tbar2(?:@plt)? > ** csrr\tt0,vlenb > ** vl1re64\.v\tv31,0\(sp\) > ** add\tsp,sp,t0 > @@ -96,8 +96,8 @@ foo2 (vint8m1_t a) > ** foo3: > ** call\tt0,__riscv_save_0 > ** vl1re8\.v\tv8,0\(a0\) > -** call\tbar1 > -** call\tbar2 > +** call\tbar1(?:@plt)? > +** call\tbar2(?:@plt)? > ** tail\t__riscv_restore_0 > */ > void > diff --git > a/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c > b/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c > index 5f8f96f86a9..70a32d7ce7f 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c > @@ -10,7 +10,7 @@ void bar2 (); > /* > ** foo1: > ** cm.push\t{ra},\s*-16 > -** call\tbar1 > +** call\tbar1(?:@plt)? > ** cm.popret\t{ra},\s*16 > */ > void > @@ -53,7 +53,7 @@ foo1 (vint8m1_t a) > ** vs1r\.v\tv30,0\(sp\) > ** sub\tsp,sp,t0 > ** vs1r\.v\tv31,0\(sp\) > -** call\tbar2 > +** call\tbar2(?:@plt)? > ** csrr\tt0,vlenb > ** vl1re64\.v\tv31,0\(sp\) > ** add\tsp,sp,t0 > @@ -97,7 +97,7 @@ foo2 (vint8m1_t a) > ** foo3: > ** cm.push\t{ra},\s*-16 > ** vl1re8\.v\tv8,0\(a0\) > -** call\tbar1 > +** call\tbar1(?:@plt)? > ** cm.popret\t{ra},\s*16 > */ > void > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2.c > b/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2.c > index a9f3855b413..3f2cb2fa671 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/abi-callee-saved-2.c > @@ -11,7 +11,7 @@ void bar2 (); > ** foo1: > ** addi\tsp,sp,-16 > ** sd\tra,8\(sp\) > -** call\tbar1 > +** call\tbar1(?:@plt)? > ** ld\tra,8\(sp\) > ** addi\tsp,sp,16 > ** jr\tra > @@ -57,7 +57,7 @@ foo1 (vint8m1_t a) > ** vs1r\.v\tv30,0\(sp\) > ** sub\tsp,sp,t0 > ** vs1r\.v\tv31,0\(sp\) > -** call\tbar2 > +** call\tbar2(?:@plt)? > ** csrr\tt0,vlenb > ** vl1re64\.v\tv31,0\(sp\) > ** add\tsp,sp,t0 > @@ -105,7 +105,7 @@ foo2 (vint8m1_t a) > ** addi\tsp,sp,-16 > ** sd\tra,8\(sp\) > ** vl1re8\.v\tv8,0\(a0\) > -** call\tbar1 > +** call\tbar1(?:@plt)? > ** ld\tra,8\(sp\) > ** addi\tsp,sp,16 > ** jr\tra > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-1.c > b/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-1.c > index 9edd6cb54ba..3534720d8e8 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-1.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-1.c > @@ -21,7 +21,7 @@ f1 (void *a, void *b) > /* Tiny __builtin_memcmp should use libc. > ** f2: > ** li\s+a\d,\d+ > -** tail\s+memcmp > +** tail\s+memcmp(?:@plt)? > */ > int > f2 (void *a, void *b) > @@ -79,7 +79,7 @@ f5 (void *a, void *b) > /* Don't inline if the length is too large for one operation. > ** f6: > ** li\s+a2,\d+ > -** tail\s+memcmp > +** tail\s+memcmp(?:@plt)? > */ > int > f6 (void *a, void *b) > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-3.c > b/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-3.c > index 82aa3076579..c1c1aae4495 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-3.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-3.c > @@ -8,7 +8,7 @@ > /* Tiny __builtin_memcmp should use libc. > ** f1: > ** li\s+a\d,\d+ > -** tail\s+memcmp > +** tail\s+memcmp(?:@plt)? > */ > int > f1 (void *a, void *b) > @@ -36,7 +36,7 @@ f2 (void *a, void *b) > /* Don't inline if the length is too large for one operation. > ** f3: > ** li\s+a2,\d+ > -** tail\s+memcmp > +** tail\s+memcmp(?:@plt)? > */ > int > f3 (void *a, void *b) > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-4.c > b/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-4.c > index e2dd6a1c45f..ad87038cef4 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-4.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/cmpmem-4.c > @@ -8,7 +8,7 @@ > /* Tiny __builtin_memcmp should use libc. > ** f1: > ** li\s+a\d,\d+ > -** tail\s+memcmp > +** tail\s+memcmp(?:@plt)? > */ > int > f1 (void *a, void *b) > @@ -53,7 +53,7 @@ f3 (void *a, void *b) > /* Don't inline if the length is too large for one operation. > ** f4: > ** li\s+a2,\d+ > -** tail\s+memcmp > +** tail\s+memcmp(?:@plt)? > */ > int > f4 (void *a, void *b) > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-1.c > b/gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-1.c > index 654c80087d2..5e35204fd37 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-1.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-1.c > @@ -1,5 +1,5 @@ > /* { dg-do compile { target { ! riscv_abi_e } } } */ > -/* { dg-additional-options "-O1 -fno-schedule-insns -fno-schedule-insns2" } > */ > +/* { dg-additional-options "-O1 -fno-schedule-insns -fno-schedule-insns2 > -fno-pie" } */ > /* { dg-add-options riscv_v } */ > /* { dg-final { check-function-bodies "**" "" } } */ > > @@ -109,4 +109,4 @@ void f3 () > memcpy (&a_a, &a_b, sizeof a_a); > } > > -/* { dg-final { scan-assembler-not {\m(tail|call)\s+memcpy\M} } } */ > +/* { dg-final { scan-assembler-not {\m(tail|call)\s+memcpy(?:@plt)?\M} } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/movmem-1.c > b/gcc/testsuite/gcc.target/riscv/rvv/base/movmem-1.c > index 03e633be271..44bf3d75fd0 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/base/movmem-1.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/movmem-1.c > @@ -52,7 +52,7 @@ f3 (char *a, char const *b) > /* Don't vectorise if the move is too large for one operation > ** f4: > ** li\s+a2,\d+ > -** tail\s+memmove > +** tail\s+memmove(?:@plt)? > */ > char * > f4 (char *a, char const *b) > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-3.c > b/gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-3.c > index 9bfa39c5268..4f375e526be 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-3.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-3.c > @@ -93,9 +93,9 @@ test_5 (_Float16 *a, _Float16 *b, _Float16 *out, unsigned > count) > /* > ** test_6: > ** ... > -** call\s+__extendhfsf2 > +** call\s+__extendhfsf2(?:@plt)? > ** ... > -** call\s+__truncsfhf2 > +** call\s+__truncsfhf2(?:@plt)? > ** ... > */ > void > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-1.c > b/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-1.c > index a22d366de9b..490445f4f6b 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-1.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-1.c > @@ -94,7 +94,7 @@ f6 (void *a, int const b) > /* Don't vectorise if the move is too large for one operation. > ** f7: > ** li\s+a2,\d+ > -** tail\s+memset > +** tail\s+memset(?:@plt)? > */ > void * > f7 (void *a, int const b) > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-2.c > b/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-2.c > index a10886862b2..876929e0422 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-2.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-2.c > @@ -44,7 +44,7 @@ f2 (void *a, int const b) > /* Don't vectorise if the move is too large for requested lmul. > ** f3: > ** li\s+a2,\d+ > -** tail\s+memset > +** tail\s+memset(?:@plt)? > */ > void * > f3 (void *a, int const b) > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-3.c > b/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-3.c > index 460a8f2c7fe..a185916d27d 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-3.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/setmem-3.c > @@ -62,7 +62,7 @@ f3 (void *a, int const b) > /* Don't vectorise if the move is too large for requested lmul. > ** f4: > ** li\s+a2,\d+ > -** tail\s+memset > +** tail\s+memset(?:@plt)? > */ > void * > f4 (void *a, int const b) > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c > b/gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c > index 7e5758b18d1..375d3166a46 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/spill-9.c > @@ -18,7 +18,7 @@ void f (char*); > ** ... > ** addi\ta0,sp,15 > ** andi\ta0,a0,-16 > -** call\tf > +** call\tf(?:@plt)? > ** ... > ** lw\tra,12\(sp\) > ** lw\ts0,8\(sp\) > diff --git a/gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c > b/gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c > index f7d8f446b79..be304e7bdb2 100644 > --- a/gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c > +++ b/gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c > @@ -10,7 +10,7 @@ bar (); > **fool_rv32e: > ** cm.push {ra}, -32 > ** ... > -** call bar > +** call bar(?:@plt)? > ** ... > ** lw a[0-5],32\(sp\) > ** ... > -- > 2.34.1 >