diff mbox

[U-Boot] kbuild: clear VENDOR variable to fix build error on tcsh

Message ID 1413865112-7832-1-git-send-email-yamada.m@jp.panasonic.com
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Masahiro Yamada Oct. 21, 2014, 4:18 a.m. UTC
Since the environment "VENDOR" is set in tcsh, it must be cleared in our
makefile.  Otherwise, boards without CONFIG_SYS_VENDOR fail to build:

  > make CROSS_COMPILE=arm-linux-gnueabi- wandboard_quad_defconfig all
    [ snip ]
    AR      arch/arm/lib/lib.a
    CC      arch/arm/lib/eabi_compat.o
  scripts/Makefile.build:55: /home/foo/u-boot/board/unknown/wandboard/ \
  Makefile: No such file or directory
  make[2]: *** No rule to make target `/home/foo/u-boot/board/unknown/ \
  wandboard/Makefile'.  Stop.
  make[1]: *** [board/unknown/wandboard] Error 2
  make: *** [__build_one_by_one] Error 2

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Reported-by: Tom Everett <tom@khubla.com>
Reported-by: Jeroen Hofstee <jeroen@myspectrum.nl>
---

 config.mk | 2 ++
 1 file changed, 2 insertions(+)

Comments

Jeroen Hofstee Oct. 21, 2014, 7:58 a.m. UTC | #1
Thanks Masahiro,

On 21-10-14 06:18, Masahiro Yamada wrote:
> Since the environment "VENDOR" is set in tcsh, it must be cleared in our
> makefile.  Otherwise, boards without CONFIG_SYS_VENDOR fail to build:
>
>    > make CROSS_COMPILE=arm-linux-gnueabi- wandboard_quad_defconfig all
>      [ snip ]
>      AR      arch/arm/lib/lib.a
>      CC      arch/arm/lib/eabi_compat.o
>    scripts/Makefile.build:55: /home/foo/u-boot/board/unknown/wandboard/ \
>    Makefile: No such file or directory
>    make[2]: *** No rule to make target `/home/foo/u-boot/board/unknown/ \
>    wandboard/Makefile'.  Stop.
>    make[1]: *** [board/unknown/wandboard] Error 2
>    make: *** [__build_one_by_one] Error 2
>
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Reported-by: Tom Everett <tom@khubla.com>
> Reported-by: Jeroen Hofstee <jeroen@myspectrum.nl>
> ---
>
>   config.mk | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/config.mk b/config.mk
> index 2157537..00805bd 100644
> --- a/config.mk
> +++ b/config.mk
> @@ -18,6 +18,8 @@ PLATFORM_LDFLAGS :=
>   LDFLAGS :=
>   LDFLAGS_FINAL :=
>   OBJCOPYFLAGS :=
> +# clear VENDOR for tcsh
> +VENDOR :=
>   #########################################################################
>   
>   ARCH := $(CONFIG_SYS_ARCH:"%"=%)

ah, understood now. Make does suck in the complete env as make
variables but assignments will overwrite the value. make VENDOR=bla
would ignore the assignment unless overridden. The ifneq below
causes the VENDOR never to be assigned in some cases and hence
the value from the original env is used. So

Acked-by: Jeroen Hofstee <jeroen@myspectrum.nl>
Tested-by: Jeroen Hofstee <jeroen@myspectrum.nl>

