Bug 836 - perl compilation error when using sstate cache
Summary: perl compilation error when using sstate cache
Status: RESOLVED WORKSFORME
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: devtools / tool chain (show other bugs)
Version: 1.0
Hardware: x86 Multiple
: Medium normal
Target Milestone: 1.1
Assignee: Wenzong.Fan
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2011-03-09 21:18 UTC by Kevin Tian
Modified: 2011-08-29 19:59 UTC (History)
6 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kevin Tian 2011-03-09 21:18:53 UTC
this is similar to Bug 829 with same error message, but from a different reason:

| ./miniperl -Ilib make_ext.pl cpan/Archive-Extract/pm_to_blib MAKE=make LIBPERL_A=libperl.so
| 	Making Archive::Extract (all)
| 
| Creating Makefile.PL in cpan/Archive-Extract for Archive::Extract
| 
| Running Makefile.PL in cpan/Archive-Extract
| ../../miniperl Makefile.PL INSTALLDIRS=perl INSTALLMAN1DIR=none INSTALLMAN3DIR=none PERL_CORE=1 LIBPERL_A=libperl.so
| Writing Makefile for Archive::Extract
| make[2]: Entering directory `/media/builds-0/demo-0309/tmp/work/core2-poky-linux/perl-5.12.2-r2/perl-5.12.2/cpan/Archive-Extract'
| Can't locate File/Glob.pm in @INC (@INC contains: ../../lib ../../lib ../../cpan/AutoLoader/lib ../../cpan/Cwd ../../cpan/Cwd/lib ../../cpan/ExtUtils-Command/lib ../../dist/ExtUtils-Install/lib ../../cpan/ExtUtils-MakeMaker/lib ../../cpan/ExtUtils-Manifest/lib ../../cpan/File-Path/lib ../../lib /media/builds/master/demo-qemux86-0223/tmp/sysroots/x86_64-linux/usr/lib/perl/5.12.2 /media/builds/master/demo-qemux86-0223/tmp/sysroots/x86_64-linux/usr/lib/perl/5.12.2 /media/builds/master/demo-qemux86-0223/tmp/sysroots/x86_64-linux/usr/lib/perl/5.12.2 .) at ../../cpan/ExtUtils-Command/lib/ExtUtils/Command.pm line 90.
| BEGIN failed--compilation aborted at ../../cpan/ExtUtils-Command/lib/ExtUtils/Command.pm line 90.

miniperl is used which is linked to hostperl which is further linked to sysroot/perl5.12.2. Currently we only provide wrapper to the perl binary, instead of perl5.12.2. Here there're two potential issues to be solved:

a) perl5.12.2 is actually exactly same as perl. I'm not sure why there's such a separate binary with version number. Is a symbol link enough? Or else we need a seperate wrapper script for perl5.12.2 too.

b) don't create hostperl symbol link within perl source directory, which breaks the wrapper script. The wrapper script assumes that the wrapper and the real binary are in same sysroot directory (see "dirname $0" in the wrapper script). However when hostperl is created within perl source directory, the real binary can't be found then. Actually perl-native already creates a hostperl link in sysroot. So we don't need another duplication in target perl recipe.

Again you have to remove the build directory which generates sstate packages to expose this issue.
Comment 1 Wenzong.Fan 2011-08-16 01:36:23 UTC
Currently the perl version is 5.12.3 and this defect can't be reproduced again on master branch.
Comment 2 Wenzong.Fan 2011-08-20 01:58:30 UTC
Can't be reproduced now, might be fixed after the perl upgraded to 5.12.3.
Comment 3 Yi Zhao 2011-08-29 19:59:27 UTC
With latest master branch (git info: 6c2b7beac3cd23ed44bd3e195c6360a0932876bf), this issue can't be reproduced.