X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=tools%2Flayoutrom.py;h=45738a3bb5cf3306b7f0eeee6d233835d8e3ccd6;hb=34203cdf8a89c747e221005850a4558252235360;hp=4109b168509541c3a5bb9db0f75c7af72df1f991;hpb=f3fe3aa7a0ccb881e659a4281d6f0a0bb5c33cc5;p=seabios.git diff --git a/tools/layoutrom.py b/tools/layoutrom.py index 4109b16..45738a3 100755 --- a/tools/layoutrom.py +++ b/tools/layoutrom.py @@ -532,7 +532,16 @@ def parseObjDump(file, fileid): reloc.offset = int(off, 16) reloc.type = type reloc.symbolname = symbolname - reloc.symbol = symbols[symbolname] + reloc.symbol = symbols.get(symbolname) + if reloc.symbol is None: + # Some binutils (2.20.1) give section name instead + # of a symbol - create a dummy symbol. + reloc.symbol = symbol = Symbol() + symbol.size = 0 + symbol.offset = 0 + symbol.name = symbolname + symbol.section = sectionmap.get(symbolname) + symbols[symbolname] = symbol relocsection.relocs.append(reloc) except ValueError: pass @@ -562,7 +571,7 @@ def main(): doLayout(sections) # Write out linker script files. - entrysym = info16[1]['post32'] + entrysym = info16[1]['entry_elf'] genreloc = '_reloc_abs_start' in info32flat[1] writeLinkerScripts(sections, entrysym, genreloc, out16, out32seg, out32flat)