[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Buildbot failure in Wildebeest Builder on whole buildset



On 30-03-19 00:42, Mark Wielaard wrote:
> On Fri, 2019-03-29 at 21:42 +0000, buildbot@builder.wildebeest.org
> wrote:
>> The Buildbot has detected a failed build on builder whole buildset
>> while building dwz.
>> Full details are available at:
>>     https://builder.wildebeest.org/buildbot/#builders/19/builds/34
>>
>> Buildbot URL: https://builder.wildebeest.org/buildbot/
>>
>> Worker for this Build: fedora-x86_64
> 
> Which is Fedora 29. The other builders that fail are also Fedora based.
> The Debian and CentOS builds still seem to work.
> 
> The problem is this commit:
> 
> commit 388977c1ccdaf376540a651ee34cdf709891e0fe
> Author: Tom de Vries <tdevries@suse.de>
> Date:   Fri Mar 29 21:55:24 2019 +0100
> 
>     Compile dwz-for-tests with -U__GNUC__
> 
> Undefining __GNUC__ causes issues with some include files,
> specifically:
> 
> In file included from /usr/include/bits/floatn.h:119,
>                  from /usr/include/stdlib.h:55,
>                  from dwz.c:30
> 
> __GNUC__ defines the major version of GCC (8 on Fedora 29).
> 
> Since GCC 7 the compiler defines the builtin types _Float32 and
> _Float64 so floatn.h doesn't have to define them. But since we undefine
> __GNUC__ the header cannot check the GCC version anymore and tries to
> define them anyway. Causing the compile error.
> 

Thanks for the investigation.

> I think the commit should just be reverted.
> It isn't clear to me what it really tries to check for.

I'm trying to make sure that dwz builds in !__GNUC__ mode.

Fixed in attached commit, buildbot status back to all clear.

Thanks,
- Tom

Fix dwz-for-test build failure on fedora

Commit "Compile dwz-for-tests with -U__GNUC__" makes sure we we trigger the
!__GNUC__ path.  But -U__GNUC__ makes compilation of dwz-for-test failure on
fedora.

Instead, generate sources for dwz-for-test with __GNUC__ replaced by
NOT_DEFINED.

2019-03-30  Tom de Vries  <tdevries@suse.de>

	* Makefile (DWZ_TEST_SOURCES): New variable.
	(%-for-test.c): New target.  Generate %-for-test.c from %.c with
	__GNUC__ replaced by NOT_DEFINED.
	(dwz-for-test): Remove -U__GNUC__.  Use DWZ_TEST_SOURCES.
	(check): Remove DWZ_TEST_SOURCES when done.

---
 Makefile | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/Makefile b/Makefile
index 0ce4482..7150d4a 100644
--- a/Makefile
+++ b/Makefile
@@ -29,9 +29,14 @@ dw2-restrict:
 py-section-script:
 	$(CC) $(TEST_SRC)/py-section-script.s -o $@ -g || touch $@
 
-dwz-for-test:
-	$(CC) $(patsubst %.o,%.c,$(OBJECTS)) -O2 -g -lelf -o $@ -Wall -W \
-	  -D_FILE_OFFSET_BITS=64 -DDWZ_VERSION='"for-test"' -U__GNUC__
+DWZ_TEST_SOURCES := $(patsubst %.o,%-for-test.c,$(OBJECTS))
+
+%-for-test.c: %.c
+	sed 's/__GNUC__/NOT_DEFINED/' $< > $@
+
+dwz-for-test: $(DWZ_TEST_SOURCES)
+	$(CC) $(DWZ_TEST_SOURCES) -O2 -g -lelf -o $@ -Wall -W \
+	  -D_FILE_OFFSET_BITS=64 -DDWZ_VERSION='"for-test"'
 
 # On some systems we need to set and export DEJAGNU to suppress
 # WARNING: Couldn't find the global config file.
@@ -43,4 +48,4 @@ check: dwz $(TEST_EXECS)
 	export DEJAGNU=$(DEJAGNU); \
 	export PATH=$(PWD)/testsuite-bin:$$PATH; export LC_ALL=C; \
 	runtest --tool=dwz -srcdir testsuite $(RUNTESTFLAGS)
-	rm -Rf testsuite-bin $(TEST_EXECS)
+	rm -Rf testsuite-bin $(TEST_EXECS) $(DWZ_TEST_SOURCES)