further fixes for testing non-production cross compilers (RHEL-114521)

- enable guality tests in cross testing
- enable simulate-thread tests in cross testing
- enable gcov tests in cross testing
- enable some miscellaneous tests in cross testing
- fix some tree-prof tests for cross testing

Related: RHEL-114521
This commit is contained in:
Joseph Myers 2026-01-26 19:28:50 +00:00
parent 66da79fb84
commit 8dc14eb3b4
6 changed files with 1420 additions and 1 deletions

View File

@ -166,7 +166,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
Release: %{gcc_release}.2%{?dist}
Release: %{gcc_release}.3%{?dist}
# License notes for some of the less obvious ones:
# gcc/doc/cppinternals.texi: Linux-man-pages-copyleft-2-para
# isl: MIT, BSD-2-Clause
@ -346,6 +346,11 @@ Patch3001: gcc14-tests-installed-site-exp.patch
Patch3002: gcc14-tests-installed-target.patch
Patch3003: gcc14-tests-installed-plugin.patch
Patch3004: gcc14-tests-ssp-native.patch
Patch3005: gcc14-tests-guality-native.patch
Patch3006: gcc14-tests-simulate-thread-native.patch
Patch3007: gcc14-tests-gcov-native.patch
Patch3008: gcc14-tests-misc-native.patch
Patch3009: gcc14-tests-tree-prof-native.patch
# On ARM EABI systems, we do want -gnueabi to be part of the
# target triple.
@ -1204,6 +1209,11 @@ touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m
%patch -P3002 -p1 -b .gcc14-tests-installed-target
%patch -P3003 -p1 -b .gcc14-tests-installed-plugin
%patch -P3004 -p1 -b .gcc14-tests-ssp-native
%patch -P3005 -p1 -b .gcc14-tests-guality-native
%patch -P3006 -p1 -b .gcc14-tests-simulate-thread-native
%patch -P3007 -p1 -b .gcc14-tests-gcov-native
%patch -P3008 -p1 -b .gcc14-tests-misc-native
%patch -P3009 -p1 -b .gcc14-tests-tree-prof-native
%ifarch %{arm}
rm -f gcc/testsuite/go.test/test/fixedbugs/issue19182.go
@ -4499,6 +4509,14 @@ end
%{sysroot_prefix}/test-support/auto-host.h
%changelog
* Mon Jan 26 2026 Joseph Myers <josmyers@redhat.com> - 14.3.1-4.3
- fixes for testing non-production cross compilers (RHEL-114521)
- enable guality tests in cross testing
- enable simulate-thread tests in cross testing
- enable gcov tests in cross testing
- enable some miscellaneous tests in cross testing
- fix some tree-prof tests for cross testing
* Tue Jan 6 2026 Joseph Myers <josmyers@redhat.com> - 14.3.1-4.2
- fixes for testing non-production cross compilers (RHEL-114521)
- enable stack-protector tests in cross testing

View File

