Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failure to parse Kconfig.include on kernels with version >=5.12.1 #109

Open
oddlama opened this issue Aug 9, 2021 · 0 comments
Open

Failure to parse Kconfig.include on kernels with version >=5.12.1 #109

oddlama opened this issue Aug 9, 2021 · 0 comments

Comments

@oddlama
Copy link

oddlama commented Aug 9, 2021

Kconfiglib fails to correctly parse the "newer" Kconfig.include files that are used from kernel 5.12.1 and upwards. To reproduce, simply download a recent kernel, and run something like this:

import kconfiglib
kconfig = kconfiglib.Kconfig("/usr/src/linux/Kconfig")

You will be getting an error, stating that there seems to be a linker support error, although running make works just fine with the same environment. For reference, this was tested on a clean gentoo installation (on 2021-08-09) with kernel 5.13.8-gentoo.

Traceback (most recent call last):
  File "/root/.local/lib/python3.9/site-packages/kconfiglib.py", line 2783, 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 "/root/.local/lib/python3.9/site-packages/autokernel/kconfig.py", line 127, in load_kconfig
    kconfig = kconfiglib.Kconfig(os.path.realpath(kconfig_file), warn_to_stderr=False)
  File "/root/.local/lib/python3.9/site-packages/kconfiglib.py", line 947, in __init__
    self._init(filename, warn, warn_to_stderr, encoding)
  File "/root/.local/lib/python3.9/site-packages/kconfiglib.py", line 1085, in _init
    self._parse_block(None, self.top_node, self.top_node).next = None
  File "/root/.local/lib/python3.9/site-packages/kconfiglib.py", line 2989, in _parse_block
    prev = self._parse_block(None, parent, prev)
  File "/root/.local/lib/python3.9/site-packages/kconfiglib.py", line 2914, in _parse_block
    while self._next_line():
  File "/root/.local/lib/python3.9/site-packages/kconfiglib.py", line 2236, in _next_line
    self._tokens = self._tokenize(line)
  File "/root/.local/lib/python3.9/site-packages/kconfiglib.py", line 2371, in _tokenize
    self._parse_assignment(s)
  File "/root/.local/lib/python3.9/site-packages/kconfiglib.py", line 2611, in _parse_assignment
    s, i = self._expand_macro(s, i, ())
  File "/root/.local/lib/python3.9/site-packages/kconfiglib.py", line 2787, in _expand_macro
    res += self._fn_val(new_args)
  File "/root/.local/lib/python3.9/site-packages/kconfiglib.py", line 2850, in _fn_val
    return py_fn(self, *args)
  File "/root/.local/lib/python3.9/site-packages/kconfiglib.py", line 6776, in _error_if_fn
    raise KconfigError("{}:{}: {}".format(
kconfiglib.KconfigError: scripts/Kconfig.include:56: Sorry, this linker is not supported.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant