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

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:"%"=%)

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

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?

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.

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!

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.

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!
participants (4)
-
Jeroen Hofstee
-
Masahiro YAMADA
-
Masahiro Yamada
-
Tom Rini