Patchwork Makefile: Fix build breakage

login
register
mail settings
Submitter dunrong huang
Date April 29, 2013, 1:33 p.m.
Message ID <CAOZVR5ZyrU3asoL_QPzYKOqGxb6FiENu=XGhTFtcgW-pC44gpA@mail.gmail.com>
Download mbox | patch
Permalink /patch/240372/
State New
Headers show

Comments

dunrong huang - April 29, 2013, 1:33 p.m.
On Mon, Apr 29, 2013 at 4:19 PM, Paolo Bonzini <pbonzini@redhat.com> wrote:

> Il 28/04/2013 20:04, Dunrong Huang ha scritto:
> > The following error occurs when building dtc module:
> >
> >       CHK version_gen.h
> >        CC libfdt/fdt.o
> > cc1: error: dtc: No such file or directory [-Werror]
> > cc1: all warnings being treated as errors
> > make[1]: *** [libfdt/fdt.o] Error 1
> > make: *** [subdir-dtc] Error 2
> >
> > In rules.mak, "-I$(<D) -I$(@D)" was expanded to "-Idtc -I." when
> > building submodule dct. Due to the using of "-Wmissing-include-dirs,
> > a warning would be rarsed. To avoid it, use dtc as the first prerequisite
> > so that "$(^D)" was expanded to "."
> >
> > Cc: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> > Cc: Blue Swirl <blauwirbel@gmail.com>
> > Signed-off-by: Dunrong Huang <riegamaths@gmail.com>
> > ---
> >  Makefile | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/Makefile b/Makefile
> > index 8aca92f..64b0b1b 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -148,7 +148,7 @@ $(SRC_PATH)/pixman/configure:
> >  DTC_MAKE_ARGS=-I$(SRC_PATH)/dtc VPATH=$(SRC_PATH)/dtc -C dtc V="$(V)"
> LIBFDT_srcdir=$(SRC_PATH)/dtc/libfdt
> >  DTC_CFLAGS=$(CFLAGS) $(QEMU_CFLAGS) -I$(BUILD_DIR)/dtc
> -I$(SRC_PATH)/dtc -I$(SRC_PATH)/dtc/libfdt
> >
> > -subdir-dtc:dtc/libfdt dtc/tests
> > +subdir-dtc:dtc dtc/libfdt dtc/tests
> >       $(call quiet-command,$(MAKE) $(DTC_MAKE_ARGS)
> CFLAGS="$(DTC_CFLAGS)" LDFLAGS="$(LDFLAGS)" ARFLAGS="$(ARFLAGS)" CC="$(CC)"
> AR="$(AR)" LD="$(LD)" $(SUBDIR_MAKEFLAGS) libfdt/libfdt.a,)
> >
> >  dtc/%:
> >
>
> Does it work if the "-I$(<D) -I$(@D)" is added to QEMU_INCLUDES instead
> of QEMU_CFLAGS?
>
Yes,  this way works for me.

>
> Paolo
>
Paolo Bonzini - April 29, 2013, 2:22 p.m.
Il 29/04/2013 15:33, Dunrong Huang ha scritto:
> 
> Yes,  this way works for me.
> 
> diff --git a/rules.mak b/rules.mak
> index 292a422..2572070 100644
> --- a/rules.mak
> +++ b/rules.mak
> @@ -15,7 +15,7 @@ MAKEFLAGS += -rR
>  QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d
>  
>  # Same as -I$(SRC_PATH) -I., but for the nested source/object directories
> -QEMU_CFLAGS += -I$(<D) -I$(@D)
> +QEMU_INCLUDES += -I$(<D) -I$(@D)
> 
> but I don't know if it will break other build, e.g. mingw build.

Please submit it, it is a better fix.  Make sure you put "1.5" in the
subject.

Paolo
Peter Crosthwaite - April 29, 2013, 11:58 p.m.
Hi Dunrong, Paolo,

Managed to replicate using Ubuntu 12.04,

