[OE-core] [PATCH] kernel-yocto.bbclass: export LD in the environment used by kconf_check

Martin Jansa martin.jansa at gmail.com
Mon Feb 3 22:44:20 UTC 2020


* resolves following exceptions in log.do_kernel_configcheck:
DEBUG: Executing python function do_kernel_configcheck
Traceback (most recent call last):
  File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2776, in _expand_macro
    res += args[int(new_args[0])]
ValueError: invalid literal for int() with base 10: 'error-if'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/symbol_why.py", line 295, in <module>
    conf = kconfiglib.Kconfig( kconf, show_errors, show_errors )
  File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 947, in __init__
    self._init(filename, warn, warn_to_stderr, encoding)
  File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 1085, in _init
    self._parse_block(None, self.top_node, self.top_node).next = None
  File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2982, in _parse_block
    prev = self._parse_block(None, parent, prev)
  File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2907, in _parse_block
    while self._next_line():
  File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2234, in _next_line
    self._tokens = self._tokenize(line)
  File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2364, in _tokenize
    self._parse_assignment(s)
  File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2604, in _parse_assignment
    s, i = self._expand_macro(s, i, ())
  File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2780, in _expand_macro
    res += self._fn_val(new_args)
  File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2843, in _fn_val
    return py_fn(self, *args)
  File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 6769, in _error_if_fn
    kconf.filename, kconf.linenr, msg))
kconfiglib.KconfigError: scripts/Kconfig.include:39:  gold linker 'x86_64-oe-linux-ld --sysroot=/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot  ' not supported
Traceback (most recent call last):
  File "/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/bin/kconfiglib.py", line 2776, in _expand_macro
    res += args[int(new_args[0])]
ValueError: invalid literal for int() with base 10: 'error-if'

* there is still 291 mismatched options in default 5.4.15 builds,
  but at least the 11804 lines long log doesn't start with 9022 lines of above exceptions

  DEBUG: Executing python function do_kernel_configcheck
  [mismatch (291)]: /OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source/.kernel-meta/cfg/mismatch.txt
     There were hardware options requested that do not
     have a corresponding value present in the final ".config" file.
     This probably means you aren't getting the config you wanted.

  WARNING: [kernel config]: specified values did not make it into the kernel's final configuration:
  ...

Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
---
 meta/classes/kernel-yocto.bbclass | 1 +
 1 file changed, 1 insertion(+)

diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 87c681f1c3..141eeafeb9 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -370,6 +370,7 @@ python do_kernel_configcheck() {
 
     env = os.environ.copy()
     env['PATH'] = "%s:%s%s" % (d.getVar('PATH'), s, "/scripts/util/")
+    env['LD'] = "${KERNEL_LD}"
 
     try:
         configs = subprocess.check_output(['scc', '--configs', '-o', s + '/.kernel-meta'], env=env).decode('utf-8')
-- 
2.20.1



More information about the Openembedded-core mailing list