Patchwork [1/1] nativesdk-glib-2.0: cannot build on hosts without libffi.so.5

login
register
mail settings
Submitter jackie huang
Date July 8, 2013, 4:11 a.m.
Message ID <45395363a744785f10811752669eac4a7c43f52a.1373254421.git.jackie.huang@windriver.com>
Download mbox | patch
Permalink /patch/53275/
State New
Headers show

Comments

jackie huang - July 8, 2013, 4:11 a.m.
From: Jackie Huang <jackie.huang@windriver.com>

The compile phase of nativesdk-glib-2.0 tries to run some binaries built
and since the -Wl,rpath doesn't specify the sysroot libraries with libffi.so.5,
attempts to run the binrary on hosts without libffi.so.5 results in an error
message complaining that it cannot find libffi.so.5, to fix this, specify
-Wl,rpath == -Wl,rpath-link

Signed-off-by: Amy Fong <amy.fong@windriver.com>
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
---
 meta/recipes-core/glib-2.0/glib-2.0_2.36.2.bb |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
Saul Wold - July 8, 2013, 3:29 p.m.
On 07/07/2013 09:11 PM, jackie.huang@windriver.com wrote:
> From: Jackie Huang <jackie.huang@windriver.com>
>
> The compile phase of nativesdk-glib-2.0 tries to run some binaries built
> and since the -Wl,rpath doesn't specify the sysroot libraries with libffi.so.5,
> attempts to run the binrary on hosts without libffi.so.5 results in an error
> message complaining that it cannot find libffi.so.5, to fix this, specify
> -Wl,rpath == -Wl,rpath-link

I am not sure this makes sense, we have relocation code already, and 
glib-2.0 DEPENDS on libffi, so it should be available.  What binary is 
being run?  That same binary might be built for the target and would 
have to be run native, so I think this is not correct.

Sau!

>
> Signed-off-by: Amy Fong <amy.fong@windriver.com>
> Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
> ---
>   meta/recipes-core/glib-2.0/glib-2.0_2.36.2.bb |    7 +++++++
>   1 files changed, 7 insertions(+), 0 deletions(-)
>
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.36.2.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.36.2.bb
> index ffe34ac..bd4f526 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0_2.36.2.bb
> +++ b/meta/recipes-core/glib-2.0/glib-2.0_2.36.2.bb
> @@ -46,6 +46,13 @@ RDEPENDS_${PN}-ptest_append_libc-glibc = "\
>               eglibc-localedata-translit-cjk-variants \
>              "
>
> +BUILDSDK_LDFLAGS = "-L${STAGING_LIBDIR} \
> +                    -Wl,-rpath-link,${STAGING_LIBDIR} \
> +                    -Wl,-rpath,${STAGING_LIBDIR} -Wl,-O1 \
> +                    -L${STAGING_DIR_HOST}${base_libdir} \
> +                    -Wl,-rpath-link,${STAGING_DIR_HOST}${base_libdir} \
> +                    -Wl,-rpath,${STAGING_DIR_HOST}${base_libdir} -Wl,-O1"
> +
>   do_configure_prepend() {
>   	sed -i -e '1s,#!.*,#!${USRBINPATH}/env python,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
>   }
>

Patch

diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.36.2.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.36.2.bb
index ffe34ac..bd4f526 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0_2.36.2.bb
+++ b/meta/recipes-core/glib-2.0/glib-2.0_2.36.2.bb
@@ -46,6 +46,13 @@  RDEPENDS_${PN}-ptest_append_libc-glibc = "\
             eglibc-localedata-translit-cjk-variants \
            "
 
+BUILDSDK_LDFLAGS = "-L${STAGING_LIBDIR} \
+                    -Wl,-rpath-link,${STAGING_LIBDIR} \
+                    -Wl,-rpath,${STAGING_LIBDIR} -Wl,-O1 \
+                    -L${STAGING_DIR_HOST}${base_libdir} \
+                    -Wl,-rpath-link,${STAGING_DIR_HOST}${base_libdir} \
+                    -Wl,-rpath,${STAGING_DIR_HOST}${base_libdir} -Wl,-O1"
+
 do_configure_prepend() {
 	sed -i -e '1s,#!.*,#!${USRBINPATH}/env python,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
 }