From: Iain Sandoe Date: Thu, 30 May 2019 08:06:38 +0000 (+0000) Subject: Darwin, x86 - backport fix for mfentry test fails. X-Git-Tag: releases/gcc-9.2.0~290 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5f9cea6677c1ad234230066787c4f64b60d7f4f;p=thirdparty%2Fgcc.git Darwin, x86 - backport fix for mfentry test fails. This will fix the cases by UNSUPPORTING for any target that cannot support mfentry (including Linux -fpic -m32). gcc/ 2019-05-30 Iain Sandoe Backport from mainline. 2019-05-23 Iain Sandoe * config/i386/darwin.h: Reject -mfentry*. * doc/sourcebuild.texi: Document mfentry target support. gcc/testsuite/ 2019-05-30 Iain Sandoe Backport from mainline. 2019-05-23 Iain Sandoe * lib/target-supports.exp (check_effective_target_mfentry): New. * gcc.target/i386/fentry-override.c: Require effective target mfentry. * gcc.target/i386/fentry.c: Likewise * gcc.target/i386/fentryname1.c: Likewise * gcc.target/i386/fentryname2.c: Likewise * gcc.target/i386/fentryname3.c: Likewise * gcc.target/i386/nop-mcount.c: Likewise * gcc.target/i386/pr82699-2.c: Likewise * gcc.target/i386/pr82699-4.c: Likewise * gcc.target/i386/pr82699-5.c: Likewise * gcc.target/i386/pr82699-6.c: Likewise * gcc.target/i386/returninst1.c: Likewise * gcc.target/i386/returninst2.c: Likewise * gcc.target/i386/returninst3.c : Likewise From-SVN: r271767 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 40932172545f..e42616647783 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2019-05-30 Iain Sandoe + + Backport from mainline. + 2019-05-23 Iain Sandoe + + * config/i386/darwin.h: Reject -mfentry*. + * doc/sourcebuild.texi: Document mfentry target support. + 2019-05-30 Iain Sandoe Backport from mainline. diff --git a/gcc/config/i386/darwin.h b/gcc/config/i386/darwin.h index fe11ec9efac3..11284283304e 100644 --- a/gcc/config/i386/darwin.h +++ b/gcc/config/i386/darwin.h @@ -132,7 +132,8 @@ extern int darwin_emit_branch_islands; #define CC1_SPEC "%(cc1_cpu) \ %{!mkernel:%{!static:%{!mdynamic-no-pic:-fPIC}}} \ %{g: %{!fno-eliminate-unused-debug-symbols: -feliminate-unused-debug-symbols }} \ - %{mx32:%eDarwin is not an mx32 platform}" \ + %{mx32:%eDarwin is not an mx32 platform} \ + %{mfentry*:%eDarwin does not support -mfentry or associated options}" \ DARWIN_CC1_SPEC #undef ASM_SPEC diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 39a8fdf19782..3f6a8aecab4e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,23 @@ +2019-05-30 Iain Sandoe + + Backport from mainline. + 2019-05-23 Iain Sandoe + + * lib/target-supports.exp (check_effective_target_mfentry): New. + * gcc.target/i386/fentry-override.c: Require effective target mfentry. + * gcc.target/i386/fentry.c: Likewise + * gcc.target/i386/fentryname1.c: Likewise + * gcc.target/i386/fentryname2.c: Likewise + * gcc.target/i386/fentryname3.c: Likewise + * gcc.target/i386/nop-mcount.c: Likewise + * gcc.target/i386/pr82699-2.c: Likewise + * gcc.target/i386/pr82699-4.c: Likewise + * gcc.target/i386/pr82699-5.c: Likewise + * gcc.target/i386/pr82699-6.c: Likewise + * gcc.target/i386/returninst1.c: Likewise + * gcc.target/i386/returninst2.c: Likewise + * gcc.target/i386/returninst3.c : Likewise + 2019-05-30 Iain Sandoe Backport from mainline. diff --git a/gcc/testsuite/gcc.target/i386/fentry-override.c b/gcc/testsuite/gcc.target/i386/fentry-override.c index 7bc5fc451505..efba1bf2cff8 100644 --- a/gcc/testsuite/gcc.target/i386/fentry-override.c +++ b/gcc/testsuite/gcc.target/i386/fentry-override.c @@ -1,5 +1,6 @@ /* Test -mfentry override */ /* { dg-do compile { target { *-*-linux* && { ! ia32 } } } } */ +/* { dg-require-effective-target mfentry } */ /* { dg-options "-mfentry" } */ /* { dg-final { scan-assembler-not "__fentry__" } } */ /* Origin: Andi Kleen */ diff --git a/gcc/testsuite/gcc.target/i386/fentry.c b/gcc/testsuite/gcc.target/i386/fentry.c index 2449e75fb5d7..28edd104f18b 100644 --- a/gcc/testsuite/gcc.target/i386/fentry.c +++ b/gcc/testsuite/gcc.target/i386/fentry.c @@ -1,5 +1,6 @@ /* Test -mfentry */ /* { dg-do compile { target { *-*-linux* && { ! ia32 } } } } */ +/* { dg-require-effective-target mfentry } */ /* { dg-options "-fprofile -mfentry" } */ /* { dg-final { scan-assembler "__fentry__" } } */ /* Origin: Andi Kleen */ diff --git a/gcc/testsuite/gcc.target/i386/fentryname1.c b/gcc/testsuite/gcc.target/i386/fentryname1.c index 6d2e76d223a6..1265342b954f 100644 --- a/gcc/testsuite/gcc.target/i386/fentryname1.c +++ b/gcc/testsuite/gcc.target/i386/fentryname1.c @@ -1,4 +1,5 @@ /* { dg-do compile } */ +/* { dg-require-effective-target mfentry } */ /* { dg-options "-pg -mfentry -mfentry-name=foo" } */ /* { dg-final { scan-assembler "call.*foo" } } */ /* { dg-final { scan-assembler "call.*bar" } } */ diff --git a/gcc/testsuite/gcc.target/i386/fentryname2.c b/gcc/testsuite/gcc.target/i386/fentryname2.c index 7d102bfccbcd..c51c5d1ff716 100644 --- a/gcc/testsuite/gcc.target/i386/fentryname2.c +++ b/gcc/testsuite/gcc.target/i386/fentryname2.c @@ -1,4 +1,5 @@ /* { dg-do compile } */ +/* { dg-require-effective-target mfentry } */ /* { dg-options "-pg -mfentry -mrecord-mcount -mfentry-section=foo" } */ /* { dg-final { scan-assembler "section.*foo" } } */ /* { dg-final { scan-assembler "section.*bar" } } */ diff --git a/gcc/testsuite/gcc.target/i386/fentryname3.c b/gcc/testsuite/gcc.target/i386/fentryname3.c index 777f4e4b0ffb..56881090a9c7 100644 --- a/gcc/testsuite/gcc.target/i386/fentryname3.c +++ b/gcc/testsuite/gcc.target/i386/fentryname3.c @@ -1,4 +1,5 @@ /* { dg-do compile } */ +/* { dg-require-effective-target mfentry } */ /* { dg-options "-pg -mfentry" } */ /* { dg-final { scan-assembler "section.*__entry_loc" } } */ /* { dg-final { scan-assembler "0x0f, 0x1f, 0x44, 0x00, 0x00" } } */ diff --git a/gcc/testsuite/gcc.target/i386/nop-mcount.c b/gcc/testsuite/gcc.target/i386/nop-mcount.c index a8e14bce5514..a5f8d27fda43 100644 --- a/gcc/testsuite/gcc.target/i386/nop-mcount.c +++ b/gcc/testsuite/gcc.target/i386/nop-mcount.c @@ -1,5 +1,6 @@ /* Test -mnop-mcount */ /* { dg-do compile { target { *-*-linux* && nonpic } } } */ +/* { dg-require-effective-target mfentry } */ /* { dg-options "-pg -mfentry -mrecord-mcount -mnop-mcount" } */ /* { dg-final { scan-assembler-not "__fentry__" } } */ /* Origin: Andi Kleen */ diff --git a/gcc/testsuite/gcc.target/i386/pr82699-2.c b/gcc/testsuite/gcc.target/i386/pr82699-2.c index 07a4ccbdbf48..c43cf441e067 100644 --- a/gcc/testsuite/gcc.target/i386/pr82699-2.c +++ b/gcc/testsuite/gcc.target/i386/pr82699-2.c @@ -1,4 +1,5 @@ /* { dg-do compile { target *-*-linux* } } */ +/* { dg-require-effective-target mfentry } */ /* { dg-options "-O2 -fno-pic -fcf-protection -pg -mfentry -fasynchronous-unwind-tables" } */ /* { dg-final { scan-assembler-times {\t\.cfi_startproc\n\tendbr} 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/pr82699-4.c b/gcc/testsuite/gcc.target/i386/pr82699-4.c index 3cc03dbf13e7..719566b358b4 100644 --- a/gcc/testsuite/gcc.target/i386/pr82699-4.c +++ b/gcc/testsuite/gcc.target/i386/pr82699-4.c @@ -1,4 +1,5 @@ /* { dg-do compile { target { *-*-linux* && { ! ia32 } } } } */ +/* { dg-require-effective-target mfentry } */ /* { dg-options "-O2 -fpic -fcf-protection -pg -mfentry -fasynchronous-unwind-tables" } */ /* { dg-final { scan-assembler-times {\t\.cfi_startproc\n\tendbr} 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/pr82699-5.c b/gcc/testsuite/gcc.target/i386/pr82699-5.c index 0c547e25f03a..ac3c1ae760aa 100644 --- a/gcc/testsuite/gcc.target/i386/pr82699-5.c +++ b/gcc/testsuite/gcc.target/i386/pr82699-5.c @@ -1,4 +1,5 @@ /* { dg-do compile { target *-*-linux* } } */ +/* { dg-require-effective-target mfentry } */ /* { dg-options "-O2 -fcf-protection -mfentry -fasynchronous-unwind-tables" } */ /* { dg-additional-options "-fno-pic" { target ia32 } } */ /* { dg-final { scan-assembler-times {\t\.cfi_startproc\n\tendbr} 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/pr82699-6.c b/gcc/testsuite/gcc.target/i386/pr82699-6.c index ff6bae7d1ea3..0b595f4a1c95 100644 --- a/gcc/testsuite/gcc.target/i386/pr82699-6.c +++ b/gcc/testsuite/gcc.target/i386/pr82699-6.c @@ -1,4 +1,5 @@ /* { dg-do compile { target *-*-linux* } } */ +/* { dg-require-effective-target mfentry } */ /* { dg-options "-fno-pic -O2 -fcf-protection -pg -mfentry -mrecord-mcount -mnop-mcount -fasynchronous-unwind-tables" } */ /* { dg-final { scan-assembler-times {\t\.cfi_startproc\n\tendbr} 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/returninst1.c b/gcc/testsuite/gcc.target/i386/returninst1.c index d7ecc41bc650..133fdeef5aa1 100644 --- a/gcc/testsuite/gcc.target/i386/returninst1.c +++ b/gcc/testsuite/gcc.target/i386/returninst1.c @@ -1,4 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ +/* { dg-require-effective-target mfentry } */ /* { dg-options "-pg -mfentry -minstrument-return=call -mrecord-return" } */ /* { dg-final { scan-assembler "call.*__return__" } } */ /* { dg-final { scan-assembler "section.*return_loc" } } */ diff --git a/gcc/testsuite/gcc.target/i386/returninst2.c b/gcc/testsuite/gcc.target/i386/returninst2.c index 4724b40b2580..3629310a59a7 100644 --- a/gcc/testsuite/gcc.target/i386/returninst2.c +++ b/gcc/testsuite/gcc.target/i386/returninst2.c @@ -1,4 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ +/* { dg-require-effective-target mfentry } */ /* { dg-options "-pg -mfentry -minstrument-return=nop5 -mrecord-return" } */ /* { dg-final { scan-assembler-times "0x0f, 0x1f, 0x44, 0x00, 0x00" 3 } } */ /* { dg-final { scan-assembler "section.*return_loc" } } */ diff --git a/gcc/testsuite/gcc.target/i386/returninst3.c b/gcc/testsuite/gcc.target/i386/returninst3.c index 14b4445b1c69..b84cc77e12bc 100644 --- a/gcc/testsuite/gcc.target/i386/returninst3.c +++ b/gcc/testsuite/gcc.target/i386/returninst3.c @@ -1,4 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ +/* { dg-require-effective-target mfentry } */ /* { dg-options "-pg -mfentry -minstrument-return=call" } */ /* { dg-final { scan-assembler-not "call.*__return__" } } */ diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 4bb7da283f13..737ca6d57ad3 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -9345,3 +9345,14 @@ proc check_effective_target_llvm_binutils { } { expr { [istarget amdgcn*-*-*] || [check_effective_target_offload_gcn] }}] } + +# Return 1 if the compiler supports '-mfentry'. + +proc check_effective_target_mfentry { } { + if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { + return 0 + } + return [check_no_compiler_messages mfentry object { + void foo (void) { } + } "-mfentry"] +}