I noticed that aarch64 errata required specs tweaks that were missing
on vxworks. To my surprise, adding those specs enabled even the
linker tests to pass, despite using vxlink and not always performing
final links. Ok, then, reverting the skip directives added not too
long ago.
Regstrapped on x86_64-linux-gnu. Also tested with gcc-15 on
aarch64-wrs-vxworks7.2. Ok to install?
for gcc/ChangeLog
* config.gcc [aarch64*-wrs-vxworks*] (tm_file): Add
aarch64/aarch64-errata.h.
* config/aarch64/aarch64-vxworks.h (LINK_SPEC): Add
AARCH64_ERRATA_LINK_SPEC.
(CC1_SPEC, CC1PLUS_SPEC): Add AARCH64_ERRATA_COMPILE_SPEC.
for gcc/testsuite/ChangeLog
* gcc.target/aarch64/erratas_opt_0.c: Revert skip on VxWorks.
* gcc.target/aarch64/erratas_opt_1.c: Likewise.
* gcc.target/aarch64/erratas_opt_2.c: Likewise.
* gcc.target/aarch64/erratas_opt_3.c: Likewise.
* gcc.target/aarch64/erratas_opt_4.c: Likewise.
* gcc.target/aarch64/erratas_opt_5.c: Likewise.
* gcc.target/aarch64/erratas_opt_6.c: Likewise.
* gcc.target/aarch64/erratas_opt_7.c: Likewise.
* gcc.target/aarch64/erratas_opt_8.c: Likewise.
* gcc.target/aarch64/erratas_opt_9.c: Likewise.
* gcc.target/aarch64/erratas_opt_10.c: Likewise.
* gcc.target/aarch64/erratas_opt_11.c: Likewise.
* gcc.target/aarch64/erratas_opt_12.c: Likewise.
* gcc.target/aarch64/erratas_opt_13.c: Likewise.
* gcc.target/aarch64/erratas_opt_14.c: Likewise.
* gcc.target/aarch64/erratas_opt_15.c: Likewise.
---
gcc/config.gcc | 2 +-
gcc/config/aarch64/aarch64-vxworks.h | 8 ++++++--
gcc/testsuite/gcc.target/aarch64/erratas_opt_0.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_1.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_10.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_11.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_12.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_13.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_14.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_15.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_2.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_3.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_4.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_5.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_6.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_7.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_8.c | 1 -
gcc/testsuite/gcc.target/aarch64/erratas_opt_9.c | 1 -
18 files changed, 7 insertions(+), 19 deletions(-)
diff --git a/gcc/config.gcc b/gcc/config.gcc
index d62eb162934bf..b1a1e955bda09 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1349,7 +1349,7 @@ aarch64-*-mingw*)
tm_defines="${tm_defines} TARGET_AARCH64_MS_ABI=1"
;;
aarch64*-wrs-vxworks*)
- tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h"
+ tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h
aarch64/aarch64-errata.h"
tm_file="${tm_file} vx-common.h vxworks.h aarch64/aarch64-vxworks.h"
tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-vxworks"
;;
diff --git a/gcc/config/aarch64/aarch64-vxworks.h
b/gcc/config/aarch64/aarch64-vxworks.h
index 6d2bd4eca2c72..a996ffc9139fc 100644
--- a/gcc/config/aarch64/aarch64-vxworks.h
+++ b/gcc/config/aarch64/aarch64-vxworks.h
@@ -23,7 +23,8 @@ along with GCC; see the file COPYING3. If not see
#define SUBTARGET_OVERRIDE_OPTIONS VXWORKS_OVERRIDE_OPTIONS
#undef LINK_SPEC
-#define LINK_SPEC VXWORKS_LINK_SPEC
+#define LINK_SPEC VXWORKS_LINK_SPEC \
+ AARCH64_ERRATA_LINK_SPEC
#undef LIB_SPEC
#define LIB_SPEC VXWORKS_LIB_SPEC
@@ -38,7 +39,10 @@ along with GCC; see the file COPYING3. If not see
#define CPP_SPEC VXWORKS_ADDITIONAL_CPP_SPEC
#undef CC1_SPEC
-#define CC1_SPEC VXWORKS_CC1_SPEC
+#define CC1_SPEC VXWORKS_CC1_SPEC AARCH64_ERRATA_COMPILE_SPEC
+
+#undef CC1PLUS_SPEC
+#define CC1PLUS_SPEC VXWORKS_CC1_SPEC AARCH64_ERRATA_COMPILE_SPEC
#undef FUNCTION_PROFILER
#define FUNCTION_PROFILER VXWORKS_FUNCTION_PROFILER
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_0.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_0.c
index 74d3cbc168720..14ad5823a45db 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_0.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_0.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-mcpu=neoverse-v1 -mfix-cortex-a53-835769 -###" }
*/
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_1.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_1.c
index 6cf435103199e..6d4af751accc5 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_1.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-mfix-cortex-a53-835769 -###" } */
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_10.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_10.c
index 9a63cf8f217e8..751493ec12603 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_10.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_10.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-mfix-cortex-a53-843419 -mcpu=neoverse-v1 -###" }
*/
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_11.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_11.c
index 844fefa2ed441..430dbf48c02be 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_11.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_11.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-march=armv9-a -mfix-cortex-a53-843419 -###" } */
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_12.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_12.c
index 818d249c80efa..8ffd54f389733 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_12.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_12.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-mfix-cortex-a53-843419 -march=armv9-a -###" } */
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_13.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_13.c
index 20a3be98f9efd..e027787c1ccdb 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_13.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_13.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-mcpu=cortex-a53 -mfix-cortex-a53-843419 -###" } */
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_14.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_14.c
index 227f67762ad38..0c44aecc77f21 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_14.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_14.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-march=armv8-a -mfix-cortex-a53-843419 -###" } */
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_15.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_15.c
index 677edb5ff582c..015c507a655d8 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_15.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_15.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-mcpu=neoverse-v1 -march=armv8-a
-mfix-cortex-a53-843419 -###" } */
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_2.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_2.c
index 1d12413b2b3a3..4f222863db66c 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_2.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_2.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-mfix-cortex-a53-835769 -mcpu=neoverse-v1 -###" }
*/
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_3.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_3.c
index ff29157b6f732..6d5ce42667069 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_3.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_3.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-march=armv9-a -mfix-cortex-a53-835769 -###" } */
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_4.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_4.c
index 69d62ddab8248..29f994ce696f7 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_4.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_4.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-mfix-cortex-a53-835769 -march=armv9-a -###" } */
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_5.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_5.c
index f2660a7e79dda..04b17062cefa9 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_5.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_5.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-mcpu=cortex-a53 -mfix-cortex-a53-835769 -###" } */
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_6.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_6.c
index 4bea52f1ec5bf..2c71c27f9571f 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_6.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_6.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-march=armv8-a -mfix-cortex-a53-835769 -###" } */
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_7.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_7.c
index 837857ed8a410..bea4629af1e74 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_7.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_7.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-mcpu=neoverse-v1 -march=armv8-a
-mfix-cortex-a53-835769 -###" } */
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_8.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_8.c
index 282b1215622b1..27c2da0c44aee 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_8.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_8.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-mcpu=neoverse-v1 -mfix-cortex-a53-843419 -###" }
*/
int main()
diff --git a/gcc/testsuite/gcc.target/aarch64/erratas_opt_9.c
b/gcc/testsuite/gcc.target/aarch64/erratas_opt_9.c
index 25195c034bee7..e930e59e3a076 100644
--- a/gcc/testsuite/gcc.target/aarch64/erratas_opt_9.c
+++ b/gcc/testsuite/gcc.target/aarch64/erratas_opt_9.c
@@ -1,5 +1,4 @@
/* { dg-do link } */
-/* { dg-skip-if "uses vxlink" { *-*-vxworks* } } */
/* { dg-additional-options "-mfix-cortex-a53-843419 -###" } */
int main()
--
Alexandre Oliva, happy hacker https://blog.lx.oliva.nom.br/
Free Software Activist FSFLA co-founder GNU Toolchain Engineer
More tolerance and less prejudice are key for inclusion and diversity.
Excluding neuro-others for not behaving ""normal"" is *not* inclusive!