[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)