Bug 4758

Summary: adt_installer: perl lib version doesn't match perl script on Ubuntu-13.04
Product: [Yocto Project Subprojects] ADT Reporter: Hongxu Jia <hongxu.jia>
Component: adtAssignee: Hongxu Jia <hongxu.jia>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium CC: hongxu.jia, jessica.zhang, kai.kang, liezhi.yang, mark.hatle, ning.zhang, poky.adt.watcher, poky.watcher, Qi.Chen, sen.zhang, sgw, yi.zhao
Version: 1.5   
Target Milestone: 1.5 M2   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---

Description Hongxu Jia 2013-06-21 07:43:21 UTC
Build Configuration:
BB_VERSION        = "1.19.1"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Ubuntu-13.04"
TARGET_SYS        = "i586-poky-linux"
MACHINE           = "qemux86"
DISTRO            = "poky"
DISTRO_VERSION    = "1.4+snapshot-20130620"
TUNE_FEATURES     = "m32 i586"
TARGET_FPU        = ""
meta              
meta-yocto        
meta-yocto-bsp    = "hongxu-0620-adt:e04e6dab0afa8f72bf001b0cc106cd13b7694a91"

* Problem
Steps:
1) build adt-installer and extract

2) modify adt_installer.conf, config a valid YOCTOADT_REPO, and modify
opkg/conf, config a valid src url. The valid src url is:
http://adtrepo-dev.yoctoproject.org/1.4+snapshot-4ecdc62a74cb4b5d0431d783a
ab5ee266baf833d-stage/master_under_test/

3) run "./adt_installer" to install the adt to the default location.

4) when the installation finish, run "source /opt/poky/1.4+snapshot/envir
onment-setup-armv5te-poky-linux-gnueabi"

5) try to compile iptables-1.4.15. When run "autoreconf -fi", will get the
following errors:
...
Perl lib version (5.14.3) doesn't match executable '/opt/poky/1.4+snapshot
/sysroots/x86_64-pokysdk-linux/usr/bin/autom4te' version (v5.14.2) at /opt
/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux//usr/lib/perl/5.14.3/Con
fig.pm line 60.
...

6) The host's perl version is v5.14.2, sdk's perl version is v5.14.3

* Analysis
This is because most of the autotools' scripts use the "#!/usr/bin/perl -w"
which is host perl, but the gnu-configize uses "#! /usr/bin/env perl" which
invokes the perl wrapper in the SDK, and the wrapper will set the PERL5LIB to
the SDK which causes the mismatch.

* Solution
We can make all the perl scripts to use the host perl or the SDK perl to
fix this problem.

Similar issue has been fixed in populate_sdk_base:
http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=aeb53bd78991af9fbb60d64176ec864cfc2ddbb9