Regards,
Jeroen
Tom Rini Oct. 21, 2014, 1:20 p.m. UTC | #2
On Tue, Oct 21, 2014 at 01:18:32PM +0900, Masahiro Yamada wrote:
> Since the environment "VENDOR" is set in tcsh, it must be cleared in our
> makefile.  Otherwise, boards without CONFIG_SYS_VENDOR fail to build:
> 
>   > make CROSS_COMPILE=arm-linux-gnueabi- wandboard_quad_defconfig all
>     [ snip ]
>     AR      arch/arm/lib/lib.a
>     CC      arch/arm/lib/eabi_compat.o
>   scripts/Makefile.build:55: /home/foo/u-boot/board/unknown/wandboard/ \
>   Makefile: No such file or directory
>   make[2]: *** No rule to make target `/home/foo/u-boot/board/unknown/ \
>   wandboard/Makefile'.  Stop.
>   make[1]: *** [board/unknown/wandboard] Error 2
>   make: *** [__build_one_by_one] Error 2
> 
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Reported-by: Tom Everett <tom@khubla.com>
> Reported-by: Jeroen Hofstee <jeroen@myspectrum.nl>
> ---
> 
>  config.mk | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/config.mk b/config.mk
> index 2157537..00805bd 100644
> --- a/config.mk
> +++ b/config.mk
> @@ -18,6 +18,8 @@ PLATFORM_LDFLAGS :=
>  LDFLAGS :=
>  LDFLAGS_FINAL :=
>  OBJCOPYFLAGS :=
> +# clear VENDOR for tcsh
> +VENDOR :=
>  #########################################################################
>  
>  ARCH := $(CONFIG_SYS_ARCH:"%"=%)

Are there other variables that might fit into this same category?
Masahiro Yamada Oct. 21, 2014, 1:41 p.m. UTC | #3
Hi Tom,

2014-10-21 22:20 GMT+09:00 Tom Rini <trini@ti.com>:
>> diff --git a/config.mk b/config.mk
>> index 2157537..00805bd 100644
>> --- a/config.mk
>> +++ b/config.mk
>> @@ -18,6 +18,8 @@ PLATFORM_LDFLAGS :=
>>  LDFLAGS :=
>>  LDFLAGS_FINAL :=
>>  OBJCOPYFLAGS :=
>> +# clear VENDOR for tcsh
>> +VENDOR :=
>>  #########################################################################
>>
>>  ARCH := $(CONFIG_SYS_ARCH:"%"=%)
>
> Are there other variables that might fit into this same category?
>

I am not sure but probably only this one.
Tom Rini Oct. 21, 2014, 4:13 p.m. UTC | #4
On Tue, Oct 21, 2014 at 10:41:02PM +0900, Masahiro YAMADA wrote:
> Hi Tom,
> 
> 2014-10-21 22:20 GMT+09:00 Tom Rini <trini@ti.com>:
> >> diff --git a/config.mk b/config.mk
> >> index 2157537..00805bd 100644
> >> --- a/config.mk
> >> +++ b/config.mk
> >> @@ -18,6 +18,8 @@ PLATFORM_LDFLAGS :=
> >>  LDFLAGS :=
> >>  LDFLAGS_FINAL :=
> >>  OBJCOPYFLAGS :=
> >> +# clear VENDOR for tcsh
> >> +VENDOR :=
> >>  #########################################################################
> >>
> >>  ARCH := $(CONFIG_SYS_ARCH:"%"=%)
> >
> > Are there other variables that might fit into this same category?
> >
> 
> I am not sure but probably only this one.

Nope, SOC is one too.  I _think_ this might even somehow be related (or
at least I hope it is!) to the hard to trigger on normal machines race
condition multi-build problem.  You can see SOC fail with am335x_evm.
I'm going to play a bit more and post a v2 of this, thanks!
Tom Rini Oct. 21, 2014, 4:29 p.m. UTC | #5
On Tue, Oct 21, 2014 at 12:13:23PM -0400, Tom Rini wrote:
> On Tue, Oct 21, 2014 at 10:41:02PM +0900, Masahiro YAMADA wrote:
> > Hi Tom,
> > 
> > 2014-10-21 22:20 GMT+09:00 Tom Rini <trini@ti.com>:
> > >> diff --git a/config.mk b/config.mk
> > >> index 2157537..00805bd 100644
> > >> --- a/config.mk
> > >> +++ b/config.mk
> > >> @@ -18,6 +18,8 @@ PLATFORM_LDFLAGS :=
> > >>  LDFLAGS :=
> > >>  LDFLAGS_FINAL :=
> > >>  OBJCOPYFLAGS :=
> > >> +# clear VENDOR for tcsh
> > >> +VENDOR :=
> > >>  #########################################################################
> > >>
> > >>  ARCH := $(CONFIG_SYS_ARCH:"%"=%)
> > >
> > > Are there other variables that might fit into this same category?
> > >
> > 
> > I am not sure but probably only this one.
> 
> Nope, SOC is one too.  I _think_ this might even somehow be related (or
> at least I hope it is!) to the hard to trigger on normal machines race
> condition multi-build problem.  You can see SOC fail with am335x_evm.
> I'm going to play a bit more and post a v2 of this, thanks!

I take it back, it was a problem with one of my wrapper scripts.
Tom Rini Oct. 23, 2014, 8:35 p.m. UTC | #6
On Tue, Oct 21, 2014 at 01:18:32PM +0900, Masahiro Yamada wrote:

> Since the environment "VENDOR" is set in tcsh, it must be cleared in our
> makefile.  Otherwise, boards without CONFIG_SYS_VENDOR fail to build:
> 
>   > make CROSS_COMPILE=arm-linux-gnueabi- wandboard_quad_defconfig all
>     [ snip ]
>     AR      arch/arm/lib/lib.a
>     CC      arch/arm/lib/eabi_compat.o
>   scripts/Makefile.build:55: /home/foo/u-boot/board/unknown/wandboard/ \
>   Makefile: No such file or directory
>   make[2]: *** No rule to make target `/home/foo/u-boot/board/unknown/ \
>   wandboard/Makefile'.  Stop.
>   make[1]: *** [board/unknown/wandboard] Error 2
>   make: *** [__build_one_by_one] Error 2
> 
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Reported-by: Tom Everett <tom@khubla.com>
> Reported-by: Jeroen Hofstee <jeroen@myspectrum.nl>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/config.mk b/config.mk
index 2157537..00805bd 100644
--- a/config.mk
+++ b/config.mk
@@ -18,6 +18,8 @@  PLATFORM_LDFLAGS :=
 LDFLAGS :=
 LDFLAGS_FINAL :=
 OBJCOPYFLAGS :=
+# clear VENDOR for tcsh
+VENDOR :=
 #########################################################################
 
 ARCH := $(CONFIG_SYS_ARCH:"%"=%)