|
@@ -2,6 +2,7 @@ OE_IMPORTS += "oe.external"
|
|
|
|
|
|
EXTERNAL_TOOLCHAIN_SYSROOT ?= "${@oe.external.run(d, 'gcc', *(TARGET_CC_ARCH.split() + ['-print-sysroot'])).rstrip()}"
|
|
|
EXTERNAL_TOOLCHAIN_LIBROOT ?= "${@oe.external.run(d, 'gcc', *(TARGET_CC_ARCH.split() + ['-print-file-name=crtbegin.o'])).rstrip().replace('/crtbegin.o', '')}"
|
|
|
+EXTERNAL_LIBC_KERNEL_VERSION ?= "${@external_get_kernel_version("${EXTERNAL_TOOLCHAIN_SYSROOT}${prefix}")}"
|
|
|
|
|
|
EXTERNAL_INSTALL_SOURCE_PATHS = "\
|
|
|
${EXTERNAL_TOOLCHAIN_SYSROOT} \
|
|
@@ -28,3 +29,31 @@ def external_run(d, *args):
|
|
|
"""Convenience wrapper"""
|
|
|
oe_import(d)
|
|
|
return oe.external.run(d, *args)
|
|
|
+
|
|
|
+def external_get_kernel_version(p):
|
|
|
+ import re
|
|
|
+ for fn in ['include/linux/utsrelease.h', 'include/generated/utsrelease.h',
|
|
|
+ 'include/linux/version.h']:
|
|
|
+ fn = os.path.join(p, fn)
|
|
|
+ if os.path.exists(fn):
|
|
|
+ break
|
|
|
+ else:
|
|
|
+ return ''
|
|
|
+
|
|
|
+ try:
|
|
|
+ f = open(fn)
|
|
|
+ except IOError:
|
|
|
+ pass
|
|
|
+ else:
|
|
|
+ with f:
|
|
|
+ lines = f.readlines()
|
|
|
+
|
|
|
+ for line in lines:
|
|
|
+ m = re.match(r'#define LINUX_VERSION_CODE (\d+)$', line)
|
|
|
+ if m:
|
|
|
+ code = int(m.group(1))
|
|
|
+ a = code >> 16
|
|
|
+ b = (code >> 8) & 0xFF
|
|
|
+ return '%d.%d' % (a, b)
|
|
|
+
|
|
|
+ return ''
|