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 <[email protected]> --- ...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 <[email protected]> +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 <[email protected]> +--- + 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 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
