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

Submitted by jackie huang on July 8, 2013, 4:11 a.m.

Details

Message ID 45395363a744785f10811752669eac4a7c43f52a.1373254421.git.jackie.huang@windriver.com
State New
Headers show

Commit Message

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(-)

Patch hide | download patch | download mbox

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
 }

Comments

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
>   }
>