Discussion:
Trying to install some cpan modules - dumper.so wrong ELF class???
JC
2013-09-14 15:36:02 UTC
Permalink
Hi,

I need a few CPAN modules. For most of them I had no issue with a common
recipe, but I end up with issues on Net::SDP

here's my recipe :
SUMMARY = "Collection of Perl modules for working with shairport."
SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM =
"file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"

SRC_URI = "http://www.cpan.org/modules/by-module/Net/${BPN}-${PV}.tar.gz "

SRC_URI[md5sum] = "bb70cb8ebb7ca57c20ac134ac4499e66"
SRC_URI[sha256sum] =
"f43fa0f8f9705ae66a4084d13691c2ad7724b381424d368404c3d825bc5782f0"

require cpan.inc

and cpan.inc is :
S= "${WORKDIR}/${BPN}-${PV}"

inherit cpan

do_compile() {
export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name
'libc-*.so')"
cpan_do_compile
}


Here's the error message:

Can't load
'/media/yocto/var_yocto/var_yocto/rpi-build/tmp/sysroots/qemuarm/usr/lib/perl/5.14.3/auto/Data/Dumper/Dumper.so'
for module Data::Dumper:
/media/yocto/var_yocto/var_yocto/rpi-build/tmp/sysroots/qemuarm/usr/lib/perl/5.14.3/auto/Data/Dumper/Dumper.so:
wrong ELF class: ELFCLASS32 at
/media/yocto/var_yocto/var_yocto/rpi-build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.3/XSLoader.pm
li


Does it ring a bell to anyone ???

Regards
Jay
Jean-Charles JC VerdiƩ
2013-09-25 19:32:10 UTC
Permalink
Hi Yoctoers,

Anyone got any idea about this previous mail ?
I need a few CPAN modules. For most of them I had no issue with a common recipe, but I end up with issues on Net::SDP
SUMMARY = "Collection of Perl modules for working with shairport."
SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
SRC_URI = "http://www.cpan.org/modules/by-module/Net/${BPN}-${PV}.tar.gz "
SRC_URI[md5sum] = "bb70cb8ebb7ca57c20ac134ac4499e66"
SRC_URI[sha256sum] = "f43fa0f8f9705ae66a4084d13691c2ad7724b381424d368404c3d825bc5782f0"
require cpan.inc
S= "${WORKDIR}/${BPN}-${PV}"
inherit cpan
do_compile() {
export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
cpan_do_compile
}
Can't load '/media/yocto/var_yocto/var_yocto/rpi-build/tmp/sysroots/qemuarm/usr/lib/perl/5.14.3/auto/Data/Dumper/Dumper.so' for module Data::Dumper: /media/yocto/var_yocto/var_yocto/rpi-build/tmp/sysroots/qemuarm/usr/lib/perl/5.14.3/auto/Data/Dumper/Dumper.so: wrong ELF class: ELFCLASS32 at /media/yocto/var_yocto/var_yocto/rpi-build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.3/XSLoader.pm li
Does it ring a bell to anyone ???
I'd be willing to fix it, but I simply have no clue where to start :(


Regards
Jay
Khem Raj
2013-09-25 19:40:07 UTC
Permalink
Can't load '/media/yocto/var_yocto/var_yocto/rpi-build/tmp/sysroots/qemuarm/usr/lib/perl/5.14.3/auto/Data/Dumper/Dumper.so' for module Data::Dumper: /media/yocto/var_yocto/var_yocto/rpi-build/tmp/sysroots/qemuarm/usr/lib/perl/5.14.3/auto/Data/Dumper/Dumper.so: wrong ELF class: ELFCLASS32 at /media/yocto/var_yocto/var_yocto/rpi-build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.3/XSLoader.pm li
this is reaching out to native-perl mods there. seems its not cross
compiler friendly
look out for variables that are being used to construct path for
XSLoader.pm and use
the correct target paths
JC
2013-09-27 07:50:23 UTC
Permalink
Post by Khem Raj
Can't load '/media/yocto/var_yocto/var_yocto/rpi-build/tmp/sysroots/qemuarm/usr/lib/perl/5.14.3/auto/Data/Dumper/Dumper.so' for module Data::Dumper: /media/yocto/var_yocto/var_yocto/rpi-build/tmp/sysroots/qemuarm/usr/lib/perl/5.14.3/auto/Data/Dumper/Dumper.so: wrong ELF class: ELFCLASS32 at /media/yocto/var_yocto/var_yocto/rpi-build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.3/XSLoader.pm li
this is reaching out to native-perl mods there. seems its not cross
compiler friendly
look out for variables that are being used to construct path for
XSLoader.pm and use
the correct target paths
Actually, it seems that this package does not provide the regular .PL
file expected by cpan.
I found out a way to generate it, and I could compile. But as you can
see it uses perl native (I get an x86-64 build), and it's trying to
install on my / directory instead of the rootfs:

ERROR: Logfile of failure stored in:
/media/yocto/yocto/rpi/tmp/work/armv6-vfp-poky-linux-gnueabi/Net-SDP/0.07-r0/temp/log.do_install.30179
Log data follows:
| DEBUG: Executing shell function do_install
| Building Net-SDP
| WARNING: Can't figure out install path for types: bindoc libdoc
| Files will not be installed.
| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
| ERROR: Can't create '/usr/lib/perl/site_perl/5.14.3/Net'
| mkdir /usr/lib/perl/site_perl: Permission denied at
/media/yocto/yocto/rpi/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl//5.14.3/ExtUtils/Install.pm
line 494
|
| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
| at
/media/yocto/yocto/rpi/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.3/Module/Build/Base.pm
line 3569


FWIW, I can do the manual operations in qemu so it's really a matter of
using target perl instead of hosted perl I think :(


I'm investigating a little bit more or I will post additional
information for help :)

Thanks anyway,
Regards
Jay

Loading...