1*4882a593SmuzhiyunFrom d111fd85b25466f7829ccee34493aa0e3b551308 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Mingli Yu <mingli.yu@windriver.com>
3*4882a593SmuzhiyunDate: Tue, 23 Apr 2019 19:13:19 -0700
4*4882a593SmuzhiyunSubject: [PATCH] CheckLib.pm: don't execute the binary
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunDon't execute the binary in build env as the
7*4882a593Smuzhiyunbinary which is generated in cross compile env
8*4882a593Smuzhiyunmay fail when executed in build env.
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunAnd it's enough to verify the libs via successully
11*4882a593Smuzhiyungenerate the binary which links the libs as below.
12*4882a593Smuzhiyun  $ /yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/libdbd-mysql-perl/4.050-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-gcc \
13*4882a593Smuzhiyun  -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security \
14*4882a593Smuzhiyun  -Werror=format-security --sysroot=/yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/libdbd-mysql-perl/4.050-r0/recipe-sysroot \
15*4882a593Smuzhiyun  -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/perl/5.28.1-r1=/usr/src/debug/perl/5.28.1-r1 \
16*4882a593Smuzhiyun  -fdebug-prefix-map=/yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/perl/5.28.1-r1=/usr/src/debug/perl/5.28.1-r1 \
17*4882a593Smuzhiyun  -fdebug-prefix-map=/yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/libdbd-mysql-perl/4.050-r0/recipe-sysroot= -fdebug-prefix-map=/yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/libdbd-mysql-perl/4.050-r0/recipe-sysroot-native= -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 assertlibEhx19yuY.c -L/yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/libdbd-mysql-perl/4.050-r0/recipe-sysroot/usr/lib -lcrypto -fstack-protector-strong -o assertlibCOw_eujb
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunExecute the binary in cross compile env as below
20*4882a593Smuzhiyunand use the return status to determine the lib's
21*4882a593Smuzhiyunchecking status is not appropriate in cross compile env.
22*4882a593Smuzhiyun $ /yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/libdbd-mysql-perl/4.050-r0/git/assertlibCOw_eujb
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunUpstream-Status: Inappropriate[oe specific]
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunSigned-off-by: Mingli Yu <mingli.yu@windriver.com>
27*4882a593Smuzhiyun---
28*4882a593Smuzhiyun lib/Devel/CheckLib.pm | 2 +-
29*4882a593Smuzhiyun 1 file changed, 1 insertion(+), 1 deletion(-)
30*4882a593Smuzhiyun
31*4882a593Smuzhiyundiff --git a/lib/Devel/CheckLib.pm b/lib/Devel/CheckLib.pm
32*4882a593Smuzhiyunindex e45cfb4..d228bb5 100644
33*4882a593Smuzhiyun--- a/lib/Devel/CheckLib.pm
34*4882a593Smuzhiyun+++ b/lib/Devel/CheckLib.pm
35*4882a593Smuzhiyun@@ -424,7 +424,7 @@ sub assert_lib {
36*4882a593Smuzhiyun             my $absexefile = File::Spec->rel2abs($exefile);
37*4882a593Smuzhiyun             $absexefile = '"'.$absexefile.'"' if $absexefile =~ m/\s/;
38*4882a593Smuzhiyun             if (!$not_execute && system($absexefile) != 0) {
39*4882a593Smuzhiyun-                push @wrongresult, $lib;
40*4882a593Smuzhiyun+                print "Checking the lib $lib\n";
41*4882a593Smuzhiyun             }
42*4882a593Smuzhiyun             else {
43*4882a593Smuzhiyun                 if ($analyze_binary) {
44*4882a593Smuzhiyun--
45*4882a593Smuzhiyun2.17.1
46*4882a593Smuzhiyun
47