[OE-core] [PATCH 1/2] cpan_build.bbclass: adopt to recent EU::MM

Jens Rehsack rehsack at gmail.com
Sat Jun 9 14:09:37 UTC 2018



> Am 05.06.2018 um 14:37 schrieb Jens Rehsack <rehsack at gmail.com>:
> 
> 
> 
>> Am 05.06.2018 um 10:43 schrieb Richard Purdie <richard.purdie at linuxfoundation.org>:
>> 
>> On Mon, 2018-05-28 at 20:55 +0200, Jens Rehsack wrote:
>>> The modern the time, the improvements in ExtUtils::MakeMaker.
>>> 
>>> Nowadays, .packlist and perllocal.pod aren't touched anymore when appropriate
>>> flags set during configure stage. Controlling the flags globally avoids
>>> dual-life recipes need share patching.
>>> 
>>> Further: remove prepending ${PERL_ARCHLIB} in PERL5LIB - it's wrong (search
>>> order is site_lib, vendor_lib, core) - and ${PERL_ARCHLIB} contains core
>>> libpath only ...
>>> 
>>> Signed-off-by: Jens Rehsack <sno at netbsd.org>
>>> ---
>>> meta/classes/cpan.bbclass | 3 +--
>>> 1 file changed, 1 insertion(+), 2 deletions(-)
>>> 
>> I put this in for testing but I see:
>> 
>> $ SDKMACHINE="i686" bitbake nativesdk-libxml-parser-perl
>> [...]
>> ERROR: nativesdk-libxml-parser-perl-2.44-r0 do_package: nativesdk-libxml-parser-perl: chrpath command failed with exit code 7:
>> b'/media/build1/poky/build/tmp-222/work/i686-nativesdk-pokysdk-linux/nativesdk-libxml-parser-perl/2.44-r0/package/opt/poky/2.5+snapshot/sysroots/i686-pokysdk-linux/usr/lib/perl/vendor_perl/5.24.1/auto/XML/Parser/Expat/Expat.so: RPATH=/media/build1/poky/build/tmp-222/work/i686-nativesdk-pokysdk-linux/nativesdk-libxml-parser-perl/2.44-r0/recipe-sysroot/opt/poky/2.5+snapshot/sysroots/i686-pokysdk-linux/usr/lib\n'b"new rpath '$ORIGIN/../../../../../../../../../../../../../../media/build1/poky/build/tmp-222/work/i686-nativesdk-pokysdk-linux/nativesdk-libxml-parser-perl/2.44-r0/recipe-sysroot/opt/poky/2.5+snapshot/sysroots/i686-pokysdk-linux/usr/lib' too large; maximum length 176\n"
>> ERROR: nativesdk-libxml-parser-perl-2.44-r0 do_package: Function failed: perform_packagecopy
>> ERROR: Logfile of failure stored in: /media/build1/poky/build/tmp-222/work/i686-nativesdk-pokysdk-linux/nativesdk-libxml-parser-perl/2.44-r0/temp/log.do_package.23783
>> ERROR: Task (virtual:nativesdk:/media/build1/poky/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb:do_package) failed with exit code '1'
>> 
>> which seems to reproduce fairly readily both locally and on the
>> autobuilders. Reverting this patch resolves it.
> 
> Without having tested that - this seems to come from
> 
> -	export PERL5LIB="${PERL_ARCHLIB}"
> 
> which is, when do not causing above build failure, kind-of bug-using :)

Indeed ...

I could debug the error message

> b"new rpath '$ORIGIN/../../../../../../../../../../../../../../media/build1/poky/build/tmp-222/work/i686-nativesdk-pokysdk-linux/nativesdk-libxml-parser-perl/2.44-r0/recipe-sysroot/opt/poky/2.5+snapshot/sysroots/i686-pokysdk-linux/usr/lib' too large; maximum length 176\n"

down to perform_packagecopy(d)
 -> rpath_replace (d.getVar('PKGD'), d)
 -> process_dir (d.getVar('PKGD'), d.getVar('PKGD') + bindir, d)
 -> process_file_linux(d.expand('${CHRPATH_BIN}'), '...usr/lib/perl/vendor_perl/5.24.1/auto/XML/Parser/Expat/Expat.so', d.getVar('PKGD'), d.getVar('PKGD') + bindir, os.path.normpath(d.getVar('TMPDIR', False)), d) # with d.getVar('PKGD') as rootdir and d.getVar('PKGD') + bindir as baseprefix
 -> new_rpaths.append("$ORIGIN/" + os.path.relpath(rpath, os.path.dirname(fpath.replace(rootdir, "/"))))

I think, that overflow of RPATH is now detected but could happen (depending on configuration even with a shortened PERL5LIB to PERL_ARCHLIB -- so it should be fixed by computing a better relpath for $ORIGIN instead of hiding the bug again.

> Always prepending ${PERL_ARCHLIB} causes for cross-building the attempt
> of loading sdk-modules, which is evil.
> 
> I'll try to have a detailed look later today or tomorrow.

Sorry for being a bit late - hope it helps to figure out the root cause.

Cheers
--
Jens Rehsack - rehsack at gmail.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180609/45796c88/attachment-0002.sig>


More information about the Openembedded-core mailing list