78 lines
2.6 KiB
Diff
78 lines
2.6 KiB
Diff
|
|
From 53ceb2d4167b05374678b966031b3d52fc5080a2 Mon Sep 17 00:00:00 2001
|
||
|
|
From: Debbie Martin <Debbie.Martin@arm.com>
|
||
|
|
Date: Fri, 29 Sep 2023 15:22:17 +0100
|
||
|
|
Subject: [PATCH] check-sr-results: Device tree improvements
|
||
|
|
|
||
|
|
Make check-sr-results.py accept 'extra_compat' configuration for
|
||
|
|
devicetree files, and pass these in the compat list given to
|
||
|
|
dt-parser.py.
|
||
|
|
|
||
|
|
Update dt-parser.py to parse the GCC version line in the dtb log.
|
||
|
|
|
||
|
|
Upstream-Status: Pending
|
||
|
|
Signed-off-by: Debbie Martin <Debbie.Martin@arm.com>
|
||
|
|
---
|
||
|
|
check-sr-results.py | 12 ++++++++++--
|
||
|
|
dt-parser.py | 8 ++++++++
|
||
|
|
2 files changed, 18 insertions(+), 2 deletions(-)
|
||
|
|
|
||
|
|
diff --git a/check-sr-results.py b/check-sr-results.py
|
||
|
|
index 48658f0..a207a39 100755
|
||
|
|
--- a/check-sr-results.py
|
||
|
|
+++ b/check-sr-results.py
|
||
|
|
@@ -598,7 +598,7 @@ def need_regen(filename, deps, margin=0):
|
||
|
|
# We run dtc and dt-validate to produce the log when needed.
|
||
|
|
# We add markers to the log, which will be ignored by dt-parser.py.
|
||
|
|
# We return a Stats object.
|
||
|
|
-def check_devicetree(filename):
|
||
|
|
+def check_devicetree(filename, extra_compat=None):
|
||
|
|
logging.debug(f"Check Devicetree `{filename}'")
|
||
|
|
stats = Stats()
|
||
|
|
log = f"{filename}.log"
|
||
|
|
@@ -644,6 +644,9 @@ def check_devicetree(filename):
|
||
|
|
# We use the compatible strings extracted from Linux bindings to filter out
|
||
|
|
# more false positive.
|
||
|
|
compat = get_compat()
|
||
|
|
+ if extra_compat:
|
||
|
|
+ with open(compat, "a") as compat_file:
|
||
|
|
+ compat_file.write("\n".join(extra_compat))
|
||
|
|
cp = run(f"{dt_parser} --compatibles '{compat}' '{log}'")
|
||
|
|
|
||
|
|
if cp.returncode:
|
||
|
|
@@ -930,7 +933,12 @@ def check_file(conffile, filename):
|
||
|
|
stats.add(check_uefi_capsule(filename))
|
||
|
|
|
||
|
|
if 'devicetree' in conffile:
|
||
|
|
- stats.add(check_devicetree(filename))
|
||
|
|
+ stats.add(
|
||
|
|
+ check_devicetree(
|
||
|
|
+ filename,
|
||
|
|
+ extra_compat=conffile.get("extra_compat")
|
||
|
|
+ )
|
||
|
|
+ )
|
||
|
|
|
||
|
|
if 'uefi-sniff' in conffile:
|
||
|
|
stats.add(check_uefi_sniff(filename))
|
||
|
|
diff --git a/dt-parser.py b/dt-parser.py
|
||
|
|
index 3eccd74..c1c0031 100755
|
||
|
|
--- a/dt-parser.py
|
||
|
|
+++ b/dt-parser.py
|
||
|
|
@@ -181,6 +181,14 @@ def parse(filename):
|
||
|
|
}
|
||
|
|
continue
|
||
|
|
|
||
|
|
+ # line [GCC <version>]
|
||
|
|
+ m = re.match(r'\[GCC [0-9\.]+\]', line)
|
||
|
|
+ if m:
|
||
|
|
+ logging.debug(
|
||
|
|
+ f"line {i}: GCC version (`{line}')"
|
||
|
|
+ )
|
||
|
|
+ continue
|
||
|
|
+
|
||
|
|
# If we could not parse the line we arrive here and complain.
|
||
|
|
logging.warning(f"Unparsed line {i}: `{line}'")
|
||
|
|
|
||
|
|
--
|
||
|
|
2.25.1
|
||
|
|
|