[OE-core] [PATCH] openssl: fix ptest case `test_symbol_presence' failed

Hongxu Jia hongxu.jia at windriver.com
Mon Oct 1 15:47:05 UTC 2018


The case in ptest use `nm -Pg libcrypto.so' to check symbol presence,
if library is stripped or debug split, the case will fail.

The dbg library keeps symbol table, so tweak to check on it.

Use wildcard `libcrypto.so*' rather than `libcrypto.so.1.1' to compat
the subsequent version upgrade.

The binutils provides `nm', hence add it to ptest runtime depends.
(Without `nm', the test_symbol_presence will be skipped, that's the
reason why ptest passed on a small image, and failed on a full image)

Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
---
 ...test_symbol_presence-check-on-dbg-library.patch | 36 ++++++++++++++++++++++
 meta/recipes-connectivity/openssl/openssl_1.1.1.bb |  6 ++++
 2 files changed, 42 insertions(+)
 create mode 100644 meta/recipes-connectivity/openssl/openssl/0001-test_symbol_presence-check-on-dbg-library.patch

diff --git a/meta/recipes-connectivity/openssl/openssl/0001-test_symbol_presence-check-on-dbg-library.patch b/meta/recipes-connectivity/openssl/openssl/0001-test_symbol_presence-check-on-dbg-library.patch
new file mode 100644
index 0000000..3999aa0
--- /dev/null
+++ b/meta/recipes-connectivity/openssl/openssl/0001-test_symbol_presence-check-on-dbg-library.patch
@@ -0,0 +1,36 @@
+From 2766dc8af70ced2854a6817e67cbac234c99f91f Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia at windriver.com>
+Date: Mon, 1 Oct 2018 22:16:53 +0800
+Subject: [PATCH] test_symbol_presence: check on dbg library
+
+The case uses `nm -Pg libcrypto.so' to check symbol presence,
+if library is stripped or debug splited, the case will fail.
+
+The dbg library has the symbol table, so tweak to check on it.
+
+Use wildcard `libcrypto.so*' rather than `libcrypto.so.1.1' to compat
+the subsequent version upgrade.
+
+Upstream-Status: Inappropriate [OE Specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
+---
+ test/recipes/01-test_symbol_presence.t | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/recipes/01-test_symbol_presence.t b/test/recipes/01-test_symbol_presence.t
+index 7f2a2d7..1668cde 100644
+--- a/test/recipes/01-test_symbol_presence.t
++++ b/test/recipes/01-test_symbol_presence.t
+@@ -32,7 +32,7 @@ note
+ foreach my $libname (@libnames) {
+  SKIP:
+     {
+-        my $shlibpath = bldtop_file("lib" . $libname . ".so");
++        my $shlibpath = bldtop_file(".debug/" . "lib" . $libname . ".so*");
+         *OSTDERR = *STDERR;
+         *OSTDOUT = *STDOUT;
+         open STDERR, ">", devnull();
+-- 
+2.7.4
+
diff --git a/meta/recipes-connectivity/openssl/openssl_1.1.1.bb b/meta/recipes-connectivity/openssl/openssl_1.1.1.bb
index 73bcb27..74b3417 100644
--- a/meta/recipes-connectivity/openssl/openssl_1.1.1.bb
+++ b/meta/recipes-connectivity/openssl/openssl_1.1.1.bb
@@ -13,6 +13,7 @@ DEPENDS = "hostperl-runtime-native"
 SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \
            file://run-ptest \
            file://openssl-c_rehash.sh \
+           file://0001-test_symbol_presence-check-on-dbg-library.patch \
            "
 
 SRC_URI_append_class-nativesdk = " \
@@ -174,6 +175,11 @@ RRECOMMENDS_libcrypto += "openssl-conf"
 RDEPENDS_${PN}-bin = "perl"
 RDEPENDS_${PN}-misc = "perl"
 RDEPENDS_${PN}-ptest += "perl-module-file-spec-functions bash python"
+# The ptest case uses `nm -Pg .debug/libcrypto.so*' to check symbol presence
+RDEPENDS_${PN}-ptest += "${PN}-dbg"
+INSANE_SKIP_${PN}-ptest ?= "debug-deps"
+# The binutils provides `nm'
+RDEPENDS_${PN}-ptest += "binutils"
 
 RPROVIDES_openssl-conf = "openssl10-conf"
 RREPLACES_openssl-conf = "openssl10-conf"
-- 
2.7.4




More information about the Openembedded-core mailing list