Some tests use stdio functions which are unavaiable with the cut-down
newlib I'm using for ptx testing. I'm somewhat uncertain what to do with
these; they are by no means the only unavailable library functions the
testsuite tries to use (signal is another example). Here's a patch which
deals with parts of the problem, but I wouldn't mind leaving this one
out if it doesn't seem worthwhile.
Bernd
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_stdio): New
function.
* gcc.c-torture/execute/gofast.c (fail): Don't fprintf on nvptx.
* gcc.dg/torture/matrix-1.c: Require stdio.
* gcc.dg/torture/matrix-2.c: Require stdio.
* gcc.dg/torture/matrix-5.c: Require stdio.
* gcc.dg/torture/matrix-6.c: Require stdio.
* gcc.dg/torture/transpose-1.c: Require stdio.
* gcc.dg/torture/transpose-2.c: Require stdio.
* gcc.dg/torture/transpose-3.c: Require stdio.
* gcc.dg/torture/transpose-4.c: Require stdio.
* gcc.dg/torture/transpose-5.c: Require stdio.
* gcc.dg/torture/transpose-6.c: Require stdio.
------------------------------------------------------------------------
Index: gcc/testsuite/lib/target-supports.exp
===================================================================
--- gcc/testsuite/lib/target-supports.exp.orig
+++ gcc/testsuite/lib/target-supports.exp
@@ -604,6 +606,15 @@ proc add_options_for_tls { flags } {
return $flags
}
+# Return 1 if the C library on this target has stdio support, 0 otherwise.
+
+proc check_effective_target_stdio {} {
+ if { [istarget nvptx-*-*] } {
+ return 0
+ }
+ return 1
+}
+
# Return 1 if the assembler does not verify function types against
# calls, 0 otherwise. Such verification will typically show up problems
# with K&R C function declarations.
Index: gcc/testsuite/gcc.c-torture/execute/gofast.c
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/gofast.c.orig
+++ gcc/testsuite/gcc.c-torture/execute/gofast.c
@@ -48,7 +48,9 @@ int
fail (char *msg)
{
fail_count++;
+#ifndef __nvptx__
fprintf (stderr, "Test failed: %s\n", msg);
+#endif
}
int
Index: gcc/testsuite/gcc.dg/torture/matrix-1.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/matrix-1.c.orig
+++ gcc/testsuite/gcc.dg/torture/matrix-1.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-fwhole-program" } */
+/* { dg-require-effective-target stdio } */
#include <stdio.h>
#include <stdlib.h>
Index: gcc/testsuite/gcc.dg/torture/matrix-2.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/matrix-2.c.orig
+++ gcc/testsuite/gcc.dg/torture/matrix-2.c
@@ -1,6 +1,6 @@
/* { dg-do run } */
/* { dg-options "-fwhole-program" } */
-
+/* { dg-require-effective-target stdio } */
#include <stdio.h>
#include <stdlib.h>
Index: gcc/testsuite/gcc.dg/torture/matrix-5.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/matrix-5.c.orig
+++ gcc/testsuite/gcc.dg/torture/matrix-5.c
@@ -1,6 +1,6 @@
/* { dg-do run } */
/* { dg-options "-fwhole-program" } */
-
+/* { dg-require-effective-target stdio } */
#include <stdio.h>
#include <stdlib.h>
Index: gcc/testsuite/gcc.dg/torture/matrix-6.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/matrix-6.c.orig
+++ gcc/testsuite/gcc.dg/torture/matrix-6.c
@@ -1,6 +1,6 @@
/* { dg-do run } */
/* { dg-options "-fwhole-program" } */
-
+/* { dg-require-effective-target stdio } */
#include <stdio.h>
#include <stdlib.h>
Index: gcc/testsuite/gcc.dg/torture/transpose-1.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/transpose-1.c.orig
+++ gcc/testsuite/gcc.dg/torture/transpose-1.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-fwhole-program" } */
+/* { dg-require-effective-target stdio } */
#include <stdio.h>
#include <stdlib.h>
Index: gcc/testsuite/gcc.dg/torture/transpose-2.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/transpose-2.c.orig
+++ gcc/testsuite/gcc.dg/torture/transpose-2.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-fwhole-program" } */
+/* { dg-require-effective-target stdio } */
#include <stdio.h>
#include <stdlib.h>
Index: gcc/testsuite/gcc.dg/torture/transpose-3.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/transpose-3.c.orig
+++ gcc/testsuite/gcc.dg/torture/transpose-3.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-fwhole-program" } */
+/* { dg-require-effective-target stdio } */
#include <stdio.h>
#include <stdlib.h>
Index: gcc/testsuite/gcc.dg/torture/transpose-4.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/transpose-4.c.orig
+++ gcc/testsuite/gcc.dg/torture/transpose-4.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-fwhole-program" } */
+/* { dg-require-effective-target stdio } */
#include <stdio.h>
#include <stdlib.h>
Index: gcc/testsuite/gcc.dg/torture/transpose-5.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/transpose-5.c.orig
+++ gcc/testsuite/gcc.dg/torture/transpose-5.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-fwhole-program" } */
+/* { dg-require-effective-target stdio } */
#include <stdio.h>
#include <stdlib.h>
Index: gcc/testsuite/gcc.dg/torture/transpose-6.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/transpose-6.c.orig
+++ gcc/testsuite/gcc.dg/torture/transpose-6.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-fwhole-program" } */
+/* { dg-require-effective-target stdio } */
#include <stdio.h>
#include <stdlib.h>