@ -0,0 +1,922 @@
commit 39a93faab07ff64a9e828f487f231b013b6cdbdc
Author: Joseph Myers <josmyers@redhat.com>
Date: Fri Jan 23 21:14:31 2026 +0000
testsuite: Enable cross testing for gcov tests
Tests of gcov are generally restricted to { target native }. The
issue for these tests is the need to transfer .gcda files from the
target to the host before running gcov. Implement that support and
remove the { target native } restrictions for these tests.
Note that by default code built to generate coverage data expects to
be able to write .gcda files to the same directory name in which the
compiler generated its output, so if that path cannot be created by
the tests on the target then they may still not work in a cross setup.
Other options involving -fprofile-dir are possible but involve their
own complications such as mangling of the .gcda file name (the
mangling logic would then need replicating in gcov.exp). Copying
files from the target using such absolute directory paths is what
already happens with gcc.dg/tree-prof tests using profopt.exp (and
those already work in a cross configuration except for a few using
dg-additional-sources), so this change is effectively making the gcov
tests work more like the tree-prof ones.
Note also that [remote_file host absolute ...] may require appropriate
support in your host board file for the case of a remote host (this
isn't an operation DejaGnu knows about doing remotely by default).
The logic for determining .gcda paths does mean it's the absolute path
on host, not on build, that is relevant.
Tested for x86_64-pc-linux-gnu to make sure native testing isn't
broken, and with cross to aarch64-linux.
* g++.dg/gcov/gcov-1.C, g++.dg/gcov/gcov-10.C,
g++.dg/gcov/gcov-11.C, g++.dg/gcov/gcov-12.C,
g++.dg/gcov/gcov-13.C, g++.dg/gcov/gcov-14.C,
g++.dg/gcov/gcov-15.C, g++.dg/gcov/gcov-16.C,
g++.dg/gcov/gcov-17.C, g++.dg/gcov/gcov-18.C,
g++.dg/gcov/gcov-19.C, g++.dg/gcov/gcov-2.C,
g++.dg/gcov/gcov-20.C, g++.dg/gcov/gcov-21.C,
g++.dg/gcov/gcov-23.C, g++.dg/gcov/gcov-3.C, g++.dg/gcov/gcov-4.C,
g++.dg/gcov/gcov-5.C, g++.dg/gcov/gcov-7.C, g++.dg/gcov/gcov-8.C,
g++.dg/gcov/gcov-dump-1.C, g++.dg/gcov/gcov-dump-2.C,
g++.dg/gcov/gcov-threads-1.C, g++.dg/gcov/loop.C,
g++.dg/gcov/pr16855-priority.C, g++.dg/gcov/pr16855.C,
g++.dg/gcov/pr84548.C, g++.dg/gcov/pr86109.C,
g++.dg/gcov/pr88045.C, g++.dg/gcov/pr88263-2.C,
g++.dg/gcov/pr88263.C, g++.dg/gcov/pr97069.C,
g++.dg/gcov/pr98273.C, g++.dg/gcov/ternary.C,
gcc.misc-tests/gcov-1.c, gcc.misc-tests/gcov-10.c,
gcc.misc-tests/gcov-10b.c, gcc.misc-tests/gcov-11.c,
gcc.misc-tests/gcov-12.c, gcc.misc-tests/gcov-13.c,
gcc.misc-tests/gcov-14.c, gcc.misc-tests/gcov-15.c,
gcc.misc-tests/gcov-16.c, gcc.misc-tests/gcov-17.c,
gcc.misc-tests/gcov-18.c, gcc.misc-tests/gcov-19.c,
gcc.misc-tests/gcov-1a.c, gcc.misc-tests/gcov-2.c,
gcc.misc-tests/gcov-20.c, gcc.misc-tests/gcov-22.c,
gcc.misc-tests/gcov-24.c, gcc.misc-tests/gcov-25.c,
gcc.misc-tests/gcov-26.c, gcc.misc-tests/gcov-27.c,
gcc.misc-tests/gcov-28.c, gcc.misc-tests/gcov-29.c,
gcc.misc-tests/gcov-3.c, gcc.misc-tests/gcov-30.c,
gcc.misc-tests/gcov-33.c, gcc.misc-tests/gcov-34.c,
gcc.misc-tests/gcov-4.c, gcc.misc-tests/gcov-4b.c,
gcc.misc-tests/gcov-5b.c, gcc.misc-tests/gcov-6.c,
gcc.misc-tests/gcov-7.c, gcc.misc-tests/gcov-8.c,
gcc.misc-tests/gcov-9.c, gcc.misc-tests/gcov-pr83813.c,
gcc.misc-tests/gcov-pr84758.c, gcc.misc-tests/gcov-pr85217.c,
gcc.misc-tests/gcov-pr85332.c, gcc.misc-tests/gcov-pr85338.c,
gcc.misc-tests/gcov-pr85350.c, gcc.misc-tests/gcov-pr85372.c,
gcc.misc-tests/gcov-pr86536.c, gcc.misc-tests/gcov-pr90574-1.c,
gcc.misc-tests/gcov-pr90574-2.c, gdc.dg/gcov1.d,
gnat.dg/gcov/check.adb: Do not restrict to { target native }.
* lib/gcov.exp (transfer-gcda): New.
(clean-gcov-file): Delete .gcda file on target.
(run-gcov): Transfer .gcda files from target.
(Note: GCC 14 version has adjusted diff context to avoid merge
conflicts and also changes fewer tests because of new tests added
upstream since GCC 14.)
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-1.C b/gcc/testsuite/g++.dg/gcov/gcov-1.C
index ee383b480a87..40fee7992a6d 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-1.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-1.C
@@ -2,7 +2,7 @@
constructs are reported correctly by gcov. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
extern "C" void abort (void);
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-10.C b/gcc/testsuite/g++.dg/gcov/gcov-10.C
index 4c91be94ee46..d3942ceabd18 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-10.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-10.C
@@ -1,7 +1,7 @@
/* Ensure PIC sequence used for comdat functions */
/* { dg-options "-fprofile-arcs -ftest-coverage -fpic" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
/* { dg-require-effective-target fpic } */
inline int __attribute__ ((noinline)) Foo ()
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-11.C b/gcc/testsuite/g++.dg/gcov/gcov-11.C
index fa0890206f3a..243c112506ae 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-11.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-11.C
@@ -2,7 +2,7 @@
distinct from unexecuted normal regions. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
void Baz (int i)
{
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-12.C b/gcc/testsuite/g++.dg/gcov/gcov-12.C
index 9f2b29b4da50..da694bc7c91b 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-12.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-12.C
@@ -1,6 +1,6 @@
/* PR 51113 */
/* { dg-options "-fprofile-arcs -ftest-coverage -fpic -fno-implicit-constexpr" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
/* { dg-additional-sources "gcovpart-12b.C" } */
struct Foo {
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-13.C b/gcc/testsuite/g++.dg/gcov/gcov-13.C
index c262a71f5364..45668f65cd3a 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-13.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-13.C
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
void Baz (int i)
{
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-14.C b/gcc/testsuite/g++.dg/gcov/gcov-14.C
index b069d0e1881c..ff16f399a03b 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-14.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-14.C
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage -Ofast" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
#include <iostream>
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-15.C b/gcc/testsuite/g++.dg/gcov/gcov-15.C
index fcd16b00b1c4..53752449b73f 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-15.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-15.C
@@ -1,6 +1,6 @@
// PR gcov-profile/64634
// { dg-options "-fprofile-arcs -ftest-coverage" }
-// { dg-do run { target native } }
+// { dg-do run }
void catchEx () // count(1)
{
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-16.C b/gcc/testsuite/g++.dg/gcov/gcov-16.C
index f09d4060cbdb..beea2e55e1ae 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-16.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-16.C
@@ -1,6 +1,6 @@
// PR gcov-profile/64634
// { dg-options "-fprofile-arcs -ftest-coverage" }
-// { dg-do run { target native } }
+// { dg-do run }
int main()
{
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-17.C b/gcc/testsuite/g++.dg/gcov/gcov-17.C
index efe019599a59..19d0197ba776 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-17.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-17.C
@@ -1,5 +1,5 @@
/* { dg-options "--coverage -std=c++11" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
template <class T> class Foo
{
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-18.C b/gcc/testsuite/g++.dg/gcov/gcov-18.C
index 620aef126995..ecc4716cbfa7 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-18.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-18.C
@@ -1,5 +1,5 @@
/* { dg-options "--coverage -fcondition-coverage -std=c++11" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
#include <vector>
#include <stdexcept>
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-2.C b/gcc/testsuite/g++.dg/gcov/gcov-2.C
index 05db15de7cc5..9fdcfa84fbdd 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-2.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-2.C
@@ -1,7 +1,7 @@
/* Verify line coverage counts for simple member functions. */
/* { dg-options "-fprofile-arcs -ftest-coverage -fno-implicit-constexpr" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
class C {
public:
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-3.C b/gcc/testsuite/g++.dg/gcov/gcov-3.C
index aff063a4b90f..c128757f281b 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-3.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-3.C
@@ -2,7 +2,7 @@
within a header file. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
#include "gcov-3.h"
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-4.C b/gcc/testsuite/g++.dg/gcov/gcov-4.C
index 2f83ff1becc6..e148d5c95538 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-4.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-4.C
@@ -4,7 +4,7 @@
#include <stdio.h>
/* { dg-options "-fprofile-arcs -ftest-coverage -fno-exceptions" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
class foo {
public:
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-5.C b/gcc/testsuite/g++.dg/gcov/gcov-5.C
index 9ada41802caa..fc70b3bee6f7 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-5.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-5.C
@@ -5,7 +5,7 @@
#include <stdlib.h>
/* { dg-options "-fprofile-arcs -ftest-coverage -fno-inline" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
class A {
int count;
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-7.C b/gcc/testsuite/g++.dg/gcov/gcov-7.C
index 334db1837c85..6240a8fb4278 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-7.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-7.C
@@ -3,7 +3,7 @@
declaration. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
struct foo
{
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-8.C b/gcc/testsuite/g++.dg/gcov/gcov-8.C
index 1c97c35d8c1e..bbb075ccea6b 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-8.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-8.C
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
class C {
public:
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-dump-1.C b/gcc/testsuite/g++.dg/gcov/gcov-dump-1.C
index 774a7269ff2c..8aba2afadcd3 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-dump-1.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-dump-1.C
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-generate -ftest-coverage " } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int value;
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-dump-2.C b/gcc/testsuite/g++.dg/gcov/gcov-dump-2.C
index e748989d2c0b..f50451cf0769 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-dump-2.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-dump-2.C
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-generate -ftest-coverage " } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int value;
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-threads-1.C b/gcc/testsuite/g++.dg/gcov/gcov-threads-1.C
index 3ae00789439b..54fcdcab39c2 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-threads-1.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-threads-1.C
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage -pthread -fprofile-update=atomic" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
/* { dg-require-effective-target profile_update_atomic } */
#include <stdint.h>
diff --git a/gcc/testsuite/g++.dg/gcov/loop.C b/gcc/testsuite/g++.dg/gcov/loop.C
index e63cb92e6e6d..6d5e4a8632a4 100644
--- a/gcc/testsuite/g++.dg/gcov/loop.C
+++ b/gcc/testsuite/g++.dg/gcov/loop.C
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
unsigned
loop (unsigned n, int value) /* count(14.0k) */
diff --git a/gcc/testsuite/g++.dg/gcov/pr16855-priority.C b/gcc/testsuite/g++.dg/gcov/pr16855-priority.C
index c7a58397bb91..bd6acd2c3e84 100644
--- a/gcc/testsuite/g++.dg/gcov/pr16855-priority.C
+++ b/gcc/testsuite/g++.dg/gcov/pr16855-priority.C
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
/* { dg-require-effective-target init_priority } */
#include <stdlib.h>
diff --git a/gcc/testsuite/g++.dg/gcov/pr16855.C b/gcc/testsuite/g++.dg/gcov/pr16855.C
index f9b86a40001f..5457f4fe3623 100644
--- a/gcc/testsuite/g++.dg/gcov/pr16855.C
+++ b/gcc/testsuite/g++.dg/gcov/pr16855.C
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
/* See PR91087 for information on Darwin xfails. */
diff --git a/gcc/testsuite/g++.dg/gcov/pr84548.C b/gcc/testsuite/g++.dg/gcov/pr84548.C
index 3b60b90e2a26..a83f4cc8b1af 100644
--- a/gcc/testsuite/g++.dg/gcov/pr84548.C
+++ b/gcc/testsuite/g++.dg/gcov/pr84548.C
@@ -1,6 +1,6 @@
// PR gcov-profile/84548
// { dg-options "-fprofile-arcs -ftest-coverage" }
-// { dg-do run { target native } }
+// { dg-do run }
// TODO: add support for groups to gcov.exp script
struct A { static int foo () { return 1; }; static int bar () {
diff --git a/gcc/testsuite/g++.dg/gcov/pr86109.C b/gcc/testsuite/g++.dg/gcov/pr86109.C
index 9052d2e5a042..63549d68509c 100644
--- a/gcc/testsuite/g++.dg/gcov/pr86109.C
+++ b/gcc/testsuite/g++.dg/gcov/pr86109.C
@@ -1,6 +1,6 @@
/* { dg-options "-fprofile-arcs -ftest-coverage -std=c++11" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int main()
{
diff --git a/gcc/testsuite/g++.dg/gcov/pr88045.C b/gcc/testsuite/g++.dg/gcov/pr88045.C
index 1b077a5e61a2..9961e9d16a5e 100644
--- a/gcc/testsuite/g++.dg/gcov/pr88045.C
+++ b/gcc/testsuite/g++.dg/gcov/pr88045.C
@@ -1,6 +1,6 @@
// PR gcov-profile/88045
// { dg-options "-fprofile-arcs -ftest-coverage -std=c++11" }
-// { dg-do run { target native } }
+// { dg-do run }
#include <numeric>
#include <vector>
diff --git a/gcc/testsuite/g++.dg/gcov/pr88263-2.C b/gcc/testsuite/g++.dg/gcov/pr88263-2.C
index f0cf15f5d0a3..a4ddf776a0d8 100644
--- a/gcc/testsuite/g++.dg/gcov/pr88263-2.C
+++ b/gcc/testsuite/g++.dg/gcov/pr88263-2.C
@@ -1,6 +1,6 @@
// PR gcov-profile/88263
// { dg-options "-fprofile-arcs -ftest-coverage -std=c++11" }
-// { dg-do run { target native } }
+// { dg-do run }
#include <sstream>
diff --git a/gcc/testsuite/g++.dg/gcov/pr88263.C b/gcc/testsuite/g++.dg/gcov/pr88263.C
index 854772f0594c..37943a3fe40f 100644
--- a/gcc/testsuite/g++.dg/gcov/pr88263.C
+++ b/gcc/testsuite/g++.dg/gcov/pr88263.C
@@ -1,6 +1,6 @@
// PR gcov-profile/88263
// { dg-options "-fprofile-arcs -ftest-coverage -std=c++11" }
-// { dg-do run { target native } }
+// { dg-do run }
#include <sstream>
diff --git a/gcc/testsuite/g++.dg/gcov/pr97069.C b/gcc/testsuite/g++.dg/gcov/pr97069.C
index 040e336662a9..9171399235e1 100644
--- a/gcc/testsuite/g++.dg/gcov/pr97069.C
+++ b/gcc/testsuite/g++.dg/gcov/pr97069.C
@@ -1,6 +1,6 @@
// PR gcov-profile/97069
// { dg-options "--coverage" }
-// { dg-do run { target native } }
+// { dg-do run }
# 0 "pr97069.C"
# 0 "<built-in>"
diff --git a/gcc/testsuite/g++.dg/gcov/pr98273.C b/gcc/testsuite/g++.dg/gcov/pr98273.C
index bfa83cbe4d00..45cd476ed24d 100644
--- a/gcc/testsuite/g++.dg/gcov/pr98273.C
+++ b/gcc/testsuite/g++.dg/gcov/pr98273.C
@@ -1,7 +1,7 @@
/* PR gcov-profile/98273 */
/* { dg-options "--coverage -std=c++11" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int
main ()
diff --git a/gcc/testsuite/g++.dg/gcov/ternary.C b/gcc/testsuite/g++.dg/gcov/ternary.C
index 9b8e34644b46..5ad2b2c6a4e1 100644
--- a/gcc/testsuite/g++.dg/gcov/ternary.C
+++ b/gcc/testsuite/g++.dg/gcov/ternary.C
@@ -1,5 +1,5 @@
// { dg-options "-fprofile-arcs -ftest-coverage" }
-// { dg-do run { target native } }
+// { dg-do run }
int b, c, d, e;
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-1.c b/gcc/testsuite/gcc.misc-tests/gcov-1.c
index 99a02790dee8..e6606f99ffae 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-1.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-1.c
@@ -1,7 +1,7 @@
/* Test Gcov basics. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
void noop ()
{
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-10.c b/gcc/testsuite/gcc.misc-tests/gcov-10.c
index bd1d418f378a..8a8370228b99 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-10.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-10.c
@@ -1,7 +1,7 @@
/* Test gcov block mode. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int main ()
{
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-10b.c b/gcc/testsuite/gcc.misc-tests/gcov-10b.c
index 148d779fdb35..2a4f7a3b25ce 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-10b.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-10b.c
@@ -1,7 +1,7 @@
/* Test gcov block mode. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int main ()
{
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-11.c b/gcc/testsuite/gcc.misc-tests/gcov-11.c
index a1037a552a94..153a8d2e3965 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-11.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-11.c
@@ -1,7 +1,7 @@
/* Test gcov block mode. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int one = 1; /* subvert constant folder. */
int zero = 0;
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-12.c b/gcc/testsuite/gcc.misc-tests/gcov-12.c
index f3d6924c9803..2428b8f990e8 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-12.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-12.c
@@ -1,6 +1,6 @@
/* Test gcov weak ellision. */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
/* { dg-require-weak "" } */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-13.c b/gcc/testsuite/gcc.misc-tests/gcov-13.c
index b42b904ef3e2..b1f0d79ddff4 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-13.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-13.c
@@ -1,6 +1,6 @@
/* Test gcov weak ellision. */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
/* { dg-require-weak "" } */
/* { dg-additional-sources "gcovpart-13b.c" } */
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-14.c b/gcc/testsuite/gcc.misc-tests/gcov-14.c
index 61a9191c0687..847b09cc13bf 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-14.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-14.c
@@ -1,6 +1,6 @@
/* Test gcov extern inline. */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
/* { dg-options "-O2 -fprofile-arcs -ftest-coverage -fgnu89-inline" } */
/* The following line arranges that Darwin has behavior like elf weak import. */
/* { dg-additional-options "-Wl,-U,_Foo" { target *-*-darwin* } } */
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-15.c b/gcc/testsuite/gcc.misc-tests/gcov-15.c
index 04273fcec425..d1a66b2ccc1f 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-15.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-15.c
@@ -1,7 +1,7 @@
/* Test gcov multiple paths to file. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
#if !RECURSIVE
#define RECURSIVE 1
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-16.c b/gcc/testsuite/gcc.misc-tests/gcov-16.c
index 738113c92cb8..5a6a723364f6 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-16.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-16.c
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
void
bar (void)
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-17.c b/gcc/testsuite/gcc.misc-tests/gcov-17.c
index e38860808445..c937facf1f2c 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-17.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-17.c
@@ -22,7 +22,7 @@ by both branches of the condition in <bb 3>.
*/
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
unsigned int
UuT (void)
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-18.c b/gcc/testsuite/gcc.misc-tests/gcov-18.c
index ae1017866db9..8c42e63a6f96 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-18.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-18.c
@@ -3,7 +3,7 @@
just once. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int a = 0;
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-19.c b/gcc/testsuite/gcc.misc-tests/gcov-19.c
index 44e2f135e2ae..17d6dde87c68 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-19.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-19.c
@@ -1,5 +1,5 @@
/* { dg-options "-fcondition-coverage -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
/* Some side effect to stop branches from being pruned. */
int x = 0;
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-1a.c b/gcc/testsuite/gcc.misc-tests/gcov-1a.c
index 2b9fabce66c9..9279b7855945 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-1a.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-1a.c
@@ -1,7 +1,7 @@
/* Test Gcov basics. */
/* { dg-options "-fprofile-arcs -ftest-coverage -fprofile-abs-path" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
void noop ()
{
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-2.c b/gcc/testsuite/gcc.misc-tests/gcov-2.c
index aa3e4b74e902..dde8f8b7926a 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-2.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-2.c
@@ -1,7 +1,7 @@
/* Test Gcov basics. */
/* { dg-options "-fprofile-arcs -ftest-coverage -g" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
void noop ()
{
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-20.c b/gcc/testsuite/gcc.misc-tests/gcov-20.c
index ca8c12aad2bc..b1357ca47f3f 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-20.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-20.c
@@ -1,5 +1,5 @@
/* { dg-options "-fcondition-coverage -ftest-coverage -fprofile-update=atomic" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
/* { dg-require-effective-target profile_update_atomic } */
/* Some side effect to stop branches from being pruned */
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-22.c b/gcc/testsuite/gcc.misc-tests/gcov-22.c
index 7ca78467ca31..0c8aba6996da 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-22.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-22.c
@@ -1,5 +1,5 @@
/* { dg-options "-fcondition-coverage -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
#include <setjmp.h>
jmp_buf buf;
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-24.c b/gcc/testsuite/gcc.misc-tests/gcov-24.c
index 395099bd7ae3..335857da30cc 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-24.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-24.c
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int main()
{
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-3.c b/gcc/testsuite/gcc.misc-tests/gcov-3.c
index 5b07dd74bd1b..5107f89d324a 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-3.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-3.c
@@ -1,4 +1,4 @@
-/* { dg-do run { target native } } */
+/* { dg-do run } */
/* { dg-require-effective-target label_values } */
/* Test Gcov with computed gotos.
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-4.c b/gcc/testsuite/gcc.misc-tests/gcov-4.c
index da7929ef7fcd..f792538e1f54 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-4.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-4.c
@@ -2,7 +2,7 @@
correctly by gcov. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
extern void abort (void);
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-4b.c b/gcc/testsuite/gcc.misc-tests/gcov-4b.c
index da98749f719a..3a67b2f6bb5c 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-4b.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-4b.c
@@ -2,7 +2,7 @@
correctly by gcov. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
extern void abort (void);
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-5b.c b/gcc/testsuite/gcc.misc-tests/gcov-5b.c
index cbd3958718cc..da53879bd33b 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-5b.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-5b.c
@@ -2,7 +2,7 @@
that are large enough to hold the count. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
#define LIMIT1 7000
#define LIMIT2 7000
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-6.c b/gcc/testsuite/gcc.misc-tests/gcov-6.c
index aefab3ed33a7..9b46d64214a7 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-6.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-6.c
@@ -4,7 +4,7 @@
for call return percentages was added. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
extern void exit (int);
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-7.c b/gcc/testsuite/gcc.misc-tests/gcov-7.c
index 2e0f6e8b03c1..a5a20a0a3cd2 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-7.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-7.c
@@ -2,7 +2,7 @@
* and call return percentages for functions that call longjmp. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
#include <setjmp.h>
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-8.c b/gcc/testsuite/gcc.misc-tests/gcov-8.c
index 7223bde8374c..6e0eb918d5e4 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-8.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-8.c
@@ -6,7 +6,7 @@
*/
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int proxy (int i)
{
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-9.c b/gcc/testsuite/gcc.misc-tests/gcov-9.c
index 6e1b4a85c0c5..ed8d57aa9342 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-9.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-9.c
@@ -1,7 +1,7 @@
/* Test gcov block mode. */
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int main ()
{
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-pr83813.c b/gcc/testsuite/gcc.misc-tests/gcov-pr83813.c
index ac935b969f84..8604f1f72f06 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-pr83813.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-pr83813.c
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
union U
{
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-pr84758.c b/gcc/testsuite/gcc.misc-tests/gcov-pr84758.c
index 2ae6900375fa..a9530a14e24b 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-pr84758.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-pr84758.c
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int x, y;
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-pr85217.c b/gcc/testsuite/gcc.misc-tests/gcov-pr85217.c
index 86a3c4b5a129..cdc2b6fb91ef 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-pr85217.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-pr85217.c
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int a=0;
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-pr85332.c b/gcc/testsuite/gcc.misc-tests/gcov-pr85332.c
index 73e50b19fc70..081afdcb0f90 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-pr85332.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-pr85332.c
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int doit(int sel, int n, void *p)
{
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-pr85338.c b/gcc/testsuite/gcc.misc-tests/gcov-pr85338.c
index d1e16d29c7a8..8416f478348b 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-pr85338.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-pr85338.c
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
void Test(long long Val, int Amt)
{
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-pr85350.c b/gcc/testsuite/gcc.misc-tests/gcov-pr85350.c
index 0383b81fdfb6..7bb8b0a359ca 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-pr85350.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-pr85350.c
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int main (void)
{
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-pr85372.c b/gcc/testsuite/gcc.misc-tests/gcov-pr85372.c
index 7c90e68b0dce..10409bd490c4 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-pr85372.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-pr85372.c
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
/* { dg-require-effective-target indirect_jumps } */
void *buf[5];
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-pr86536.c b/gcc/testsuite/gcc.misc-tests/gcov-pr86536.c
index 481777359995..febfacd92431 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-pr86536.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-pr86536.c
@@ -1,6 +1,6 @@
// PR gcov-profile/86536
// { dg-options "-fprofile-arcs -ftest-coverage" }
-// { dg-do run { target native } }
+// { dg-do run }
// { dg-require-fork "" }
#include <stdlib.h>
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-pr90574-1.c b/gcc/testsuite/gcc.misc-tests/gcov-pr90574-1.c
index 41ac9bb3eccb..8a6fb09b831d 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-pr90574-1.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-pr90574-1.c
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int main(int argc, char **argv)
{
diff --git a/gcc/testsuite/gcc.misc-tests/gcov-pr90574-2.c b/gcc/testsuite/gcc.misc-tests/gcov-pr90574-2.c
index 2db70c96f715..1b6f4517b3eb 100644
--- a/gcc/testsuite/gcc.misc-tests/gcov-pr90574-2.c
+++ b/gcc/testsuite/gcc.misc-tests/gcov-pr90574-2.c
@@ -1,5 +1,5 @@
/* { dg-options "-fprofile-arcs -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
int main(int argc, char **argv)
{
diff --git a/gcc/testsuite/gdc.dg/gcov1.d b/gcc/testsuite/gdc.dg/gcov1.d
index 10ffa4a0e308..048001663d5f 100644
--- a/gcc/testsuite/gdc.dg/gcov1.d
+++ b/gcc/testsuite/gdc.dg/gcov1.d
@@ -1,5 +1,5 @@
/* { dg-options "-fcondition-coverage -ftest-coverage" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
/* Some side effect to stop branches from being pruned. */
int x = 0;
diff --git a/gcc/testsuite/gnat.dg/gcov/check.adb b/gcc/testsuite/gnat.dg/gcov/check.adb
index b3cb8e36b92d..737272b01c31 100644
--- a/gcc/testsuite/gnat.dg/gcov/check.adb
+++ b/gcc/testsuite/gnat.dg/gcov/check.adb
@@ -1,5 +1,5 @@
-- { dg-options "-fprofile-arcs -ftest-coverage" }
--- { dg-do run { target native } } */
+-- { dg-do run } */
procedure Check is
diff --git a/gcc/testsuite/lib/gcov.exp b/gcc/testsuite/lib/gcov.exp
index dd47d66d1b2e..eed104569be5 100644
--- a/gcc/testsuite/lib/gcov.exp
+++ b/gcc/testsuite/lib/gcov.exp
@@ -31,6 +31,23 @@ proc clean-gcov-file { testcase suffix } {
set basename [file tail $testcase]
set base [file rootname $basename]
remote_file host delete $base.$suffix
+ # The absolute path to the output when building on the host is
+ # used by the compiled program on the target to determine where
+ # the .gcda file goes there.
+ remote_file target delete [remote_file host absolute $base.$suffix]
+}
+
+# Transfer the .gcda file for a test from the target to the host.
+
+proc transfer-gcda { testcase } {
+ set basename [file tail $testcase]
+ set base [file rootname $basename]
+ # The absolute path to the output when building on the host is
+ # used by the compiled program on the target to determine where
+ # the .gcda file goes there.
+ set gcda [remote_file host absolute "$base.gcda"]
+ set gcda [remote_upload target $gcda]
+ remote_download host $gcda
}
#
@@ -606,6 +623,14 @@ proc run-gcov { args } {
if { $gcov_remove_gcda } {
verbose "Removing $testcase.gcda"
clean-gcov-file $testcase "gcda"
+ } else {
+ transfer-gcda $testcase
+ global additional_sources_used
+ if [info exists additional_sources_used] {
+ foreach srcfile $additional_sources_used {
+ transfer-gcda $srcfile
+ }
+ }
}
verbose "Running $GCOV $testcase" 2

View File

@ -0,0 +1,232 @@
commit 620c85fb709d27ab9c523f90dc027d05961fa3bd
Author: Joseph Myers <josmyers@redhat.com>
Date: Wed Jan 14 17:09:40 2026 +0000
testsuite: Fix issues with cross testing in guality tests
The guality tests expect to run (native) GDB on the target. If this
is available, there is some support for cross testing, but with
various defects and limitations, some of them fixed here.
* GUALITY_GDB_NAME doesn't get passed through to the target for remote
testing (a general limitation of the DejaGnu interface: it doesn't
support setting environment variables on the target). Not fixed
here.
* Using in-tree GDB is only appropriate when host = target, since
in-tree GDB runs on the host and the testsuite runs GDB on the
target. Fixed here. (Note that [isnative] isn't used because that
refers to build = target, and we need host = target here.)
* [transform gdb] is not appropriate because that's a cross-GDB and
the tests run GDB on the target, so need a native GDB. Fixed here.
* gdb-test (used by some guality tests) exits early in cross and
remote cases (whereas the tests running GDB directly from the test
itself via popen can already do so on the target without needing
further patches). Fixed here. There are various other fixes done
in gdb-test as well; it needs to transfer files to the target then
delete them afterwards.
* report_gdb expects to run GDB on the host when the tests run it on
the target. Fixed here.
Note: some similar fixes will also be needed for simulate-thread tests
to get them working for cross testing, but I haven't done those yet.
Tested for x86_64-pc-linux-gnu to make sure native testing isn't
broken, and with cross to aarch64-linux.
* lib/gcc-gdb-test.exp (gdb-test): Do not return early for
non-native and remote. Download executable and GDB command file
to target before running GDB there, and delete when closing
target.
(report_gdb): Use target when testing GDB availability and
version.
* g++.dg/guality/guality.exp: Only use in-tree GDB when host =
target. Do not use [transform gdb].
* gcc.dg/guality/guality.exp: Likewise.
* gfortran.dg/guality/guality.exp: Likewise.
diff --git a/gcc/testsuite/g++.dg/guality/guality.exp b/gcc/testsuite/g++.dg/guality/guality.exp
index 6de5e8091a50..695ed02b89bb 100644
--- a/gcc/testsuite/g++.dg/guality/guality.exp
+++ b/gcc/testsuite/g++.dg/guality/guality.exp
@@ -40,14 +40,17 @@ dg-init
torture-init
global GDB
+global host_triplet target_triplet
if ![info exists ::env(GUALITY_GDB_NAME)] {
if [info exists GDB] {
set guality_gdb_name "$GDB"
- } elseif { [info exists rootme] && [file exists $rootme/../gdb/gdb] } {
+ } elseif { [string equal $host_triplet $target_triplet]
+ && [info exists rootme]
+ && [file exists $rootme/../gdb/gdb] } {
# If we're doing a combined build, and gdb is available, use it.
set guality_gdb_name "$rootme/../gdb/gdb"
} else {
- set guality_gdb_name "[transform gdb]"
+ set guality_gdb_name "gdb"
}
setenv GUALITY_GDB_NAME "$guality_gdb_name"
}
diff --git a/gcc/testsuite/gcc.dg/guality/guality.exp b/gcc/testsuite/gcc.dg/guality/guality.exp
index 0dc8f10762d7..4d342aa51658 100644
--- a/gcc/testsuite/gcc.dg/guality/guality.exp
+++ b/gcc/testsuite/gcc.dg/guality/guality.exp
@@ -40,14 +40,17 @@ dg-init
torture-init
global GDB
+global host_triplet target_triplet
if ![info exists ::env(GUALITY_GDB_NAME)] {
if [info exists GDB] {
set guality_gdb_name "$GDB"
- } elseif { [info exists rootme] && [file exists $rootme/../gdb/gdb] } {
+ } elseif { [string equal $host_triplet $target_triplet]
+ && [info exists rootme]
+ && [file exists $rootme/../gdb/gdb] } {
# If we're doing a combined build, and gdb is available, use it.
set guality_gdb_name "$rootme/../gdb/gdb"
} else {
- set guality_gdb_name "[transform gdb]"
+ set guality_gdb_name "gdb"
}
setenv GUALITY_GDB_NAME "$guality_gdb_name"
}
diff --git a/gcc/testsuite/gfortran.dg/guality/guality.exp b/gcc/testsuite/gfortran.dg/guality/guality.exp
index 105e08a70d88..3ee157abf7b3 100644
--- a/gcc/testsuite/gfortran.dg/guality/guality.exp
+++ b/gcc/testsuite/gfortran.dg/guality/guality.exp
@@ -21,14 +21,17 @@ dg-init
torture-init
global GDB
+global host_triplet target_triplet
if ![info exists ::env(GUALITY_GDB_NAME)] {
if [info exists GDB] {
set guality_gdb_name "$GDB"
- } elseif { [info exists rootme] && [file exists $rootme/../gdb/gdb] } {
+ } elseif { [string equal $host_triplet $target_triplet]
+ && [info exists rootme]
+ && [file exists $rootme/../gdb/gdb] } {
# If we're doing a combined build, and gdb is available, use it.
set guality_gdb_name "$rootme/../gdb/gdb"
} else {
- set guality_gdb_name "[transform gdb]"
+ set guality_gdb_name "gdb"
}
setenv GUALITY_GDB_NAME "$guality_gdb_name"
}
diff --git a/gcc/testsuite/lib/gcc-gdb-test.exp b/gcc/testsuite/lib/gcc-gdb-test.exp
index 942853f183e6..f7c1da8fae25 100644
--- a/gcc/testsuite/lib/gcc-gdb-test.exp
+++ b/gcc/testsuite/lib/gcc-gdb-test.exp
@@ -27,8 +27,6 @@
# the literal string with extra whitespace removed.
# Argument 3 handles expected failures and the like
proc gdb-test { useline args } {
- if { ![isnative] || [is_remote target] } { return }
-
if { [llength $args] >= 4 } {
switch [dg-process-target [lindex $args 3]] {
"S" { }
@@ -80,11 +78,17 @@ proc gdb-test { useline args } {
puts $fd "quit"
close $fd
- send_log "Spawning: $gdb_name -nx -nw -quiet -batch -x $cmd_file ./$output_file\n"
- set res [remote_spawn target "$gdb_name -nx -nw -quiet -batch -x $cmd_file ./$output_file"]
+ set cmd_file_remote [remote_download target $cmd_file]
+ set output_file_remote [remote_download target $output_file]
+ send_log "Spawning: $gdb_name -nx -nw -quiet -batch -x $cmd_file_remote $output_file_remote\n"
+ set res [remote_spawn target "$gdb_name -nx -nw -quiet -batch -x $cmd_file_remote $output_file_remote"]
if { $res < 0 || $res == "" } {
unsupported "$testname"
file delete $cmd_file
+ if { [is_remote target] } {
+ remote_file target delete $cmd_file_remote
+ remote_file target delete $output_file_remote
+ }
return
}
@@ -94,6 +98,10 @@ proc gdb-test { useline args } {
unsupported "$testname"
remote_close target
file delete $cmd_file
+ if { [is_remote target] } {
+ remote_file target delete $cmd_file_remote
+ remote_file target delete $output_file_remote
+ }
return
}
# print var; print expected
@@ -110,6 +118,10 @@ proc gdb-test { useline args } {
}
remote_close target
file delete $cmd_file
+ if { [is_remote target] } {
+ remote_file target delete $cmd_file_remote
+ remote_file target delete $output_file_remote
+ }
return
}
# ptype var;
@@ -131,12 +143,20 @@ proc gdb-test { useline args } {
}
remote_close target
file delete $cmd_file
+ if { [is_remote target] } {
+ remote_file target delete $cmd_file_remote
+ remote_file target delete $output_file_remote
+ }
return
}
timeout {
unsupported "$testname"
remote_close target
file delete $cmd_file
+ if { [is_remote target] } {
+ remote_file target delete $cmd_file_remote
+ remote_file target delete $output_file_remote
+ }
return
}
}
@@ -144,6 +164,10 @@ proc gdb-test { useline args } {
unsupported "$testname"
remote_close target
file delete $cmd_file
+ if { [is_remote target] } {
+ remote_file target delete $cmd_file_remote
+ remote_file target delete $output_file_remote
+ }
return
}
@@ -152,15 +176,18 @@ proc gdb-test { useline args } {
# Argument 1 is the location where gdb is used
#
proc report_gdb { gdb loc } {
- if { [catch { exec which $gdb } msg] } {
- send_log "gdb not found in $loc: $msg\n"
+ set status [remote_exec target "which" "$gdb"]
+ set gdb [string trim [lindex $status 1]]
+ if { [lindex $status 0] != 0 } {
+ send_log "gdb not found in $loc: $gdb\n"
return
}
- set gdb [exec which $gdb]
send_log "gdb used in $loc: $gdb\n"
send_log "gdb used in $loc: "
- if { [catch { exec $gdb -v } gdb_version] } {
+ set status [remote_exec target "$gdb" "-v"]
+ set gdb_version [lindex $status 1]
+ if { [lindex $status 0] != 0 } {
send_log "getting version failed:\n"
} else {
send_log "version:\n"

View File

@ -0,0 +1,69 @@
commit 5bebe71d30b9c7d1479a9b8c0de342bf3ada4b8b
Author: Joseph Myers <josmyers@redhat.com>
Date: Mon Jan 19 21:16:46 2026 +0000
testsuite: Do not restrict five tests to { target native }
Five miscellaneous tests use { target native }, while not doing
anything that actually needs some kind of special handling for cross
testing. Remove the { target native } restriction from those tests.
Tested for x86_64-pc-linux-gnu, and with cross to aarch64-linux.
* g++.old-deja/g++.mike/eh30.C, g++.old-deja/g++.mike/p4750.C,
g++.old-deja/g++.robertl/eb106.C, g++.old-deja/g++.robertl/eb83.C,
gcc.dg/20020201-1.c: Do not use { target native }.
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh30.C b/gcc/testsuite/g++.old-deja/g++.mike/eh30.C
index 848809245c14..31c2c856f0c2 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/eh30.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/eh30.C
@@ -1,4 +1,4 @@
-// { dg-do assemble { target native } }
+// { dg-do assemble }
// { dg-options "-fexceptions -fPIC -S" }
int
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4750.C b/gcc/testsuite/g++.old-deja/g++.mike/p4750.C
index ccf462be00d4..f9353e529fab 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/p4750.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p4750.C
@@ -1,4 +1,4 @@
-// { dg-do assemble { target native } }
+// { dg-do assemble }
// { dg-options "-fpic -pedantic-errors -S" }
// prms-id: 4750
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb106.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb106.C
index b341cff55023..3f4dce099fe8 100644
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb106.C
+++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb106.C
@@ -1,4 +1,4 @@
-// { dg-do assemble { target native } }
+// { dg-do assemble }
// { dg-options "-O2 -fPIC " }
struct T
{
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb83.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb83.C
index 47cf5b88f041..41e8ff629979 100644
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb83.C
+++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb83.C
@@ -1,4 +1,4 @@
-// { dg-do run { target native } }
+// { dg-do run }
// { dg-options "-fprofile-arcs -ftest-coverage" }
void
test_swap(int& x, int& y) throw()
diff --git a/gcc/testsuite/gcc.dg/20020201-1.c b/gcc/testsuite/gcc.dg/20020201-1.c
index 1cb2a8788044..fb48a230e962 100644
--- a/gcc/testsuite/gcc.dg/20020201-1.c
+++ b/gcc/testsuite/gcc.dg/20020201-1.c
@@ -5,7 +5,7 @@
call-clobbered global pointer. */
/* { dg-options "-fprofile-arcs" } */
-/* { dg-do run { target native } } */
+/* { dg-do run } */
#include <stdlib.h>

View File

@ -0,0 +1,115 @@
commit 3119cfc9118eb8545dac9bf765c93f762ad8794a
Author: Joseph Myers <josmyers@redhat.com>
Date: Wed Jan 14 17:10:33 2026 +0000
testsuite: Enable cross testing for simulate-thread tests
The simulate-thread tests exit early in cross and remote cases. Apply
fixes similar to (but affecting separate code) those recently posted
for the guality tests: do not use [transform gdb] since that's a cross
GDB and the tests expect to run GDB on the target, test existence on
the target not the build system, and copy required files to the target
(deleting them later).
Tested for x86_64-pc-linux-gnu to make sure native testing isn't
broken, and with cross to aarch64-linux.
* lib/gcc-dg.exp (gdb-exists): Do not use [transform gdb]. Run
selected GDB with -v on target rather than testing for existence
on build system.
* lib/gcc-simulate-thread.exp (simulate-thread): Do not return
early for non-native and remote. Download executable and GDB
command file to target before running GDB there, and delete when
closing target.
diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
index 87dddb8cd8ac..f2e5228fff58 100644
--- a/gcc/testsuite/lib/gcc-dg.exp
+++ b/gcc/testsuite/lib/gcc-dg.exp
@@ -1374,11 +1374,12 @@ proc gdb-exists { args } {
if [info exists GDB] {
setenv GDB_FOR_GCC_TESTING "$GDB"
} else {
- setenv GDB_FOR_GCC_TESTING "[transform gdb]"
+ setenv GDB_FOR_GCC_TESTING "gdb"
}
}
}
- if { [which $::env(GDB_FOR_GCC_TESTING)] != 0 } {
+ if { [lindex [remote_exec target "$::env(GDB_FOR_GCC_TESTING)" "-v"] 0]
+ == 0 } {
return 1;
}
return 0;
diff --git a/gcc/testsuite/lib/gcc-simulate-thread.exp b/gcc/testsuite/lib/gcc-simulate-thread.exp
index 115b636e603d..dcbcd3dc08ef 100644
--- a/gcc/testsuite/lib/gcc-simulate-thread.exp
+++ b/gcc/testsuite/lib/gcc-simulate-thread.exp
@@ -24,8 +24,6 @@ load_lib timeout.exp
# Call 'fail' if a given test printed "FAIL:", otherwise call 'pass'.
proc simulate-thread { args } {
- if { ![isnative] || [is_remote target] } { return }
-
if { [llength $args] == 1 } {
switch [dg-process-target [lindex $args 0]] {
"F" { setup_xfail "*-*-*" }
@@ -49,10 +47,16 @@ proc simulate-thread { args } {
set message "thread simulation test"
- send_log "Spawning: $gdb_name -nx -nw -batch -x $cmd_file ./$exec_file\n"
- set res [remote_spawn target "$gdb_name -nx -nw -batch -x $cmd_file ./$exec_file"]
+ set cmd_file_remote [remote_download target $cmd_file]
+ set exec_file_remote [remote_download target $exec_file]
+ send_log "Spawning: $gdb_name -nx -nw -batch -x $cmd_file_remote $exec_file_remote\n"
+ set res [remote_spawn target "$gdb_name -nx -nw -batch -x $cmd_file_remote $exec_file_remote"]
if { $res < 0 || $res == "" } {
unsupported "$testcase $message"
+ if { [is_remote target] } {
+ remote_file target delete $cmd_file_remote
+ remote_file target delete $exec_file_remote
+ }
return
}
@@ -62,11 +66,19 @@ proc simulate-thread { args } {
# Too old GDB
-re "Unhandled dwarf expression|Error in sourced command file" {
unsupported "$testcase $message"
+ if { [is_remote target] } {
+ remote_file target delete $cmd_file_remote
+ remote_file target delete $exec_file_remote
+ }
remote_close target
return
}
-re "FAIL:" {
fail "$testcase $message"
+ if { [is_remote target] } {
+ remote_file target delete $cmd_file_remote
+ remote_file target delete $exec_file_remote
+ }
remote_close target
return
}
@@ -79,11 +91,19 @@ proc simulate-thread { args } {
}
timeout {
fail "$testcase $message"
+ if { [is_remote target] } {
+ remote_file target delete $cmd_file_remote
+ remote_file target delete $exec_file_remote
+ }
remote_close target
return
}
}
+ if { [is_remote target] } {
+ remote_file target delete $cmd_file_remote
+ remote_file target delete $exec_file_remote
+ }
remote_close target
if {$gdb_worked} {
pass "$testcase $message"

View File

@ -0,0 +1,63 @@
commit e373a57b07de9290e8e3f6913f4179404f0b886e
Author: Joseph Myers <josmyers@redhat.com>
Date: Mon Jan 26 16:49:29 2026 +0000
testsuite: Make profopt-execute also copy profile data for dg-additional-sources
Most gcc.dg/tree-prof tests work correctly in environments where .gcda
files from the first run need to be copied from the target, because
there is existing code in profopt-execute to do so. A few tests using
dg-additional-sources fail because that code only copies the .gcda
file for the main test source file. Add similar code to copy it for
any sources listed in dg-additional-sources as well.
The use of additional_sources_used is consistent with what
profopt-target-cleanup does. It turns out to require the added call
to cleanup-after-saved-dg-test to avoid additional_sources_used
leaking from one test into the next.
Tested for x86_64-pc-linux-gnu to make sure native testing isn't
broken, and with cross to aarch64-linux.
* lib/profopt.exp (profopt-execute): Also copy profile data from
target for additional sources. Call cleanup-after-saved-dg-test
before normal return.
diff --git a/gcc/testsuite/lib/profopt.exp b/gcc/testsuite/lib/profopt.exp
index 3188ba8a5348..c9f5ae53d499 100644
--- a/gcc/testsuite/lib/profopt.exp
+++ b/gcc/testsuite/lib/profopt.exp
@@ -312,6 +312,7 @@ proc profopt-execute { src } {
global generate_final_code use_final_code
global verbose
global testname_with_flags
+ global additional_sources_used
if ![info exists profile_option] {
error "No profile option specified for first compile."
@@ -474,6 +475,19 @@ proc profopt-execute { src } {
set missing_file 1
fail "$testcase execution: file $bprefix$base.$ext does not exist, $option $profile_option"
}
+ if [info exists additional_sources_used] {
+ foreach srcfile $additional_sources_used {
+ set add_basename [file tail $srcfile]
+ set add_base [file rootname $add_basename]
+ remote_upload target $tmpdir/$bprefix$add_base.$ext
+ set files [glob -nocomplain $bprefix$add_base.$ext]
+ if { $files == "" } {
+ set status "fail"
+ set missing_file 1
+ fail "$testcase execution: file $bprefix$add_base.$ext does not exist, $option $profile_option"
+ }
+ }
+ }
}
}
if { $missing_file == 0 } {
@@ -606,4 +620,5 @@ proc profopt-execute { src } {
}
}
unset testname_with_flags
+ cleanup-after-saved-dg-test
}