Multiple tests fail on ia32 with -fPIE enabled by default because of different call sequences required by the call-saved PIC register (no-callee-saved-*.c), uses of the constant pool instead of computing constants (pr100865-*.c), and unexpected matches of esp in get_pc_thunk (sse2-stv-1.c). Disable PIE on them, to match the expectations.
Regstrapped on x86_64-linux-gnu; also tested on i686-linux-gnu with -fPIE. Ok to install? for gcc/testsuite/ChangeLog * gcc.target/i386/no-callee-saved-13.c: Disable PIE on ia32. * gcc.target/i386/no-callee-saved-14.c: Likewise. * gcc.target/i386/no-callee-saved-15.c: Likewise. * gcc.target/i386/no-callee-saved-17.c: Likewise. * gcc.target/i386/pr100865-1.c: Likewise. * gcc.target/i386/pr100865-7a.c: Likewise. * gcc.target/i386/pr100865-7c.c: Likewise. * gcc.target/i386/sse2-stv-1.c: Likewise. --- gcc/testsuite/gcc.target/i386/no-callee-saved-13.c | 1 + gcc/testsuite/gcc.target/i386/no-callee-saved-14.c | 1 + gcc/testsuite/gcc.target/i386/no-callee-saved-15.c | 1 + gcc/testsuite/gcc.target/i386/no-callee-saved-17.c | 1 + gcc/testsuite/gcc.target/i386/pr100865-1.c | 1 + gcc/testsuite/gcc.target/i386/pr100865-7a.c | 1 + gcc/testsuite/gcc.target/i386/pr100865-7c.c | 1 + gcc/testsuite/gcc.target/i386/sse2-stv-1.c | 1 + 8 files changed, 8 insertions(+) diff --git a/gcc/testsuite/gcc.target/i386/no-callee-saved-13.c b/gcc/testsuite/gcc.target/i386/no-callee-saved-13.c index 6757e72d8487c..0b59da36786a1 100644 --- a/gcc/testsuite/gcc.target/i386/no-callee-saved-13.c +++ b/gcc/testsuite/gcc.target/i386/no-callee-saved-13.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -mtune-ctrl=^prologue_using_move,^epilogue_using_move" } */ +/* { dg-additional-options "-fno-PIE" { target ia32 } } */ extern void foo (void); diff --git a/gcc/testsuite/gcc.target/i386/no-callee-saved-14.c b/gcc/testsuite/gcc.target/i386/no-callee-saved-14.c index 2239e286e6a62..2127b12f120bd 100644 --- a/gcc/testsuite/gcc.target/i386/no-callee-saved-14.c +++ b/gcc/testsuite/gcc.target/i386/no-callee-saved-14.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -mtune-ctrl=^prologue_using_move,^epilogue_using_move" } */ +/* { dg-additional-options "-fno-PIE" { target ia32 } } */ extern void bar (void) __attribute__ ((no_callee_saved_registers)); diff --git a/gcc/testsuite/gcc.target/i386/no-callee-saved-15.c b/gcc/testsuite/gcc.target/i386/no-callee-saved-15.c index 10135fec9c147..65f2a9532ffd3 100644 --- a/gcc/testsuite/gcc.target/i386/no-callee-saved-15.c +++ b/gcc/testsuite/gcc.target/i386/no-callee-saved-15.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -mtune-ctrl=^prologue_using_move,^epilogue_using_move" } */ +/* { dg-additional-options "-fno-PIE" { target ia32 } } */ typedef void (*fn_t) (void) __attribute__ ((no_callee_saved_registers)); extern fn_t bar; diff --git a/gcc/testsuite/gcc.target/i386/no-callee-saved-17.c b/gcc/testsuite/gcc.target/i386/no-callee-saved-17.c index 1fd5daadf0800..1ecf4552f3d09 100644 --- a/gcc/testsuite/gcc.target/i386/no-callee-saved-17.c +++ b/gcc/testsuite/gcc.target/i386/no-callee-saved-17.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -mtune-ctrl=^prologue_using_move,^epilogue_using_move" } */ +/* { dg-additional-options "-fno-PIE" { target ia32 } } */ extern void foo (void) __attribute__ ((no_caller_saved_registers)); diff --git a/gcc/testsuite/gcc.target/i386/pr100865-1.c b/gcc/testsuite/gcc.target/i386/pr100865-1.c index 75cd463cbfc2e..fc0a5b33950f1 100644 --- a/gcc/testsuite/gcc.target/i386/pr100865-1.c +++ b/gcc/testsuite/gcc.target/i386/pr100865-1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -march=x86-64" } */ +/* { dg-additional-options "-fno-PIE" { target ia32 } } */ extern char *dst; diff --git a/gcc/testsuite/gcc.target/i386/pr100865-7a.c b/gcc/testsuite/gcc.target/i386/pr100865-7a.c index 7de7d4a3ce3ad..9fb5dc5256522 100644 --- a/gcc/testsuite/gcc.target/i386/pr100865-7a.c +++ b/gcc/testsuite/gcc.target/i386/pr100865-7a.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O3 -march=skylake" } */ +/* { dg-additional-options "-fno-PIE" { target ia32 } } */ extern long long int array[64]; diff --git a/gcc/testsuite/gcc.target/i386/pr100865-7c.c b/gcc/testsuite/gcc.target/i386/pr100865-7c.c index edbfd5b09ed69..695831e59af51 100644 --- a/gcc/testsuite/gcc.target/i386/pr100865-7c.c +++ b/gcc/testsuite/gcc.target/i386/pr100865-7c.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O3 -march=skylake -mno-avx2" } */ +/* { dg-additional-options "-fno-PIE" { target ia32 } } */ extern long long int array[64]; diff --git a/gcc/testsuite/gcc.target/i386/sse2-stv-1.c b/gcc/testsuite/gcc.target/i386/sse2-stv-1.c index 72b57b5923c0d..c6eacc4f92cf9 100644 --- a/gcc/testsuite/gcc.target/i386/sse2-stv-1.c +++ b/gcc/testsuite/gcc.target/i386/sse2-stv-1.c @@ -1,5 +1,6 @@ /* { dg-do compile { target ia32 } } */ /* { dg-options "-O2 -msse2 -mno-stackrealign" } */ +/* { dg-additional-options "-fno-PIE" { target ia32 } } */ unsigned long long a,b,c,d; -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer More tolerance and less prejudice are key for inclusion and diversity Excluding neuro-others for not behaving ""normal"" is *not* inclusive