All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/5] xen: update git version to 4.6.x
@ 2016-01-25 15:29 Doug Goldstein
  2016-01-25 15:29 ` [PATCH 2/5] xen: drop explicit DEPEND on libgcc Doug Goldstein
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Doug Goldstein @ 2016-01-25 15:29 UTC (permalink / raw)
  To: meta-virtualization

Since xen.inc has been updated to support only Xen 4.6.x, the xen_git.bb
should be updated to a revision in the 4.6.x stable series.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
---
 recipes-extended/xen/xen_git.bb | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/recipes-extended/xen/xen_git.bb b/recipes-extended/xen/xen_git.bb
index 88145a3..9e74d7a 100644
--- a/recipes-extended/xen/xen_git.bb
+++ b/recipes-extended/xen/xen_git.bb
@@ -1,8 +1,8 @@
 require xen.inc
 
-SRCREV = "68bd172e6fa565899c846eb72755c8ffd8562c8a"
+SRCREV = "1fd615aa0108490ffc558d27627f509183cbfdaf"
 
-PV = "4.4.0+git${SRCPV}"
+PV = "4.6.0+git${SRCPV}"
 
 S = "${WORKDIR}/git"
 
-- 
2.4.10



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 2/5] xen: drop explicit DEPEND on libgcc
  2016-01-25 15:29 [PATCH 1/5] xen: update git version to 4.6.x Doug Goldstein
@ 2016-01-25 15:29 ` Doug Goldstein
  2016-01-25 23:24   ` Chris Patterson
  2016-01-25 15:29 ` [PATCH 3/5] xen: fix up typo in XSM comments Doug Goldstein
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Doug Goldstein @ 2016-01-25 15:29 UTC (permalink / raw)
  To: meta-virtualization

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@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 \
     ${PN}-blktap \
     ${PN}-console \
     ${PN}-libblktapctl \
@@ -137,8 +137,6 @@ RDEPENDS_${PN}-xendomains = "\
     ${PN}-xenstored \
     "
 
-RDEPENDS_${PN}-xl = "libgcc"
-
 RDEPENDS_${PN}-xentrace = "python"
 
 RDEPENDS_${PN}-xen-watchdog = "bash"
-- 
2.4.10



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 3/5] xen: fix up typo in XSM comments
  2016-01-25 15:29 [PATCH 1/5] xen: update git version to 4.6.x Doug Goldstein
  2016-01-25 15:29 ` [PATCH 2/5] xen: drop explicit DEPEND on libgcc Doug Goldstein
@ 2016-01-25 15:29 ` Doug Goldstein
  2016-01-25 22:21   ` Chris Patterson
  2016-01-25 15:29 ` [PATCH 4/5] xen: separate the extra steps into their own tasks Doug Goldstein
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Doug Goldstein @ 2016-01-25 15:29 UTC (permalink / raw)
  To: meta-virtualization

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
---
 recipes-extended/xen/xen.inc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/recipes-extended/xen/xen.inc b/recipes-extended/xen/xen.inc
index c0acbcd..2df7525 100644
--- a/recipes-extended/xen/xen.inc
+++ b/recipes-extended/xen/xen.inc
@@ -720,7 +720,7 @@ EXTRA_OECONF += " \
     --disable-ocamltools \
     "
 
