[OE-core] [PATCH] nss: avoid to use the hardcode kernel version

Kang Kai Kai.Kang at windriver.com
Fri Apr 4 02:53:05 UTC 2014


On 2014年04月03日 20:00, Richard Purdie wrote:
> On Wed, 2014-04-02 at 10:35 +0800, Kang Kai wrote:
>> On 2014年03月31日 22:20, Kai Kang wrote:
>>> From: Roy Li <rongqing.li at windriver.com>
>>>
>>> When native package is built, use the uname to return the kernel version.
>>>
>>> When target is built, read kernel version from ${STAGING_KERNEL_DIR}/kernel-abiversion
>>> to avoid to use the hardcode kernel version.
>>>
>>> Signed-off-by: Roy Li <rongqing.li at windriver.com>
>>> Signed-off-by: Kai Kang <kai.kang at windriver.com>
>>> ---
>>>    meta/recipes-support/nss/nss.inc | 15 +++++++++++++--
>>>    1 file changed, 13 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/meta/recipes-support/nss/nss.inc b/meta/recipes-support/nss/nss.inc
>>> index 404decc..f24da68 100644
>>> --- a/meta/recipes-support/nss/nss.inc
>>> +++ b/meta/recipes-support/nss/nss.inc
>>> @@ -26,6 +26,7 @@ SRC_URI_append_class-target = "\
>>>    inherit siteinfo
>>>    PR = "r0"
>>>    DEPENDS = "sqlite3 nspr zlib nss-native"
>>> +DEPENDS_append_class-target += "virtual/kernel"
>>>    DEPENDS_class-native = "sqlite3-native nspr-native zlib-native"
>>>    RDEPENDS_${PN} = "perl"
>>>    
>>> @@ -37,12 +38,24 @@ TARGET_CC_ARCH += "${LDFLAGS}"
>>>    do_compile_prepend_class-native() {
>>>        export NSPR_INCLUDE_DIR=${STAGING_INCDIR_NATIVE}
>>>        export NSPR_LIB_DIR=${STAGING_LIBDIR_NATIVE}
>>> +    export OS_RELEASE=`uname -r`
>>>    }
>>>    
>>>    do_compile_prepend_class-nativesdk() {
>>>        export LDFLAGS=""
>>>    }
>>>    
>>> +do_compile_prepend_class-target() {
>>> +    export OS_RELEASE=`cat ${STAGING_KERNEL_DIR}/kernel-abiversion|sed 's/-.*//'`
>>> +}
>>> +
>>> +do_install_prepend_class-native() {
>>> +    export OS_RELEASE=`uname -r`
>>> +}
>>> +
>>> +do_install_prepend_class-target() {
>>> +    export OS_RELEASE=`cat ${STAGING_KERNEL_DIR}/kernel-abiversion|sed 's/-.*//'`
>>> +}
>>>    do_compile() {
>>>        export CROSS_COMPILE=1
>>>        export NATIVE_CC="gcc"
>>> @@ -57,7 +70,6 @@ do_compile() {
>>>        export NSS_USE_SYSTEM_SQLITE=1
>>>        export NSS_ENABLE_ECC=1
>>>    
>>> -    export OS_RELEASE=3.4
>> How about use var LINUXLIBCVERSION:
>>
>> export OS_RELEASE="${@d.getVar('LINUXLIBCVERSION', True)}"
>>
>> it should be the same value with kernel version, right?
> As others have replied, that is usually much more recent than the oldest
> kernel we support. What does nss do with this value? Is it about the
> header versions? Would something run on an older kernel with a newer
> value for OS_RELEASE?

I misunderstanding the usage of LINUXLIBCVERSION. What nss needs is just 
current kernel version to export for build:

-    export OS_RELEASE=3.4

Currently it is a fix string, and I think it is a problem.

Regards,
Kai


>
> We also have the OLDEST_KERNEL variable (currently at 2.6.16) FWIW.
>
> Cheers,
>
> Richard
>
>
>


-- 
Regards,
Neil | Kai Kang




More information about the Openembedded-core mailing list