Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 1 | From 53ceb2d4167b05374678b966031b3d52fc5080a2 Mon Sep 17 00:00:00 2001 |
| 2 | From: Debbie Martin <Debbie.Martin@arm.com> |
| 3 | Date: Fri, 29 Sep 2023 15:22:17 +0100 |
| 4 | Subject: [PATCH] check-sr-results: Device tree improvements |
| 5 | |
| 6 | Make check-sr-results.py accept 'extra_compat' configuration for |
| 7 | devicetree files, and pass these in the compat list given to |
| 8 | dt-parser.py. |
| 9 | |
| 10 | Update dt-parser.py to parse the GCC version line in the dtb log. |
| 11 | |
| 12 | Upstream-Status: Pending |
| 13 | Signed-off-by: Debbie Martin <Debbie.Martin@arm.com> |
| 14 | --- |
| 15 | check-sr-results.py | 12 ++++++++++-- |
| 16 | dt-parser.py | 8 ++++++++ |
| 17 | 2 files changed, 18 insertions(+), 2 deletions(-) |
| 18 | |
| 19 | diff --git a/check-sr-results.py b/check-sr-results.py |
| 20 | index 48658f0..a207a39 100755 |
| 21 | --- a/check-sr-results.py |
| 22 | +++ b/check-sr-results.py |
| 23 | @@ -598,7 +598,7 @@ def need_regen(filename, deps, margin=0): |
| 24 | # We run dtc and dt-validate to produce the log when needed. |
| 25 | # We add markers to the log, which will be ignored by dt-parser.py. |
| 26 | # We return a Stats object. |
| 27 | -def check_devicetree(filename): |
| 28 | +def check_devicetree(filename, extra_compat=None): |
| 29 | logging.debug(f"Check Devicetree `{filename}'") |
| 30 | stats = Stats() |
| 31 | log = f"{filename}.log" |
| 32 | @@ -644,6 +644,9 @@ def check_devicetree(filename): |
| 33 | # We use the compatible strings extracted from Linux bindings to filter out |
| 34 | # more false positive. |
| 35 | compat = get_compat() |
| 36 | + if extra_compat: |
| 37 | + with open(compat, "a") as compat_file: |
| 38 | + compat_file.write("\n".join(extra_compat)) |
| 39 | cp = run(f"{dt_parser} --compatibles '{compat}' '{log}'") |
| 40 | |
| 41 | if cp.returncode: |
| 42 | @@ -930,7 +933,12 @@ def check_file(conffile, filename): |
| 43 | stats.add(check_uefi_capsule(filename)) |
| 44 | |
| 45 | if 'devicetree' in conffile: |
| 46 | - stats.add(check_devicetree(filename)) |
| 47 | + stats.add( |
| 48 | + check_devicetree( |
| 49 | + filename, |
| 50 | + extra_compat=conffile.get("extra_compat") |
| 51 | + ) |
| 52 | + ) |
| 53 | |
| 54 | if 'uefi-sniff' in conffile: |
| 55 | stats.add(check_uefi_sniff(filename)) |
| 56 | diff --git a/dt-parser.py b/dt-parser.py |
| 57 | index 3eccd74..c1c0031 100755 |
| 58 | --- a/dt-parser.py |
| 59 | +++ b/dt-parser.py |
| 60 | @@ -181,6 +181,14 @@ def parse(filename): |
| 61 | } |
| 62 | continue |
| 63 | |
| 64 | + # line [GCC <version>] |
| 65 | + m = re.match(r'\[GCC [0-9\.]+\]', line) |
| 66 | + if m: |
| 67 | + logging.debug( |
| 68 | + f"line {i}: GCC version (`{line}')" |
| 69 | + ) |
| 70 | + continue |
| 71 | + |
| 72 | # If we could not parse the line we arrive here and complain. |
| 73 | logging.warning(f"Unparsed line {i}: `{line}'") |
| 74 | |
| 75 | -- |
| 76 | 2.25.1 |
| 77 | |