From: Simon Glass <sjg@chromium.org>
Date: Tue, 12 Jul 2022 01:04:11 +0000 (-0600)
Subject: buildman: Allow lines without a symbol
X-Git-Tag: v2025.01-rc5-pxa1908~1321^2~2
X-Git-Url: http://git.dujemihanovic.xyz/img/static/git-favicon.png?a=commitdiff_plain;h=f2e6775cddd59f2edec0727da14c35a8c8d14716;p=u-boot.git

buildman: Allow lines without a symbol

The 'nm' tool can produce lines without a symbol, for example:

   00000004 t

Silently skip these and anything else without three fields. Drop the
warning since there is nothing the user can do about it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Tom Rini <trini@konsulko.com>
---

diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index 33f9373b8f..76252b9079 100644
--- a/tools/buildman/builder.py
+++ b/tools/buildman/builder.py
@@ -669,17 +669,15 @@ class Builder:
         """
         sym = {}
         for line in fd.readlines():
-            try:
-                if line.strip():
-                    size, type, name = line[:-1].split()
-            except:
-                tprint("Invalid line in file '%s': '%s'" % (fname, line[:-1]))
-                continue
-            if type in 'tTdDbB':
-                # function names begin with '.' on 64-bit powerpc
-                if '.' in name[1:]:
-                    name = 'static.' + name.split('.')[0]
-                sym[name] = sym.get(name, 0) + int(size, 16)
+            line = line.strip()
+            parts = line.split()
+            if line and len(parts) == 3:
+                    size, type, name = line.split()
+                    if type in 'tTdDbB':
+                        # function names begin with '.' on 64-bit powerpc
+                        if '.' in name[1:]:
+                            name = 'static.' + name.split('.')[0]
+                        sym[name] = sym.get(name, 0) + int(size, 16)
         return sym
 
     def _ProcessConfig(self, fname):