[meta-virtualization] [PATCH 2/5] xen: drop explicit DEPEND on libgcc

Chris Patterson cjp256 at gmail.com
Mon Jan 25 15:24:30 PST 2016


On Mon, Jan 25, 2016 at 10:29 AM, Doug Goldstein <cardoe at cardoe.com> wrote:
> The ELFs that get built in the 'xen-xl' package do not have a NEEDED
> entry on libgcc. 'xen-base' is a meta package and itself should not
> depend on a library like this. Yocto checks the NEEDED of the dynamic
> section and automatically includes those libraries as dependencies.
>
> Signed-off-by: Doug Goldstein <cardoe at cardoe.com>
> ---
>  recipes-extended/xen/xen.inc | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/recipes-extended/xen/xen.inc b/recipes-extended/xen/xen.inc
> index c63cb2c..c0acbcd 100644
> --- a/recipes-extended/xen/xen.inc
> +++ b/recipes-extended/xen/xen.inc
> @@ -54,7 +54,7 @@ DEPENDS = " \
>  RDEPENDS_${PN} = ""
>
>  RDEPENDS_${PN}-base = "\
> -    libgcc bash perl xz \
> +    bash perl xz \

Makes sense to remove from the meta package, +1.

>      ${PN}-blktap \
>      ${PN}-console \
>      ${PN}-libblktapctl \
> @@ -137,8 +137,6 @@ RDEPENDS_${PN}-xendomains = "\
>      ${PN}-xenstored \
>      "
>
> -RDEPENDS_${PN}-xl = "libgcc"
> -

The commit that added libgcc warned some operations may not work:

commit c93bc0c0185da21482164d9f76047715349cbb17
Author: Philip Tricca <flihp at twobit.us>
Date:   Thu Jan 23 03:19:33 2014 +0000

    xen: Add libgcc as runtime dependency of xen-xl package.

    Much of xl operates fine without libgcc but some operations complain
    that pthread_cancel won't work properly without libgcc_s.so.1
    installed. The exact text is:

    libgcc_s.so.1 must be installed for pthread_cancel to work

    Signed-off-by: Philip Tricca <flihp at twobit.us>
    Signed-off-by: Bruce Ashfield <bruce.ashfield at windriver.com>


Given the above warning, I went ahead a did a test. I took my image
which had libgcc-s installed anyways, moved /lib/libgcc-s.so.1 to
/tmp, then attempted to create a VM:

...
domainbuilder: detail: xc_dom_gnttab_hvm_seed: called, pfn=0x10f000
libxl: error: libxl_dm.c:1854:device_model_spawn_outcome: domain 4
device model: spawn failed (rc=-3)
libxl: error: libxl_create.c:1341:domcreate_devmodel_started: device
model did not start: -3
libxl: error: libxl_dm.c:1964:kill_device_model: Device Model already exited

libxl: error: libxl.c:1591:libxl__destroy_domid: non-existant domain 4
libxl: error: libxl.c:1549:domain_destroy_callback: unable to destroy
guest with domid 4
libxl: error: libxl.c:1476:domain_destroy_cb: destruction of domain 4 failed
libgcc_s.so.1 must be installed for pthread_cancel to work
Aborted
...

So, I imagine that this patch is probably not wise, at least for my
environment :)  Although, it would appear that qemu pulls libgcc into
my image regardless.


More information about the meta-virtualization mailing list