Patchwork [RFC] qemu.bbclass: add -r ${OLDEST_KERNEL} parameter

login
register
mail settings
Submitter Martin Jansa
Date July 30, 2014, 4:04 p.m.
Message ID <1406736276-25623-1-git-send-email-Martin.Jansa@gmail.com>
Download mbox | patch
Permalink /patch/76943/
State Accepted
Commit 7efad8a1b56df6ee07c12ad360c0493d7b1d6d23
Headers show

Comments

Martin Jansa - July 30, 2014, 4:04 p.m.
* in some cases (e.g. with external toolchain which doesn't respect our
  reasonably old version set in OLDEST_KERNEL) it's possible to have libc
  which requires newer kernel than what we have on builders, qemu supports
  -r param to use different uname than what's returned by host system.
* change qemu_run_binary to pass -r ${OLDEST_KERNEL} and add the same to
  QEMU_OPTIONS which are used by qemuwrapper-cross
* maybe we should eventually convert all qemu_run_binary usages always include
  qemuwrapper-cross dependency and always call qemu through that (it
  seems very strange that qemu_target_binary is called from qemuwrapper
  and for allarch recipes it can return qemu-allarch as qemu binary).

  qemu_run_binary is used by:
  meta/classes/gtk-immodules-cache.bbclass:            ${@qemu_run_binary(d, '$D', '${bindir}/gtk-query-immodules-$maj_ver.0')} \
  meta/classes/qemu.bbclass:def qemu_run_binary(data, rootfs_path, binary):
  meta/recipes-core/systemd/systemd_213.bb:         ${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')} hwdb --update \
  meta/recipes-graphics/pango/pango.inc:    ${@qemu_run_binary(d, '$D','${bindir}/${MLPREFIX}pango-querymodules')} \

  and qemuwrapper directly by:
  scripts/postinst-intercepts/update_font_cache:PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D/${libdir}:$D/${base_libdir}\
  scripts/postinst-intercepts/update_pixbuf_cache:PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D/${libdir}:$D/${base_libdir}\

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/classes/qemu.bbclass | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)
Martin Jansa - Aug. 16, 2014, 6:22 p.m.
On Wed, Jul 30, 2014 at 06:04:36PM +0200, Martin Jansa wrote:
> * in some cases (e.g. with external toolchain which doesn't respect our
>   reasonably old version set in OLDEST_KERNEL) it's possible to have libc
>   which requires newer kernel than what we have on builders, qemu supports
>   -r param to use different uname than what's returned by host system.
> * change qemu_run_binary to pass -r ${OLDEST_KERNEL} and add the same to
>   QEMU_OPTIONS which are used by qemuwrapper-cross
> * maybe we should eventually convert all qemu_run_binary usages always include
>   qemuwrapper-cross dependency and always call qemu through that (it
>   seems very strange that qemu_target_binary is called from qemuwrapper
>   and for allarch recipes it can return qemu-allarch as qemu binary).
> 
>   qemu_run_binary is used by:
>   meta/classes/gtk-immodules-cache.bbclass:            ${@qemu_run_binary(d, '$D', '${bindir}/gtk-query-immodules-$maj_ver.0')} \
>   meta/classes/qemu.bbclass:def qemu_run_binary(data, rootfs_path, binary):
>   meta/recipes-core/systemd/systemd_213.bb:         ${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')} hwdb --update \
>   meta/recipes-graphics/pango/pango.inc:    ${@qemu_run_binary(d, '$D','${bindir}/${MLPREFIX}pango-querymodules')} \
> 
>   and qemuwrapper directly by:
>   scripts/postinst-intercepts/update_font_cache:PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D/${libdir}:$D/${base_libdir}\
>   scripts/postinst-intercepts/update_pixbuf_cache:PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D/${libdir}:$D/${base_libdir}\

no comment?

> 
> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ---
>  meta/classes/qemu.bbclass | 25 +++++++++++++------------
>  1 file changed, 13 insertions(+), 12 deletions(-)
> 
> diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> index abee8aa..b2cf85d 100644
> --- a/meta/classes/qemu.bbclass
> +++ b/meta/classes/qemu.bbclass
> @@ -29,19 +29,20 @@ def qemu_run_binary(data, rootfs_path, binary):
>  
>      libdir = rootfs_path + data.getVar("libdir", False)
>      base_libdir = rootfs_path + data.getVar("base_libdir", False)
> +    oldest_kernel = data.getVar("OLDEST_KERNEL", True)
>  
> -    return "PSEUDO_UNLOAD=1 " + qemu_binary + " -L " + rootfs_path\
> +    return "PSEUDO_UNLOAD=1 " + qemu_binary + " -r " + oldest_kernel + " -L " + rootfs_path\
>              + " -E LD_LIBRARY_PATH=" + libdir + ":" + base_libdir + " "\
>              + rootfs_path + binary
>  
> -QEMU_OPTIONS = ""
> -QEMU_OPTIONS_iwmmxt    = "-cpu pxa270-c5"
> -QEMU_OPTIONS_armv6     = "-cpu arm1136"
> -QEMU_OPTIONS_armv7a    = "-cpu cortex-a8"
> -QEMU_OPTIONS_e500v2    = "-cpu e500v2"
> -QEMU_OPTIONS_e500mc    = "-cpu e500mc"
> -QEMU_OPTIONS_e5500     = "-cpu e5500"
> -QEMU_OPTIONS_e5500-64b = "-cpu e5500"
> -QEMU_OPTIONS_e6500     = "-cpu e6500"
> -QEMU_OPTIONS_e6500-64b = "-cpu e6500"
> -QEMU_OPTIONS_ppc7400   = "-cpu 7400"
> +QEMU_OPTIONS = "-r ${OLDEST_KERNEL}"
> +QEMU_OPTIONS_append_iwmmxt    = " -cpu pxa270-c5"
> +QEMU_OPTIONS_append_armv6     = " -cpu arm1136"
> +QEMU_OPTIONS_append_armv7a    = " -cpu cortex-a8"
> +QEMU_OPTIONS_append_e500v2    = " -cpu e500v2"
> +QEMU_OPTIONS_append_e500mc    = " -cpu e500mc"
> +QEMU_OPTIONS_append_e5500     = " -cpu e5500"
> +QEMU_OPTIONS_append_e5500-64b = " -cpu e5500"
> +QEMU_OPTIONS_append_e6500     = " -cpu e6500"
> +QEMU_OPTIONS_append_e6500-64b = " -cpu e6500"
> +QEMU_OPTIONS_append_ppc7400   = " -cpu 7400"
> -- 
> 2.0.2
>

Patch

diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
index abee8aa..b2cf85d 100644
--- a/meta/classes/qemu.bbclass
+++ b/meta/classes/qemu.bbclass
@@ -29,19 +29,20 @@  def qemu_run_binary(data, rootfs_path, binary):
 
     libdir = rootfs_path + data.getVar("libdir", False)
     base_libdir = rootfs_path + data.getVar("base_libdir", False)
+    oldest_kernel = data.getVar("OLDEST_KERNEL", True)
 
-    return "PSEUDO_UNLOAD=1 " + qemu_binary + " -L " + rootfs_path\
+    return "PSEUDO_UNLOAD=1 " + qemu_binary + " -r " + oldest_kernel + " -L " + rootfs_path\
             + " -E LD_LIBRARY_PATH=" + libdir + ":" + base_libdir + " "\
             + rootfs_path + binary
 
-QEMU_OPTIONS = ""
-QEMU_OPTIONS_iwmmxt    = "-cpu pxa270-c5"
-QEMU_OPTIONS_armv6     = "-cpu arm1136"
-QEMU_OPTIONS_armv7a    = "-cpu cortex-a8"
-QEMU_OPTIONS_e500v2    = "-cpu e500v2"
-QEMU_OPTIONS_e500mc    = "-cpu e500mc"
-QEMU_OPTIONS_e5500     = "-cpu e5500"
-QEMU_OPTIONS_e5500-64b = "-cpu e5500"
-QEMU_OPTIONS_e6500     = "-cpu e6500"
-QEMU_OPTIONS_e6500-64b = "-cpu e6500"
-QEMU_OPTIONS_ppc7400   = "-cpu 7400"
+QEMU_OPTIONS = "-r ${OLDEST_KERNEL}"
+QEMU_OPTIONS_append_iwmmxt    = " -cpu pxa270-c5"
+QEMU_OPTIONS_append_armv6     = " -cpu arm1136"
+QEMU_OPTIONS_append_armv7a    = " -cpu cortex-a8"
+QEMU_OPTIONS_append_e500v2    = " -cpu e500v2"
+QEMU_OPTIONS_append_e500mc    = " -cpu e500mc"
+QEMU_OPTIONS_append_e5500     = " -cpu e5500"
+QEMU_OPTIONS_append_e5500-64b = " -cpu e5500"
+QEMU_OPTIONS_append_e6500     = " -cpu e6500"
+QEMU_OPTIONS_append_e6500-64b = " -cpu e6500"
+QEMU_OPTIONS_append_ppc7400   = " -cpu 7400"