libstdc++-v3: Add -fcf-protection=none to -march=i486
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 16 Jan 2021 01:27:53 +0000 (17:27 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 16 Jan 2021 01:37:20 +0000 (17:37 -0800)
-fcf-protection is automatically enabled in libstdc++ on Linux/x86.
Starting from

commit 77d372abec0fbf2cfe922e3140ee3410248f979e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Jan 14 05:56:46 2021 -0800

    x86: Error on -fcf-protection with incompatible target

GCC issues an error on -fcf-protection with incompatible target:

... -fcf-protection ... libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc  -m32   -O2 -g0 -fno-exceptions -fno-asynchronous-unwind-tables -march=i486 ...
cc1plus: error: '-fcf-protection' is not compatible with this target
FAIL: 29_atomics/atomic_flag/test_and_set/explicit-hle.cc (test for excess errors)

Add -fcf-protection=none to -march=i486 to compile explicit-hle.cc.

* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
Add -fcf-protection=none to -march=i486.

libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc

index 0fd8170968820fd02f634296824c223f1cf1a305..8ec4628320844f66eed9fd0b51d22e5ac3f0b326 100644 (file)
@@ -1,6 +1,6 @@
 // { dg-do compile { target i?86-*-* x86_64-*-* } }
 // { dg-options "-O2 -g0 -fno-exceptions -fno-asynchronous-unwind-tables" }
-// { dg-additional-options "-march=i486" { target ia32 } }
+// { dg-additional-options "-march=i486 -fcf-protection=none" { target ia32 } }
 // { dg-require-effective-target c++11 }
 // { dg-skip-if "scans fail with LTO" { lto } { "-flto" } }
 // { dg-final { scan-assembler-times "xacquire\|\.byte\[^\n\r]*0xf2" 14 } }