Skip to contentSkip to conversation

u-boot: Fix pylibfdt generation

PATCH Superseded Joshua Watt 3 participants 6 messages Jul 19, 2018 – Aug 2, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 u-boot: Fix pylibfdt generation

u-boot attempts to build a Python library called pylibfdt. By default, u-boot would attempt to use the build host's Python interpreter, which causes numerous problems, not least of which is that it fails if the host doesn't have the Python development package installed (complaining about not being able to find Python.h)

Rectify this situation by including the proper build time dependencies for pylibfdt and passing the proper arguments to make.

---
 meta/recipes-bsp/u-boot/u-boot.inc        | 1 +
 meta/recipes-bsp/u-boot/u-boot_2018.07.bb | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)
meta/recipes-bsp/u-boot/u-boot.inc +1 -0
index c2bcf998402..6b8604ddbec 100644
@@ -9,6 +9,7 @@ inherit uboot-config uboot-extlinux-config uboot-sign deploy
 
 EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" V=1'
 EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"'
+EXTRA_OEMAKE += 'PYTHON=nativepython STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}'
 
 PACKAGECONFIG ??= "openssl"
 # u-boot will compile its own tools during the build, with specific
meta/recipes-bsp/u-boot/u-boot_2018.07.bb +1 -1
index 37c21dcaa38..11588a75ed5 100644
@@ -1,4 +1,4 @@
 require u-boot-common_${PV}.inc
 require u-boot.inc
 
-DEPENDS += "bc-native dtc-native"
+DEPENDS += "bc-native dtc-native swig-native python-native"
Signature · 1 line
2.17.1
#1 lore raw

Review

Quoted 2 lines · Joshua Watt
(quoted diff) +2 -0
+EXTRA_OEMAKE += 'PYTHON=nativepython STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}'
+DEPENDS += "bc-native dtc-native swig-native python-native"

Instead of setting PYTHON and DEPENDS, you can just inherit pythonnative.

Or ideally, if it can use Python 3, inherit python3native.

Ross

#2 lore raw
Quoted 8 lines · Ross
Quoted 4 lines · Joshua Watt

+EXTRA_OEMAKE += 'PYTHON=nativepython STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}'
+DEPENDS += "bc-native dtc-native swig-native python-native"

Instead of setting PYTHON and DEPENDS, you can just inherit pythonnative.

I tried that, but pythonnative.bbclass appears to export the wrong variables for this case:
export STAGING_INCDIR
export STAGING_LIBDIR

u-boot actually needs:

STAGING_INCDIR=${STAGING_INCDIR_NATIVE}
STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}

I'm not sure where the disconnect is there?

Quoted 4 lines

Or ideally, if it can use Python 3, inherit python3native.

Ross

#3 lore raw

PATCH v2 1/1 u-boot: Fix pylibfdt generation

In reply to Joshua Watt

u-boot attempts to build a Python library called pylibfdt. By default, u-boot would attempt to use the build host's Python interpreter, which causes numerous problems, not least of which is that it fails if the host doesn't have the Python development package installed (complaining about not being able to find Python.h)

Rectify this situation by including the proper build time dependencies for pylibfdt and passing the proper arguments to make.

[YOCTO #12867]

---
 meta/recipes-bsp/u-boot/u-boot.inc | 3 +++
 1 file changed, 3 insertions(+)
meta/recipes-bsp/u-boot/u-boot.inc +3 -0
index c2bcf998402..95c2f4db14d 100644
@@ -7,8 +7,11 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 inherit uboot-config uboot-extlinux-config uboot-sign deploy
 
+DEPENDS += "swig-native python-native"
+
 EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" V=1'
 EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"'
+EXTRA_OEMAKE += 'PYTHON=nativepython STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}'
 
 PACKAGECONFIG ??= "openssl"
 # u-boot will compile its own tools during the build, with specific
Signature · 1 line
2.17.1
#4 lore raw
Quoted 39 lines · Joshua Watt

u-boot attempts to build a Python library called pylibfdt. By default,
u-boot would attempt to use the build host's Python interpreter, which
causes numerous problems, not least of which is that it fails if the host doesn't have the Python development package installed (complaining
about not being able to find Python.h)

Rectify this situation by including the proper build time dependencies
for pylibfdt and passing the proper arguments to make.

[YOCTO #12867]

---
 meta/recipes-bsp/u-boot/u-boot.inc | 3 +++
 1 file changed, 3 insertions(+)
meta/recipes-bsp/u- renamed from meta/recipes-bsp/u-boot/u-boot.inc +0 -0

boot/u-boot.inc
index c2bcf998402..95c2f4db14d 100644

meta/recipes-bsp/u-boot/u-boot.inc +2 -0
@@ -7,8 +7,11 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 inherit uboot-config uboot-extlinux-config uboot-sign deploy
 
+DEPENDS += "swig-native python-native"
+
 EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX}

CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" V=1'
EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS}
${BUILD_LDFLAGS}"'
+EXTRA_OEMAKE += 'PYTHON=nativepython STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}'

Quoted 2 lines

PACKAGECONFIG ??= "openssl"

 # u-boot will compile its own tools during the build, with specific

This was applied to master as 581a2cb7f8dfc88af785d55ef5ce40b0939c465b.

Armin, could you please backport to sumo?

Thanks,

Signature · 1 line
Joshua Watt <[email protected]>
#5 lore raw
Quoted 40 lines · Joshua Watt
Quoted 39 lines · Joshua Watt

u-boot attempts to build a Python library called pylibfdt. By default,
u-boot would attempt to use the build host's Python interpreter, which
causes numerous problems, not least of which is that it fails if the host doesn't have the Python development package installed (complaining
about not being able to find Python.h)

Rectify this situation by including the proper build time dependencies
for pylibfdt and passing the proper arguments to make.

[YOCTO #12867]

---
 meta/recipes-bsp/u-boot/u-boot.inc | 3 +++
 1 file changed, 3 insertions(+)
meta/recipes-bsp/u- renamed from meta/recipes-bsp/u-boot/u-boot.inc +0 -0

boot/u-boot.inc
index c2bcf998402..95c2f4db14d 100644

meta/recipes-bsp/u-boot/u-boot.inc +2 -0
@@ -7,8 +7,11 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 inherit uboot-config uboot-extlinux-config uboot-sign deploy
 
+DEPENDS += "swig-native python-native"
+
 EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX}

CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" V=1'
EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS}
${BUILD_LDFLAGS}"'
+EXTRA_OEMAKE += 'PYTHON=nativepython STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}'

Quoted 5 lines
Quoted 2 lines

PACKAGECONFIG ??= "openssl"

 # u-boot will compile its own tools during the build, with specific

This was applied to master as 581a2cb7f8dfc88af785d55ef5ce40b0939c465b.

Armin, could you please backport to sumo?

Got it already in my next build series.

thanks,
Armin

Quoted 2 lines

Thanks,