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

Hongxu Jia hongxu.jia at windriver.com
Tue Oct 2 16:00:16 UTC 2018


On 2018年10月02日 03:46, Burton, Ross wrote:
> If the test case needs debug symbols then I'd suggest we just disable
> that test.  Especially as the test starts with this comment:
>
> "NOTE: developer test! It's possible that it won't run on your\n",
> "platform, and that's perfectly fine. This is mainly for developers\n",
The whole comment is to emphasize the test works on Unix
(which includes Linux I think)
[snip]
note
     "NOTE: developer test!  It's possible that it won't run on your\n",
     "platform, and that's perfectly fine.  This is mainly for 
developers\n",
     "on Unix to check that our shared libraries are consistent with the\n",
     "ordinals (util/*.num in the source tree), something that should be\n",
     "good enough a check for the other platforms as well.\n";
[snip]

But, the ptest runtime depends dbg package for a single case breaks sanity
check, and the case of test symbol presence is not critical, so disable 
it is
an acceptable option, V3 incoming

//Hongxu


> Ross
> On Mon, 1 Oct 2018 at 16:49, Hongxu Jia <hongxu.jia at windriver.com> wrote:
>> Sorry for missing V2 in subject
>>
>> //Hongxu
>>
>> On 2018年10月01日 23:47, Hongxu Jia wrote:
>>> 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"
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core





More information about the Openembedded-core mailing list