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 $@ \
> 
> 

Reply via email to