RHBZ: #1729039 Upstream status: RHEL >= 8.0.0 only Add modinfo -F vermagic KMOD to the ksc-report, namely the section identifier. Before: {kmod.ko} Now: {kmod.ko@4.18.0-48.el8.x86_64 SMP mod_unload modversions} This will help to determine against which kernel were modules compiled against. This is a non-intrusive change that does not alter the existing structure of ksc report and requires only minor changes to existing ksc parsers/lexers. Signed-off-by: Čestmír Kalina --- ksc.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ksc.py b/ksc.py index 2664d26..57df894 100755 --- a/ksc.py +++ b/ksc.py @@ -63,6 +63,7 @@ class Ksc(object): self.releasedir = None self.symvers = None self.arch = None + self.vermagic = {} if mock: self.releasename = '7.0' else: @@ -77,6 +78,7 @@ class Ksc(object): self.justifications = {} self.matchdata = None self.total = None + self.vermagic = {} def main(self, mock_options=None): """ @@ -401,7 +403,10 @@ class Ksc(object): f.write(command) for ko_file in self.all_symbols_used: - f.write("\n{%s}\n\n" % os.path.basename(ko_file)) + f.write("\n{%s@%s}\n\n" % ( + os.path.basename(ko_file), + self.vermagic[ko_file].strip() + )) self.write_result(f, ko_file) if not self.mock: @@ -544,6 +549,12 @@ class Ksc(object): self.defined_symbols[path] = set() + try: + self.vermagic[path] = run("modinfo -F vermagic '%s'" % path) + except Exception as e: + print(e) + sys.exit(1) + try: out = run("nm '%s'" % path) except Exception as e: -- 2.21.0