diff mbox

boot/uboot: fix build for sunxi targets

Message ID 20170113000428.4112-1-joerg.krause@embedded.rocks
State Changes Requested
Headers show

Commit Message

Jörg Krause Jan. 13, 2017, 12:04 a.m. UTC
Since version 2017.01 U-Boot needs to run the binman tool on the host machine
for building the 'u-boot-sunxi-with-spl.bin' target. The binman tool is written
in Python 2 so we need to add the python host package when building this
target, otherwise the build fails:

```
  BINMAN  u-boot-sunxi-with-spl.bin
  File "./tools/binman/binman", line 49
    print result
               ^
SyntaxError: Missing parentheses in call to 'print'
make[1]: *** [Makefile:1090: u-boot-sunxi-with-spl.bin] Error 1
```

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
---
 boot/uboot/uboot.mk | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Peter Korsgaard Jan. 13, 2017, 3:11 p.m. UTC | #1
>>>>> "Jörg" == Jörg Krause <joerg.krause@embedded.rocks> writes:

 > Since version 2017.01 U-Boot needs to run the binman tool on the host machine
 > for building the 'u-boot-sunxi-with-spl.bin' target. The binman tool is written
 > in Python 2 so we need to add the python host package when building this
 > target, otherwise the build fails:

 > ```
 >   BINMAN  u-boot-sunxi-with-spl.bin
 >   File "./tools/binman/binman", line 49
 >     print result
 >                ^
 > SyntaxError: Missing parentheses in call to 'print'
 > make[1]: *** [Makefile:1090: u-boot-sunxi-with-spl.bin] Error 1
 > ```

 > Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>

That's not very nice :/

We already check for python on the build machine in dependencies.sh, so
perhaps we could patch the binman sources to be compatible with python
3 (and send the patch upstream)?

Is that something you could look into?
Jörg Krause Jan. 16, 2017, 8:04 p.m. UTC | #2
Hi Peter,

On Fri, 2017-01-13 at 16:11 +0100, Peter Korsgaard wrote:
> > > > > > "Jörg" == Jörg Krause <joerg.krause@embedded.rocks> writes:
> 
>  > Since version 2017.01 U-Boot needs to run the binman tool on the
> host machine
>  > for building the 'u-boot-sunxi-with-spl.bin' target. The binman
> tool is written
>  > in Python 2 so we need to add the python host package when
> building this
>  > target, otherwise the build fails:
> 
>  > ```
>  >   BINMAN  u-boot-sunxi-with-spl.bin
>  >   File "./tools/binman/binman", line 49
>  >     print result
>  >                ^
>  > SyntaxError: Missing parentheses in call to 'print'
>  > make[1]: *** [Makefile:1090: u-boot-sunxi-with-spl.bin] Error 1
>  > ```
> 
>  > Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
> 
> That's not very nice :/
> 
> We already check for python on the build machine in dependencies.sh,
> so
> perhaps we could patch the binman sources to be compatible with
> python
> 3 (and send the patch upstream)?
> 
> Is that something you could look into?

I would rather not do the porting, but I can ask upstream about
supporting Python 3.

Jörg
diff mbox

Patch

diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index 6b9d54454..02415ef63 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -280,6 +280,15 @@  endif
 UBOOT_DEPENDENCIES += host-uboot-tools
 endif
 
+# Since version 2017.01 U-Boot needs to run the binman tool on the host machine
+# for building the 'u-boot-sunxi-with-spl.bin' target. The binman tool is
+# written in Python 2 so we need to add the python host package here.
+ifeq ($(BR2_TARGET_UBOOT_SPL),y)
+ifeq ($(findstring u-boot-sunxi-with-spl.bin,$(BR2_TARGET_UBOOT_SPL_NAME)),u-boot-sunxi-with-spl.bin)
+UBOOT_DEPENDENCIES += host-python
+endif
+endif
+
 ifeq ($(BR2_TARGET_UBOOT)$(BR_BUILDING),yy)
 
 #