diff mbox series

[U-Boot,01/29] binman: Don't depend on dict order in ELF testOutsideFile()

Message ID 20180717192552.198496-2-sjg@chromium.org
State Accepted
Commit 46d61a2f2aeefcd622c9678716429e68a3a98811
Delegated to: Simon Glass
Headers show
Series binman: Expand feature set and documentation | expand

Commit Message

Simon Glass July 17, 2018, 7:25 p.m. UTC
At present this test assumes that the symbols are returned in address
order. However, objdump can list symbols in any order and dictionaries do
not guarantee any particular order when iterating through item.

Update elf.GetSymbols() to return an OrderedDict, sorted by address, to
avoid any problems.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 tools/binman/elf.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/tools/binman/elf.py b/tools/binman/elf.py
index 0ae3b611ba..8c23040d8c 100644
--- a/tools/binman/elf.py
+++ b/tools/binman/elf.py
@@ -57,7 +57,9 @@  def GetSymbols(fname, patterns):
             name = parts[2]
             syms[name] = Symbol(section, int(value, 16), int(size,16),
                                 flags[1] == 'w')
-    return syms
+
+    # Sort dict by address
+    return OrderedDict(sorted(syms.iteritems(), key=lambda x: x[1].address))
 
 def GetSymbolAddress(fname, sym_name):
     """Get a value of a symbol from an ELF file