Your concern is valid. I guess the first step would be to agree with the upstream QEMU community on lowest common denominator tools, ideally the same as ours.
We already have a buildbot machine, we could introduce another one to detect build failures in this configuration and notify QEMU upstream as soon as possible. On Fri, 20 Jun 2014, Jan Beulich wrote: > Stefano, > > according to my looking around in the upstream tree, qemu doesn't > appear to document minimum tool versions, while we do, and > obviously this expectation we're setting extends to the upstream > qemu tree we use. Now it's not for the first time that an update of > our qemu tree introduces build regressions just because apparently > the qemu tree never gets build tested with the lowest common > denominator tools we specify. While last time this was with python, > this time it is with both make and iasl. > > For reference I'm reproducing below the adjustments I had to make, > though the primary purpose of the mail is not so much to find out > whether we and/or upstream qemu should make those changes, > but to kick off a discussion of how to avoid such problems going > forward (especially the iasl problem did cost me quite a bit of time, > not the least because with default build options the failure was > completely silent, due to standard output helpfully gettinf redirected > to /dev/null). > > Jan > > --- 2014-06-20.orig/qemu/upstream/hw/i386/acpi-dsdt.dsl > +++ 2014-06-20/qemu/upstream/hw/i386/acpi-dsdt.dsl > @@ -106,9 +106,9 @@ DefinitionBlock ( > ****************************************************************/ > > Scope(\_SB.PCI0) { > - > +/* Old iasl doesn't like this when the actual definition is also visible. > External(ISA, DeviceObj) > - > +*/ > Device(ISA) { > Name(_ADR, 0x00010000) > > --- 2014-06-20.orig/qemu/upstream/hw/i386/q35-acpi-dsdt.dsl > +++ 2014-06-20/qemu/upstream/hw/i386/q35-acpi-dsdt.dsl > @@ -72,8 +72,9 @@ DefinitionBlock ( > Name(_ADR, 0x00) > Name(_UID, 1) > > +/* Old iasl doesn't like this when the actual definition is also visible. > External(ISA, DeviceObj) > - > +*/ > // _OSC: based on sample of ACPI3.0b spec > Name(SUPP, 0) // PCI _OSC Support Field value > Name(CTRL, 0) // PCI _OSC Control Field value > --- 2014-06-20.orig/qemu/upstream/rules.mak > +++ 2014-06-20/qemu/upstream/rules.mak > @@ -34,9 +34,12 @@ expand-objs = $(strip $(sort $(filter %. > %.o: %.rc > $(call quiet-command,$(WINDRES) -I. -o $@ $<," RC $(TARGET_DIR)$@") > > +# Fallback for make 3.81 and earlier: > +or = $(if $(1),$(1),$(if $(2),$(2),$(if $(3),$(3),$(if $(4),$(4))))) > + > # If we have a CXX we might have some C++ objects, in which case we > # must link with the C++ compiler, not the plain C compiler. > -LINKPROG = $(or $(CXX),$(CC)) > +LINKPROG = $(call or,$(CXX),$(CC)) > > ifeq ($(LIBTOOL),) > LINK = $(call quiet-command,$(LINKPROG) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) > -o $@ \ > >