u-boot: Fix pylibfdt generation
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
@@ -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
@@ -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
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
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
PATCH v2 1/1 u-boot: Fix pylibfdt generation
In reply to Joshua Wattu-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
@@ -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
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 findPython.h)Rectify this situation by including the proper build time dependencies
for pylibfdt and passing the proper arguments to make.[YOCTO #12867]
Signed-off-by Joshua Watt <[email protected]>--- 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
-0boot/u-boot.inc
indexc2bcf998402..95c2f4db14d100644meta/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]>
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 findPython.h)Rectify this situation by including the proper build time dependencies
for pylibfdt and passing the proper arguments to make.[YOCTO #12867]
Signed-off-by Joshua Watt <[email protected]>--- 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
-0boot/u-boot.inc
indexc2bcf998402..95c2f4db14d100644meta/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 specificThis 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,