diff mbox series

[1/1] boot/uboot: Set MAKE_ENV for kconfig build system

Message ID 20180905094940.24461-1-thomas.preston@codethink.co.uk
State Changes Requested
Headers show
Series [1/1] boot/uboot: Set MAKE_ENV for kconfig build system | expand

Commit Message

Thomas Preston Sept. 5, 2018, 9:49 a.m. UTC
U-Boot fails to build in gitlab CI context because the kconfig-package
build stage is unable to find bison for flex even though they are
installed in BR_BINARIES_DIR.

To fix this, set UBOOT_MAKE_ENV so that UBOOT_KCONFIG_MAKE uses the
correct PATH.

Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
---
 boot/uboot/uboot.mk | 3 +++
 1 file changed, 3 insertions(+)

Comments

Baruch Siach Sept. 5, 2018, 10:42 a.m. UTC | #1
Hi Thomas,

On Wed, Sep 05, 2018 at 10:49:40AM +0100, Thomas Preston wrote:
> U-Boot fails to build in gitlab CI context because the kconfig-package
> build stage is unable to find bison for flex even though they are
> installed in BR_BINARIES_DIR.
> 
> To fix this, set UBOOT_MAKE_ENV so that UBOOT_KCONFIG_MAKE uses the
> correct PATH.
> 
> Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
> ---
>  boot/uboot/uboot.mk | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
> index bddafe234d..36428e65fe 100644
> --- a/boot/uboot/uboot.mk
> +++ b/boot/uboot/uboot.mk
> @@ -449,6 +449,9 @@ endif # BR2_TARGET_UBOOT && BR_BUILDING
>  ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY),y)
>  $(eval $(generic-package))
>  else ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG),y)
> +UBOOT_MAKE_ENV = \
> +	$(TARGET_MAKE_ENV) \
> +	BR_BINARIES_DIR=$(BINARIES_DIR)

I can't find any reference to BR_BINARIES_DIR in U-Boot related Buildroot 
makefile code, or in current U-Boot source tree. How is this going to work?

baruch

>  UBOOT_KCONFIG_DEPENDENCIES = \
>  	$(BR2_BISON_HOST_DEPENDENCY) \
>  	$(BR2_FLEX_HOST_DEPENDENCY)
Thomas Preston Sept. 5, 2018, 11:03 a.m. UTC | #2
On 05/09/18 11:42, Baruch Siach wrote:
> Hi Thomas,
> 
> On Wed, Sep 05, 2018 at 10:49:40AM +0100, Thomas Preston wrote:
>> U-Boot fails to build in gitlab CI context because the kconfig-package
>> build stage is unable to find bison for flex even though they are
>> installed in BR_BINARIES_DIR.
>>
>> To fix this, set UBOOT_MAKE_ENV so that UBOOT_KCONFIG_MAKE uses the
>> correct PATH.
>>
>> Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
>> ---
>>   boot/uboot/uboot.mk | 3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
>> index bddafe234d..36428e65fe 100644
>> --- a/boot/uboot/uboot.mk
>> +++ b/boot/uboot/uboot.mk
>> @@ -449,6 +449,9 @@ endif # BR2_TARGET_UBOOT && BR_BUILDING
>>   ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY),y)
>>   $(eval $(generic-package))
>>   else ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG),y)
>> +UBOOT_MAKE_ENV = \
>> +	$(TARGET_MAKE_ENV) \
>> +	BR_BINARIES_DIR=$(BINARIES_DIR)
> 
> I can't find any reference to BR_BINARIES_DIR in U-Boot related Buildroot
> makefile code, or in current U-Boot source tree. How is this going to work?
> 

Ah, it is TARGET_MAKE_ENV which provides the PATH fix, BR_BINARIES_DIR was added by mistake (I copied it from the linux/linux.mk). Should I resubmit?

You should be able to reproduce the error with:

	$ docker run -u1002 -v $PWD:/home/br-user -it buildroot/base make V=1 uboot
	...
	  bison -oscripts/kconfig/zconf.tab.c -t -l scripts/kconfig/zconf.y
	/bin/sh: 1: bison: not found
	scripts/Makefile.lib:228: recipe for target 'scripts/kconfig/zconf.tab.c' failed
	...

The above patch adds `PATH="/home/br-user/output/host/bin`, which fixes the error.
diff mbox series

Patch

diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index bddafe234d..36428e65fe 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -449,6 +449,9 @@  endif # BR2_TARGET_UBOOT && BR_BUILDING
 ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY),y)
 $(eval $(generic-package))
 else ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG),y)
+UBOOT_MAKE_ENV = \
+	$(TARGET_MAKE_ENV) \
+	BR_BINARIES_DIR=$(BINARIES_DIR)
 UBOOT_KCONFIG_DEPENDENCIES = \
 	$(BR2_BISON_HOST_DEPENDENCY) \
 	$(BR2_FLEX_HOST_DEPENDENCY)