In some configurations of our validation setup, we always call the
compiler with -Wl,-rpath=XXX, which instructs the driver to invoke the
linker if none of -c, -S or -E is used.

This happens to be the case in the PCH tests, where dg-flags-pch sets
dg-do-what-default to precompile.

This works most of the time, in absence of any linker option, the
compiler defaults to generating a precompiled header (otherwise the
linker complains because it cannot find 'main').

This small patch forces the use of '-c' when generating the .gch file,
which is sufficient not to invoke the linker.

Arguably, this could be seen as a dejagnu bug: in gcc-dg-test-1 (in
gcc-dg.exp), we set compile_type to "precompiled_header", which is not
one of the supported values in dejagnu's default_target_compile (in
target.exp).

2023-10-27  Christophe Lyon  <christophe.l...@linaro.org>

        gcc/testsuite/
        * lib/dg-pch.exp (dg-flags-pch): Add -c when generating the
        precompiled header.
---
 gcc/testsuite/lib/dg-pch.exp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/testsuite/lib/dg-pch.exp b/gcc/testsuite/lib/dg-pch.exp
index b6fefaa0286..ae8ce3bf1e1 100644
--- a/gcc/testsuite/lib/dg-pch.exp
+++ b/gcc/testsuite/lib/dg-pch.exp
@@ -95,7 +95,7 @@ proc dg-flags-pch { subdir test otherflags options suffix } {
        set dg-do-what-default precompile
        catch { file_on_host delete "$bname$suffix" }
        gcc_copy_files "[file rootname $test]${suffix}s" "$bname$suffix"
-       dg-test -keep-output "./$bname$suffix" "$otherflags $flags" ""
+       dg-test -keep-output "./$bname$suffix" "$otherflags $flags -c" ""
 
        # For the rest, the default is to compile to .s.
        set dg-do-what-default compile
-- 
2.34.1

Reply via email to