testsuite: Force use of -c when precompiling headers

Message ID 20231027151141.1879699-1-christophe.lyon@linaro.org
State Accepted
Headers
Series testsuite: Force use of -c when precompiling headers |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Christophe Lyon Oct. 27, 2023, 3:11 p.m. UTC
  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.lyon@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(-)
  

Comments

Mike Stump Nov. 5, 2023, 8:24 p.m. UTC | #1
On Oct 27, 2023, at 8:11 AM, Christophe Lyon <christophe.lyon@linaro.org> wrote:
> 
> 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.lyon@linaro.org>
> 
> 	gcc/testsuite/
> 	* lib/dg-pch.exp (dg-flags-pch): Add -c when generating the
> 	precompiled header.

Ok.
  

Patch

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