[BUILDROBOT] Selftest failed for i686-wrs-vxworks

Thomas Schwinge thomas@codesourcery.com
Wed Oct 5 12:34:00 GMT 2016


Hi!

I've now also run into this issue, during contrib/config-list.mk testing;
log/arm-wrs-vxworks-make.out, log/i686-wrs-vxworks-make.out,
log/i686-wrs-vxworksae-make.out, log/mips-wrs-vxworks-make.out,
log/powerpc-wrs-vxworks-make.out, log/powerpc-wrs-vxworksae-make.out,
log/powerpc-wrs-vxworksmils-make.out, log/sh-wrs-vxworks-make.out,
log/sparc-wrs-vxworks-make.out:

    [...]/build-multi/arm-wrs-vxworks/./gcc/xgcc -B[...]/build-multi/arm-wrs-vxworks/./gcc/ -xc -S -c /dev/null -fself-test
    xgcc: fatal error: environment variable 'WIND_BASE' not defined
    compilation terminated.
    make[2]: *** [s-selftest] Error 1
    [...]
    make[1]: *** [all-gcc] Error 2

On Thu, 30 Jun 2016 16:09:23 -0400, David Malcolm <dmalcolm@redhat.com> wrote:
> On Thu, 2016-06-30 at 08:38 -0400, Nathan Sidwell wrote:
> > [...] WIND_BASE is expected to point at a vxworks install [...]

> [...]
> 
> Hence it appears that passing "-nostdinc" as a param will avoid the
> error: [...]
> 
> Presumably if you're explicitly building for vxworks you have a vxworks
> install, so there is a meaningful value to set WIND_BASE to, whereas if
> you don't have a vxworks install (and are merely building everything as
> a smoketest), you presumably only want to build the "gcc" subdir, since
> AFAIK you can't run then driver.
> 
> So there are at least 2 ways of fixing this:
> 
> (a) add "-nostdinc" when running the selftests i.e. to the invocations
> of GCC_FOR_TARGET in the "s-selftest" and "selftest-gdb" clauses of
> gcc/Makefile.in.
> I've verified that this fixes the issue for --target=i686-wrs-vxworks.

OK to apply the following two patches?  First, a little bit of
refactoring:

commit 0b124fda378c9dc726bd709f805dd52a7dc7c78a
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Wed Oct 5 08:06:00 2016 +0200

    In gcc/Makefile.in, factor out SELFTEST_FLAGS
    
    	gcc/
    	* Makefile.in (SELFTEST_FLAGS): New variable.
    	(s-selftest, selftest-gdb, selftest-valgrind): Use it.
---
 gcc/Makefile.in | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git gcc/Makefile.in gcc/Makefile.in
index 15c48bc..08b96a6 100644
--- gcc/Makefile.in
+++ gcc/Makefile.in
@@ -1876,6 +1876,10 @@ endif
 # This does the things that can't be done on the host machine.
 rest.cross: specs
 
+# GCC's selftests.
+# Specify a dummy input file to placate the driver.
+SELFTEST_FLAGS = -x c /dev/null -S -fself-test
+
 # Run the selftests during the build once we have a driver and a cc1,
 # so that self-test failures are caught as early as possible.
 # Use "s-selftest" to ensure that we only run the selftests if the
@@ -1883,18 +1887,19 @@ rest.cross: specs
 .PHONY: selftest
 selftest: s-selftest
 s-selftest: $(GCC_PASSES) cc1$(exeext) stmp-int-hdrs
-	$(GCC_FOR_TARGET) -xc -S -c /dev/null -fself-test
+	$(GCC_FOR_TARGET) $(SELFTEST_FLAGS)
 	$(STAMP) $@
 
 # Convenience method for running selftests under gdb:
 .PHONY: selftest-gdb
 selftest-gdb: $(GCC_PASSES) cc1$(exeext) stmp-int-hdrs
-	$(GCC_FOR_TARGET) -xc -S -c /dev/null -fself-test -wrapper gdb,--args
+	$(GCC_FOR_TARGET) $(SELFTEST_FLAGS) \
+	  -wrapper gdb,--args
 
 # Convenience method for running selftests under valgrind:
 .PHONY: selftest-valgrind
 selftest-valgrind: $(GCC_PASSES) cc1$(exeext) stmp-int-hdrs
-	$(GCC_FOR_TARGET) -xc -S -c /dev/null -fself-test \
+	$(GCC_FOR_TARGET) $(SELFTEST_FLAGS) \
 	  -wrapper valgrind,--leak-check=full
 
 # Recompile all the language-independent object files.

..., and then the real change:

commit 8ab49582c42809b385eb957c20b84d21a90e041a
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Wed Oct 5 08:08:37 2016 +0200

    Make GCC selftests work for *-wrs-vxworks-* targets
    
    	gcc/
    	Makefile.in (SELFTEST_FLAGS): Add -nostdinc.
---
 gcc/Makefile.in | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git gcc/Makefile.in gcc/Makefile.in
index 08b96a6..23623ac 100644
--- gcc/Makefile.in
+++ gcc/Makefile.in
@@ -1878,7 +1878,9 @@ rest.cross: specs
 
 # GCC's selftests.
 # Specify a dummy input file to placate the driver.
-SELFTEST_FLAGS = -x c /dev/null -S -fself-test
+# Specify -nostdinc to work around missing WIND_BASE environment variable
+# required for *-wrs-vxworks-* targets.
+SELFTEST_FLAGS = -nostdinc -x c /dev/null -S -fself-test
 
 # Run the selftests during the build once we have a driver and a cc1,
 # so that self-test failures are caught as early as possible.


Grüße
 Thomas



More information about the Gcc-patches mailing list