On Mon, Apr 29, 2013 at 11:33 PM, Dunrong Huang <riegamaths@gmail.com> wrote:
>
>
>
> On Mon, Apr 29, 2013 at 4:19 PM, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>
>> Il 28/04/2013 20:04, Dunrong Huang ha scritto:
>> > The following error occurs when building dtc module:
>> >
>> >       CHK version_gen.h
>> >        CC libfdt/fdt.o
>> > cc1: error: dtc: No such file or directory [-Werror]
>> > cc1: all warnings being treated as errors
>> > make[1]: *** [libfdt/fdt.o] Error 1
>> > make: *** [subdir-dtc] Error 2
>> >
>> > In rules.mak, "-I$(<D) -I$(@D)" was expanded to "-Idtc -I." when
>> > building submodule dct. Due to the using of "-Wmissing-include-dirs,
>> > a warning would be rarsed. To avoid it, use dtc as the first
>> > prerequisite
>> > so that "$(^D)" was expanded to "."
>> >
>> > Cc: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>> > Cc: Blue Swirl <blauwirbel@gmail.com>
>> > Signed-off-by: Dunrong Huang <riegamaths@gmail.com>
>> > ---
>> >  Makefile | 2 +-
>> >  1 file changed, 1 insertion(+), 1 deletion(-)
>> >
>> > diff --git a/Makefile b/Makefile
>> > index 8aca92f..64b0b1b 100644
>> > --- a/Makefile
>> > +++ b/Makefile
>> > @@ -148,7 +148,7 @@ $(SRC_PATH)/pixman/configure:
>> >  DTC_MAKE_ARGS=-I$(SRC_PATH)/dtc VPATH=$(SRC_PATH)/dtc -C dtc V="$(V)"
>> > LIBFDT_srcdir=$(SRC_PATH)/dtc/libfdt
>> >  DTC_CFLAGS=$(CFLAGS) $(QEMU_CFLAGS) -I$(BUILD_DIR)/dtc
>> > -I$(SRC_PATH)/dtc -I$(SRC_PATH)/dtc/libfdt
>> >
>> > -subdir-dtc:dtc/libfdt dtc/tests
>> > +subdir-dtc:dtc dtc/libfdt dtc/tests
>> >       $(call quiet-command,$(MAKE) $(DTC_MAKE_ARGS)
>> > CFLAGS="$(DTC_CFLAGS)" LDFLAGS="$(LDFLAGS)" ARFLAGS="$(ARFLAGS)" CC="$(CC)"
>> > AR="$(AR)" LD="$(LD)" $(SUBDIR_MAKEFLAGS) libfdt/libfdt.a,)
>> >
>> >  dtc/%:
>> >
>>
>> Does it work if the "-I$(<D) -I$(@D)" is added to QEMU_INCLUDES instead
>> of QEMU_CFLAGS?
>
> Yes,  this way works for me.
>
> diff --git a/rules.mak b/rules.mak
> index 292a422..2572070 100644
> --- a/rules.mak
> +++ b/rules.mak
> @@ -15,7 +15,7 @@ MAKEFLAGS += -rR
>  QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d
>
>  # Same as -I$(SRC_PATH) -I., but for the nested source/object directories
> -QEMU_CFLAGS += -I$(<D) -I$(@D)
> +QEMU_INCLUDES += -I$(<D) -I$(@D)
>

and patch is good. Thanks for the fix.

Regards,
Peter

> but I don't know if it will break other build, e.g. mingw build.
>>
>>
>> Paolo
>
>
>
>
> --
> Best Regards,
>
> Dunrong Huang

Patch

diff --git a/rules.mak b/rules.mak
index 292a422..2572070 100644
--- a/rules.mak
+++ b/rules.mak
@@ -15,7 +15,7 @@  MAKEFLAGS += -rR
 QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d

 # Same as -I$(SRC_PATH) -I., but for the nested source/object directories
-QEMU_CFLAGS += -I$(<D) -I$(@D)
+QEMU_INCLUDES += -I$(<D) -I$(@D)

but I don't know if it will break other build, e.g. mingw build.