-# check for XSM in package config to allow XSM_ENABLE to be set 
+# check for XSM in package config to allow XSM_ENABLE to be set
 python () {
     pkgconfig = d.getVar('PACKAGECONFIG', True)
     if ('xsm') in pkgconfig.split():
@@ -741,7 +741,7 @@ do_configure() {
         fi
     fi
 
-    #./configure --enable-xsm does not set XSM_ENABLE must be done manually
+    #./configure --enable-xsmpolicy does not set XSM_ENABLE must be done manually
     if [ "${XSM_ENABLED}" = "1" ]; then
         echo "XSM_ENABLE := y" > ${S}/.config
     fi
-- 
2.4.10



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 4/5] xen: separate the extra steps into their own tasks
  2016-01-25 15:29 [PATCH 1/5] xen: update git version to 4.6.x Doug Goldstein
  2016-01-25 15:29 ` [PATCH 2/5] xen: drop explicit DEPEND on libgcc Doug Goldstein
  2016-01-25 15:29 ` [PATCH 3/5] xen: fix up typo in XSM comments Doug Goldstein
@ 2016-01-25 15:29 ` Doug Goldstein
  2016-01-25 22:30   ` Chris Patterson
  2016-01-25 15:29 ` [PATCH 5/5] xen: move bits common to all Xen versions to xen.inc Doug Goldstein
  2016-01-25 22:20 ` [PATCH 1/5] xen: update git version to 4.6.x Chris Patterson
  4 siblings, 1 reply; 13+ messages in thread
From: Doug Goldstein @ 2016-01-25 15:29 UTC (permalink / raw)
  To: meta-virtualization

do_configure() was overloaded with a lot of behaviors that really were
source code patching so instead make them as extra tasks that happen
after do_patch() and before do_configure().

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
---
 recipes-extended/xen/xen.inc      | 21 ++++++++++++++++++++-
 recipes-extended/xen/xen_4.6.0.bb | 12 ------------
 2 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/recipes-extended/xen/xen.inc b/recipes-extended/xen/xen.inc
index 2df7525..3e029ee 100644
--- a/recipes-extended/xen/xen.inc
+++ b/recipes-extended/xen/xen.inc
@@ -729,7 +729,21 @@ python () {
         d.setVar('XSM_ENABLED', '0')
 }
 
-do_configure() {
+do_post_patch() {
+    # fixup AS/CC/CCP/etc variable within StdGNU.mk
+    for i in LD CC CPP CXX; do
+        sed -i "s/^\($i\s\s*\).*=/\1?=/" ${S}/config/StdGNU.mk
+    done
+    # fixup environment passing in some makefiles
+    sed -i 's#\(\w*\)=\(\$.\w*.\)#\1="\2"#' ${S}/tools/firmware/Makefile
+
+    # libsystemd-daemon -> libsystemd for newer systemd versions
+    sed -i 's#libsystemd-daemon#libsystemd#' ${S}/tools/configure
+}
+
+addtask post_patch after do_patch before do_configure
+
+do_stubs() {
     # no stubs-32.h in our 64-bit sysroot - hack it into tools/include/gnu
     if ! test -f ${STAGING_DIR_TARGET}/usr/include/gnu/stubs-32.h ; then
         if test -f ${STAGING_DIR_TARGET}/usr/include/gnu/stubs-64.h ; then
@@ -740,6 +754,11 @@ do_configure() {
             echo \#define __stub___kernel_tanl >> ${S}/tools/include/gnu/stubs-32.h
         fi
     fi
+}
+
+addtask stubs after do_patch before do_configure
+
+do_configure() {
 
     #./configure --enable-xsmpolicy does not set XSM_ENABLE must be done manually
     if [ "${XSM_ENABLED}" = "1" ]; then
diff --git a/recipes-extended/xen/xen_4.6.0.bb b/recipes-extended/xen/xen_4.6.0.bb
index 92975a0..95570a7 100644
--- a/recipes-extended/xen/xen_4.6.0.bb
+++ b/recipes-extended/xen/xen_4.6.0.bb
@@ -27,18 +27,6 @@ EXTRA_OEMAKE += "SEABIOS_ROM=${STAGING_DIR_HOST}/usr/share/firmware/bios.bin"
 EXTRA_OEMAKE += "ETHERBOOT_ROMS=${STAGING_DIR_HOST}/usr/share/firmware/rtl8139.rom"
 #EXTRA_OEMAKE += "XENGFX_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios.bin"
 
-do_configure_prepend() {
-    # fixup AS/CC/CCP/etc variable within StdGNU.mk
-    for i in LD CC CPP CXX; do
-        sed -i "s/^\($i\s\s*\).*=/\1?=/" ${S}/config/StdGNU.mk
-    done
-    # fixup environment passing in some makefiles
-    sed -i 's#\(\w*\)=\(\$.\w*.\)#\1="\2"#' ${S}/tools/firmware/Makefile
-
-    # libsystemd-daemon -> libsystemd for newer systemd versions
-    sed -i 's#libsystemd-daemon#libsystemd#' ${S}/tools/configure
-}
-
 do_install_append() {
     # fixup default path to qemu-system-i386
     sed -i 's#\(test -z "$QEMU_XEN" && QEMU_XEN=\).*$#\1"/usr/bin/qemu-system-i386"#' ${D}/etc/init.d/xencommons
-- 
2.4.10



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 5/5] xen: move bits common to all Xen versions to xen.inc
  2016-01-25 15:29 [PATCH 1/5] xen: update git version to 4.6.x Doug Goldstein
                   ` (2 preceding siblings ...)
  2016-01-25 15:29 ` [PATCH 4/5] xen: separate the extra steps into their own tasks Doug Goldstein
@ 2016-01-25 15:29 ` Doug Goldstein
  2016-01-25 22:34   ` Chris Patterson
  2016-01-25 22:20 ` [PATCH 1/5] xen: update git version to 4.6.x Chris Patterson
  4 siblings, 1 reply; 13+ messages in thread
From: Doug Goldstein @ 2016-01-25 15:29 UTC (permalink / raw)
  To: meta-virtualization

These items are common for all Xen versions since at least 4.5 and newer
so these should just go in the common include file.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
---
 recipes-extended/xen/xen.inc      |  9 +++++++++
 recipes-extended/xen/xen_4.6.0.bb | 11 -----------
 2 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/recipes-extended/xen/xen.inc b/recipes-extended/xen/xen.inc
index 3e029ee..6f52765 100644
--- a/recipes-extended/xen/xen.inc
+++ b/recipes-extended/xen/xen.inc
@@ -691,6 +691,11 @@ python () {
         raise bb.parse.SkipPackage('Cannot map `%s` to a xen architecture' % d.getVar('TARGET_ARCH', True))
 }
 
+# Yocto appends ${PN} to libexecdir by default and Xen appends 'xen' as well
+# the result is a nested xen/xen/ so let's avoid that by shunning Yocto's
+# extra ${PN} appended.
+libexecdir = "${libdir}"
+
 # hardcoded as Linux, as the only compatible hosts are Linux.
 export XEN_OS = "Linux"
 
@@ -718,6 +723,10 @@ EXTRA_OECONF += " \
     --disable-xenstore-stubdom \
     --disable-rombios \
     --disable-ocamltools \
+    --with-initddir=${INIT_D_DIR} \
+    --with-sysconfig-leaf-dir=default \
+    --with-system-qemu=/usr/bin/qemu-system-i386 \
+    --disable-qemu-traditional \
     "
 
 # check for XSM in package config to allow XSM_ENABLE to be set
diff --git a/recipes-extended/xen/xen_4.6.0.bb b/recipes-extended/xen/xen_4.6.0.bb
index 95570a7..3e99324 100644
--- a/recipes-extended/xen/xen_4.6.0.bb
+++ b/recipes-extended/xen/xen_4.6.0.bb
@@ -10,17 +10,6 @@ SRC_URI[sha256sum] = "6fa1c2431df55aa5950d248e6093b8c8c0f11c357a0adbd348a2186478
 
 S = "${WORKDIR}/xen-${PV}"
 
-# Xen suffixes the libexecdir within its configure scripts, prevent the nested xen/xen/
-libexecdir = "${libdir}"
-
-# These options override detected values from the build.
-EXTRA_OECONF_append += " \
-    --with-initddir=${INIT_D_DIR} \
-    --with-sysconfig-leaf-dir=default \
-    --with-system-qemu=/usr/bin/qemu-system-i386 \
-    --disable-qemu-traditional \
-    "
-
 EXTRA_OEMAKE += "STDVGA_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios-0.7a.bin"
 EXTRA_OEMAKE += "CIRRUSVGA_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios-0.7a.cirrus.bin"
 EXTRA_OEMAKE += "SEABIOS_ROM=${STAGING_DIR_HOST}/usr/share/firmware/bios.bin"
-- 
2.4.10



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/5] xen: update git version to 4.6.x
  2016-01-25 15:29 [PATCH 1/5] xen: update git version to 4.6.x Doug Goldstein
                   ` (3 preceding siblings ...)
  2016-01-25 15:29 ` [PATCH 5/5] xen: move bits common to all Xen versions to xen.inc Doug Goldstein
@ 2016-01-25 22:20 ` Chris Patterson
  2016-01-26 15:58   ` Doug Goldstein
  4 siblings, 1 reply; 13+ messages in thread
From: Chris Patterson @ 2016-01-25 22:20 UTC (permalink / raw)
  To: Doug Goldstein; +Cc: meta-virtualization@yoctoproject.org

I gave series a spin.  Xen 4.6 built and ran nicely.  On the git
version, I received: "Fetcher failure: Unable to find revision
1fd615aa0108490ffc558d27627f509183cbfdaf in branch master even from
upstream"

Had to set branch=staging-4.6 to get it to fetch OK.  With the rest of
this patch series applied, I also needed to move more of the common
bits into xen.inc to get it to build for x86_64.  Any thoughts on
moving the EXTRA_OEMAKE,
xen-x86-Fix-up-rules-when-forcing-mno-sse.patch, and
do_install_append() to the .inc as well?

Cheers for the cleanup :)

On Mon, Jan 25, 2016 at 10:29 AM, Doug Goldstein <cardoe@cardoe.com> wrote:
> Since xen.inc has been updated to support only Xen 4.6.x, the xen_git.bb
> should be updated to a revision in the 4.6.x stable series.
>
> Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
> ---
>  recipes-extended/xen/xen_git.bb | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/recipes-extended/xen/xen_git.bb b/recipes-extended/xen/xen_git.bb
> index 88145a3..9e74d7a 100644
> --- a/recipes-extended/xen/xen_git.bb
> +++ b/recipes-extended/xen/xen_git.bb
> @@ -1,8 +1,8 @@
>  require xen.inc
>
> -SRCREV = "68bd172e6fa565899c846eb72755c8ffd8562c8a"
> +SRCREV = "1fd615aa0108490ffc558d27627f509183cbfdaf"
>
> -PV = "4.4.0+git${SRCPV}"
> +PV = "4.6.0+git${SRCPV}"
>
>  S = "${WORKDIR}/git"
>
> --
> 2.4.10
>
> --
> _______________________________________________
> meta-virtualization mailing list
> meta-virtualization@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-virtualization


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/5] xen: fix up typo in XSM comments
  2016-01-25 15:29 ` [PATCH 3/5] xen: fix up typo in XSM comments Doug Goldstein
@ 2016-01-25 22:21   ` Chris Patterson
  0 siblings, 0 replies; 13+ messages in thread
From: Chris Patterson @ 2016-01-25 22:21 UTC (permalink / raw)
  To: Doug Goldstein; +Cc: meta-virtualization@yoctoproject.org

+1, LGTM

On Mon, Jan 25, 2016 at 10:29 AM, Doug Goldstein <cardoe@cardoe.com> wrote:
> Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
> ---
>  recipes-extended/xen/xen.inc | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/recipes-extended/xen/xen.inc b/recipes-extended/xen/xen.inc
> index c0acbcd..2df7525 100644
> --- a/recipes-extended/xen/xen.inc
> +++ b/recipes-extended/xen/xen.inc
> @@ -720,7 +720,7 @@ EXTRA_OECONF += " \
>      --disable-ocamltools \
>      "
>
> -# check for XSM in package config to allow XSM_ENABLE to be set
> +# check for XSM in package config to allow XSM_ENABLE to be set
>  python () {
>      pkgconfig = d.getVar('PACKAGECONFIG', True)
>      if ('xsm') in pkgconfig.split():
> @@ -741,7 +741,7 @@ do_configure() {
>          fi
>      fi
>
> -    #./configure --enable-xsm does not set XSM_ENABLE must be done manually
> +    #./configure --enable-xsmpolicy does not set XSM_ENABLE must be done manually
>      if [ "${XSM_ENABLED}" = "1" ]; then
>          echo "XSM_ENABLE := y" > ${S}/.config
>      fi
> --
> 2.4.10
>
> --
> _______________________________________________
> meta-virtualization mailing list
> meta-virtualization@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-virtualization


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 4/5] xen: separate the extra steps into their own tasks
  2016-01-25 15:29 ` [PATCH 4/5] xen: separate the extra steps into their own tasks Doug Goldstein
@ 2016-01-25 22:30   ` Chris Patterson
  0 siblings, 0 replies; 13+ messages in thread
From: Chris Patterson @ 2016-01-25 22:30 UTC (permalink / raw)
  To: Doug Goldstein; +Cc: meta-virtualization@yoctoproject.org

LGTM, it builds fine, but I'm no expect on addtask usage :)

On Mon, Jan 25, 2016 at 10:29 AM, Doug Goldstein <cardoe@cardoe.com> wrote:
> do_configure() was overloaded with a lot of behaviors that really were
> source code patching so instead make them as extra tasks that happen
> after do_patch() and before do_configure().
>
> Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
> ---
>  recipes-extended/xen/xen.inc      | 21 ++++++++++++++++++++-
>  recipes-extended/xen/xen_4.6.0.bb | 12 ------------
>  2 files changed, 20 insertions(+), 13 deletions(-)
>
> diff --git a/recipes-extended/xen/xen.inc b/recipes-extended/xen/xen.inc
> index 2df7525..3e029ee 100644
> --- a/recipes-extended/xen/xen.inc
> +++ b/recipes-extended/xen/xen.inc
> @@ -729,7 +729,21 @@ python () {
>          d.setVar('XSM_ENABLED', '0')
>  }
>
> -do_configure() {
> +do_post_patch() {
> +    # fixup AS/CC/CCP/etc variable within StdGNU.mk
> +    for i in LD CC CPP CXX; do
> +        sed -i "s/^\($i\s\s*\).*=/\1?=/" ${S}/config/StdGNU.mk
> +    done
> +    # fixup environment passing in some makefiles
> +    sed -i 's#\(\w*\)=\(\$.\w*.\)#\1="\2"#' ${S}/tools/firmware/Makefile
> +
> +    # libsystemd-daemon -> libsystemd for newer systemd versions
> +    sed -i 's#libsystemd-daemon#libsystemd#' ${S}/tools/configure
> +}
> +
> +addtask post_patch after do_patch before do_configure
> +
> +do_stubs() {
>      # no stubs-32.h in our 64-bit sysroot - hack it into tools/include/gnu
>      if ! test -f ${STAGING_DIR_TARGET}/usr/include/gnu/stubs-32.h ; then
>          if test -f ${STAGING_DIR_TARGET}/usr/include/gnu/stubs-64.h ; then
> @@ -740,6 +754,11 @@ do_configure() {
>              echo \#define __stub___kernel_tanl >> ${S}/tools/include/gnu/stubs-32.h
>          fi
>      fi
> +}
> +
> +addtask stubs after do_patch before do_configure
> +
> +do_configure() {
>
>      #./configure --enable-xsmpolicy does not set XSM_ENABLE must be done manually
>      if [ "${XSM_ENABLED}" = "1" ]; then
> diff --git a/recipes-extended/xen/xen_4.6.0.bb b/recipes-extended/xen/xen_4.6.0.bb
> index 92975a0..95570a7 100644
> --- a/recipes-extended/xen/xen_4.6.0.bb
> +++ b/recipes-extended/xen/xen_4.6.0.bb
> @@ -27,18 +27,6 @@ EXTRA_OEMAKE += "SEABIOS_ROM=${STAGING_DIR_HOST}/usr/share/firmware/bios.bin"
>  EXTRA_OEMAKE += "ETHERBOOT_ROMS=${STAGING_DIR_HOST}/usr/share/firmware/rtl8139.rom"
>  #EXTRA_OEMAKE += "XENGFX_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios.bin"
>
> -do_configure_prepend() {
> -    # fixup AS/CC/CCP/etc variable within StdGNU.mk
> -    for i in LD CC CPP CXX; do
> -        sed -i "s/^\($i\s\s*\).*=/\1?=/" ${S}/config/StdGNU.mk
> -    done
> -    # fixup environment passing in some makefiles
> -    sed -i 's#\(\w*\)=\(\$.\w*.\)#\1="\2"#' ${S}/tools/firmware/Makefile
> -
> -    # libsystemd-daemon -> libsystemd for newer systemd versions
> -    sed -i 's#libsystemd-daemon#libsystemd#' ${S}/tools/configure
> -}
> -
>  do_install_append() {
>      # fixup default path to qemu-system-i386
>      sed -i 's#\(test -z "$QEMU_XEN" && QEMU_XEN=\).*$#\1"/usr/bin/qemu-system-i386"#' ${D}/etc/init.d/xencommons
> --
> 2.4.10
>
> --
> _______________________________________________
> meta-virtualization mailing list
> meta-virtualization@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-virtualization


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 5/5] xen: move bits common to all Xen versions to xen.inc
  2016-01-25 15:29 ` [PATCH 5/5] xen: move bits common to all Xen versions to xen.inc Doug Goldstein
@ 2016-01-25 22:34   ` Chris Patterson
  0 siblings, 0 replies; 13+ messages in thread
From: Chris Patterson @ 2016-01-25 22:34 UTC (permalink / raw)
  To: Doug Goldstein; +Cc: meta-virtualization@yoctoproject.org

+1, LGTM, though I'd probably also move the common EXTRA_OEMAKE and
the sse patch into the .inc.  Unless there is reason not to?  I can
follow up after this series with that patch as well, if desired.

Cheers!


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/5] xen: drop explicit DEPEND on libgcc
  2016-01-25 15:29 ` [PATCH 2/5] xen: drop explicit DEPEND on libgcc Doug Goldstein
@ 2016-01-25 23:24   ` Chris Patterson
  2016-01-26 15:19     ` Doug Goldstein
  0 siblings, 1 reply; 13+ messages in thread
From: Chris Patterson @ 2016-01-25 23:24 UTC (permalink / raw)
  To: Doug Goldstein; +Cc: meta-virtualization@yoctoproject.org

On Mon, Jan 25, 2016 at 10:29 AM, Doug Goldstein <cardoe@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@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@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@twobit.us>
    Signed-off-by: Bruce Ashfield <bruce.ashfield@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.


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/5] xen: drop explicit DEPEND on libgcc
  2016-01-25 23:24   ` Chris Patterson
@ 2016-01-26 15:19     ` Doug Goldstein
  2016-01-26 23:14       ` Richard Purdie
  0 siblings, 1 reply; 13+ messages in thread
From: Doug Goldstein @ 2016-01-26 15:19 UTC (permalink / raw)
  To: Chris Patterson; +Cc: meta-virtualization@yoctoproject.org

[-- Attachment #1: Type: text/plain, Size: 3074 bytes --]

On 1/25/16 5:24 PM, Chris Patterson wrote:
> On Mon, Jan 25, 2016 at 10:29 AM, Doug Goldstein <cardoe@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@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@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@twobit.us>
>     Signed-off-by: Bruce Ashfield <bruce.ashfield@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.
> 

hmm. I'd rather respin it without that change then. Interesting that the
NEEDED check doesn't pick it up as a dependency.

-- 
Doug Goldstein


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 978 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/5] xen: update git version to 4.6.x
  2016-01-25 22:20 ` [PATCH 1/5] xen: update git version to 4.6.x Chris Patterson
@ 2016-01-26 15:58   ` Doug Goldstein
  0 siblings, 0 replies; 13+ messages in thread
From: Doug Goldstein @ 2016-01-26 15:58 UTC (permalink / raw)
  To: Chris Patterson; +Cc: meta-virtualization@yoctoproject.org

[-- Attachment #1: Type: text/plain, Size: 762 bytes --]

On 1/25/16 4:20 PM, Chris Patterson wrote:
> I gave series a spin.  Xen 4.6 built and ran nicely.  On the git
> version, I received: "Fetcher failure: Unable to find revision
> 1fd615aa0108490ffc558d27627f509183cbfdaf in branch master even from
> upstream"
> 
> Had to set branch=staging-4.6 to get it to fetch OK.  With the rest of
> this patch series applied, I also needed to move more of the common
> bits into xen.inc to get it to build for x86_64.  Any thoughts on
> moving the EXTRA_OEMAKE,
> xen-x86-Fix-up-rules-when-forcing-mno-sse.patch, and
> do_install_append() to the .inc as well?
> 
> Cheers for the cleanup :)
> 

Yes. I actually have more patches and didn't include them for some
reason. I'll repost.

-- 
Doug Goldstein


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 978 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/5] xen: drop explicit DEPEND on libgcc
  2016-01-26 15:19     ` Doug Goldstein
@ 2016-01-26 23:14       ` Richard Purdie
  0 siblings, 0 replies; 13+ messages in thread
From: Richard Purdie @ 2016-01-26 23:14 UTC (permalink / raw)
  To: Doug Goldstein, Chris Patterson; +Cc: meta-virtualization@yoctoproject.org

On Tue, 2016-01-26 at 09:19 -0600, Doug Goldstein wrote:
> hmm. I'd rather respin it without that change then. Interesting that
> the
> NEEDED check doesn't pick it up as a dependency.

Its a known issue with the way libpthread dlopen()s libgcc. In some
ways, the pthread library should really RRECOMMEND libgcc, however
since its part of the main glibc package, that would mean libgcc
effectively everywhere.

Its only used by a limited subset of the pthread functionality so there
are cases you don't need it.

Cheers,

Richard




^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-01-26 23:14 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-25 15:29 [PATCH 1/5] xen: update git version to 4.6.x Doug Goldstein
2016-01-25 15:29 ` [PATCH 2/5] xen: drop explicit DEPEND on libgcc Doug Goldstein
2016-01-25 23:24   ` Chris Patterson
2016-01-26 15:19     ` Doug Goldstein
2016-01-26 23:14       ` Richard Purdie
2016-01-25 15:29 ` [PATCH 3/5] xen: fix up typo in XSM comments Doug Goldstein
2016-01-25 22:21   ` Chris Patterson
2016-01-25 15:29 ` [PATCH 4/5] xen: separate the extra steps into their own tasks Doug Goldstein
2016-01-25 22:30   ` Chris Patterson
2016-01-25 15:29 ` [PATCH 5/5] xen: move bits common to all Xen versions to xen.inc Doug Goldstein
2016-01-25 22:34   ` Chris Patterson
2016-01-25 22:20 ` [PATCH 1/5] xen: update git version to 4.6.x Chris Patterson
2016-01-26 15:58   ` Doug Goldstein

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.