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