https://gcc.gnu.org/g:30a70966783ea7276a153a670065ac6ae7b2ddaa

commit 30a70966783ea7276a153a670065ac6ae7b2ddaa
Author: Alexandre Oliva <[email protected]>
Date:   Mon May 11 03:47:03 2026 -0300

    vxworks: support aarch64 errata
    
    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.
    
    
    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.

Diff:
---
 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 d62eb162934b..b1a1e955bda0 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 6d2bd4eca2c7..a996ffc9139f 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 74d3cbc16872..14ad5823a45d 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 6cf435103199..6d4af751accc 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 9a63cf8f217e..751493ec1260 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 844fefa2ed44..430dbf48c02b 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 818d249c80ef..8ffd54f38973 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 20a3be98f9ef..e027787c1ccd 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 227f67762ad3..0c44aecc77f2 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 677edb5ff582..015c507a655d 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 1d12413b2b3a..4f222863db66 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 ff29157b6f73..6d5ce4266706 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 69d62ddab824..29f994ce696f 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 f2660a7e79dd..04b17062cefa 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 4bea52f1ec5b..2c71c27f9571 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 837857ed8a41..bea4629af1e7 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 282b1215622b..27c2da0c44ae 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 25195c034bee..e930e59e3a07 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()

Reply via email to