[oe-commits] Armin Kuster : problems building Gem that contains C code

git at git.openembedded.org git at git.openembedded.org
Mon Jun 8 12:17:49 UTC 2015


Module: meta-openembedded.git
Branch: master-next
Commit: fda9b6b359b60b51980367f3fe8de9d6e9fda831
URL:    http://git.openembedded.org/?p=meta-openembedded.git&a=commit;h=fda9b6b359b60b51980367f3fe8de9d6e9fda831

Author: Armin Kuster <akuster808 at gmail.com>
Date:   Thu May 14 13:53:28 2015 -0700

problems building Gem that contains C code

Eduardo,

I think one issue is --sysroot is using the host path that might be
contributing to the Arch mismatch message. I have a patch that I have
not submitted, yet.

Regarding the .debug, you might need to add

FILE_${PN}-dbg +=
"/usr/lib/ruby/gems/2.2.0/gems/msgpack-0.5.11/lib/msgpack/.debug"

It you could try the patch I have attached and let me know if it helps.

regards,
Armin

On 05/14/2015 06:25 AM, Eduardo Silva wrote:
> Hi,
>
> I am packaging a Ruby gem that also contains C code:
>
>    http://github.com/msgpack/msgpack-ruby
>
> but when building it raise many QA issues about linking to 64 bits version,
> my target is "i586-poky-linux":
>
> ERROR: QA Issue: Architecture did not match (3 to 62) on
> /work/i586-poky-linux/ruby-msgpack/0.5.11-r0/packages-split/ruby-msgpack-dbg/usr/lib/ruby/gems/2.2.0/gems/msgpack-0.5.11/lib/msgpack/.debug/msgpack.so
> [arch]
> ERROR: QA Issue: non debug package contains .debug directory: ruby-msgpack
> path
> /work/i586-poky-linux/ruby-msgpack/0.5.11-r0/packages-split/ruby-msgpack/usr/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0/msgpack-0.5.11/msgpack/.debug/msgpack.so
> [debug-files]
> ERROR: QA Issue: Architecture did not match (3 to 62) on
> /work/i586-poky-linux/ruby-msgpack/0.5.11-r0/packages-split/ruby-msgpack/usr/lib/ruby/gems/2.2.0/gems/msgpack-0.5.11/lib/msgpack/msgpack.so
> [arch]
> WARNING: QA Issue: ruby-msgpack requires libruby.so.2.2()(64bit),
> libc.so.6(GLIBC_2.14)(64bit), libc.so.6(GLIBC_2.4)(64bit),
> libc.so.6()(64bit), libc.so.6(GLIBC_2.2.5)(64bit), but no providers in its
> RDEPENDS [file-rdeps]
> ERROR: QA run found fatal errors. Please consider fixing them.
> ERROR: Function failed: do_package_qa
> ERROR: Logfile of failure stored in:
> /home/edsiper/coding/poky/build/tmp/work/i586-poky-linux/ruby-msgpack/0.5.11-r0/temp/log.do_package_qa.7603
> ERROR: Task 9
> (/home/edsiper/coding/poky/meta-fluentd/recipes-core/ruby-msgpack/
> ruby-msgpack_git.bb, do_package_qa) failed with exit code '1'
>
> would you please advice if some specific flag/setup is required to build
> Ruby gems that contains C code ?
>
> thanks,
>

>From 7c2ccc0218c08751b143b5167ab83a83b985d034 Mon Sep 17 00:00:00 2001
From: Armin Kuster <akuster808 at gmail.com>
Date: Thu, 14 May 2015 13:02:35 -0700
Subject: [PATCH] ruby: fix  sysroot issue

The --sysroot=/ is set to the host path, when using ruby on a target
machine.

This only becomes a problem with compiling native support using gems.

thanks to Robert Bevan

Signed-off-by: Armin Kuster <akuster808 at gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>

---

 meta-ruby/recipes-devtools/ruby/ruby_2.2.2.bb | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/meta-ruby/recipes-devtools/ruby/ruby_2.2.2.bb b/meta-ruby/recipes-devtools/ruby/ruby_2.2.2.bb
index 78c943c..2bf0a00 100644
--- a/meta-ruby/recipes-devtools/ruby/ruby_2.2.2.bb
+++ b/meta-ruby/recipes-devtools/ruby/ruby_2.2.2.bb
@@ -31,6 +31,12 @@ do_install() {
     oe_runmake 'DESTDIR=${D}' install
 }
 
+do_install_append () {
+if [ "${PN}" != "ruby-native" ]; then
+    sed -i "s/sysroot=[0-9a-z\/\-]*/sysroot=\//g" ${D}/usr/lib/ruby/*/*/rbconfig.rb
+fi
+}
+
 FILES_${PN} += "${datadir}/rubygems \
                 ${datadir}/ri"
 



More information about the Openembedded-commits mailing list