libdev-checklib-perl: add new recipe

It provides the perl module (Devel::CheckLib) which
may needed by other package which uses it to
check libs.

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Mingli Yu
2019-04-25 19:10:30 -07:00
committed by Khem Raj
parent 7392f986b6
commit a57a63f0c9
2 changed files with 67 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
From d111fd85b25466f7829ccee34493aa0e3b551308 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Tue, 23 Apr 2019 19:13:19 -0700
Subject: [PATCH] CheckLib.pm: don't execute the binary
Don't execute the binary in build env as the
binary which is generated in cross compile env
may fail when executed in build env.
And it's enough to verify the libs via successully
generate the binary which links the libs as below.
$ /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 \
-m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security \
-Werror=format-security --sysroot=/yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/libdbd-mysql-perl/4.050-r0/recipe-sysroot \
-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 \
-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 \
-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
Execute the binary in cross compile env as below
and use the return status to determine the lib's
checking status is not appropriate in cross compile env.
$ /yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/libdbd-mysql-perl/4.050-r0/git/assertlibCOw_eujb
Upstream-Status: Inappropriate[oe specific]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
lib/Devel/CheckLib.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/Devel/CheckLib.pm b/lib/Devel/CheckLib.pm
index e45cfb4..d228bb5 100644
--- a/lib/Devel/CheckLib.pm
+++ b/lib/Devel/CheckLib.pm
@@ -424,7 +424,7 @@ sub assert_lib {
my $absexefile = File::Spec->rel2abs($exefile);
$absexefile = '"'.$absexefile.'"' if $absexefile =~ m/\s/;
if (!$not_execute && system($absexefile) != 0) {
- push @wrongresult, $lib;
+ print "Checking the lib $lib\n";
}
else {
if ($analyze_binary) {
--
2.17.1

View File

@@ -0,0 +1,21 @@
SUMMARY = "A Perl module that checks whether a particular C library and its headers are available"
DESCRIPTION = "This module provides a way of checking whether a particular library \
and its headers are available, by attempting to compile a simple program and \
link against it."
HOMEPAGE = "https://metacpan.org/pod/Devel::CheckLib"
SECTION = "libs"
LICENSE = "Artistic-1.0 | GPL-1.0+"
LIC_FILES_CHKSUM = "file://README;md5=7911cdbb572d25c5f2e2ea17f669efc2"
SRC_URI = "https://cpan.metacpan.org/modules/by-module/Devel/Devel-CheckLib-${PV}.tar.gz \
file://0001-CheckLib.pm-don-t-execute-the-binary.patch \
"
SRC_URI[md5sum] = "930216c5abc0f016df8a7539d48c891a"
SRC_URI[sha256sum] = "24adfd908705dfac4bb320711763f37126b75cf54b3566c2c27c7cdef9c429a8"
S = "${WORKDIR}/Devel-CheckLib-${PV}"
inherit cpan
BBCLASSEXTEND="native"