[gcc(refs/vendors/ARM/heads/arm-perf-staging)] skip gcc.target/arm/div64-unwinding.c on vxworks_kernel targets

Tamar Christina tnfchris@gcc.gnu.org
Fri Jul 17 14:24:20 GMT 2020


https://gcc.gnu.org/g:130f703da0c0d7b785d394b17df884379b4aadd9

commit 130f703da0c0d7b785d394b17df884379b4aadd9
Author: Joel Brobecker <brobecker@adacore.com>
Date:   Mon Apr 6 12:07:48 2020 -0700

    skip gcc.target/arm/div64-unwinding.c on vxworks_kernel targets
    
    This test verifies, by using a weak reference to _Unwind_RaiseException,
    that performing division by zero does not cause that symbol to get
    indirectly pulled into our closure.
    
    The testing methodology unfortunately does not work on VxWorks targets
    when building in kernel mode. This is inherent to how kernel mode
    on VxWorks works: The link is only partial and the remaining symbols
    which have not been resolved already get automatically resolved by
    the VxWorks loader at the moment the module is loaded onto the target,
    prior to execution. The resolution includes weak symbols too, which
    defeats the purpose of this test.
    
    gcc/testsuite/
    
            * gcc.target/arm/div64-unwinding.c: Skip on vxworks_kernel targets.

Diff:
---
 gcc/testsuite/ChangeLog                        | 4 ++++
 gcc/testsuite/gcc.target/arm/div64-unwinding.c | 1 +
 2 files changed, 5 insertions(+)

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 29830633d79..2198e18198b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2020-04-06  Joel Brobecker  <brobecker@adacore.com>
+
+	* gcc.target/arm/div64-unwinding.c: Skip on vxworks_kernel targets.
+
 2020-04-04  Marek Polacek  <polacek@redhat.com>
 
 	PR c++/94155 - crash in gimplifier with paren init of aggregates.
diff --git a/gcc/testsuite/gcc.target/arm/div64-unwinding.c b/gcc/testsuite/gcc.target/arm/div64-unwinding.c
index 09442811fb6..c10ac248354 100644
--- a/gcc/testsuite/gcc.target/arm/div64-unwinding.c
+++ b/gcc/testsuite/gcc.target/arm/div64-unwinding.c
@@ -1,6 +1,7 @@
 /* Performing a 64-bit division should not pull in the unwinder.  */
 
 /* { dg-do run { target { { ! *-*-linux* } && { ! *-*-uclinux* } } } } */
+/* { dg-skip-if "load causes weak symbol resolution" { vxworks_kernel } } */
 /* { dg-options "-O0" } */
 
 #include <stdlib.h>


More information about the Gcc-cvs mailing list