[Wisp-cvs] wisp/users/dig elf.py,1.17,1.18
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2003-04-12 11:06:29
|
Update of /cvsroot/wisp/wisp/users/dig In directory sc8-pr-cvs1:/tmp/cvs-serv17390/users/dig Modified Files: elf.py Log Message: retabbed elf.py Index: elf.py =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/elf.py,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- elf.py 8 Apr 2003 21:19:06 -0000 1.17 +++ elf.py 12 Apr 2003 11:06:25 -0000 1.18 @@ -493,7 +493,7 @@ for name in shentnames: if guess_ELF32_pflags(name) <> 0: phentnames.append(name) - sections['.shstrtab'].place_symbol('#.shstrtab/strings/' + name) + sections['.shstrtab'].place_symbol('#.shstrtab/strings/' + name) sections['.shstrtab'].emit_string(name) sections['.shstrtab'].emit_byte(0) @@ -504,10 +504,10 @@ section = sections[name] p_flags = guess_ELF32_pflags(name) alignment = section.get_alignment() - binary.place_symbol('#' + name + '/sh_align', alignment) + binary.place_symbol('#' + name + '/sh_align', alignment) if p_flags <> 0: - binary.place_symbol('#' + name + '/p_align', 0x1000) + binary.place_symbol('#' + name + '/p_align', 0x1000) binary.align(min(alignment, 0x1000)) else: # No program header entry => not loaded @@ -520,26 +520,26 @@ address = memory_boundary | (offset & 0xFFF) # take into account alignments larger than a page address = (address + alignment - 1) & ~(alignment - 1) - binary.place_symbol('#' + name + '/p_flags', guess_ELF32_pflags(name)) - binary.place_symbol('#' + name + '/p_type', guess_ELF32_ptype(name)) - section.set_origin(address) - binary.place_symbol('&' + name, address) + binary.place_symbol('#' + name + '/p_flags', guess_ELF32_pflags(name)) + binary.place_symbol('#' + name + '/p_type', guess_ELF32_ptype(name)) + section.set_origin(address) + binary.place_symbol('&' + name, address) else: address = None binary.place_symbol('#' + name + '/memsz', section.memsz()) - binary.place_symbol('#' + name + '/filesz', section.filesz()) - binary.place_symbol('#' + name + '/sh_size', section.filesz()) - binary.place_symbol('#' + name + '/sh_type', guess_ELF32_shtype(name)) - binary.place_symbol('#' + name + '/sh_info', 0) - if name == '.symtab': sh_link = shentnames.index('.symstr') + 1 - else: sh_link = SHN.UNDEF - binary.place_symbol('#' + name + '/sh_link', sh_link) - binary.place_symbol('#' + name + '/sh_entsize', 0) - binary.place_symbol('#' + name + '/sh_flags', guess_ELF32_shflags(name)) + binary.place_symbol('#' + name + '/filesz', section.filesz()) + binary.place_symbol('#' + name + '/sh_size', section.filesz()) + binary.place_symbol('#' + name + '/sh_type', guess_ELF32_shtype(name)) + binary.place_symbol('#' + name + '/sh_info', 0) + if name == '.symtab': sh_link = shentnames.index('.symstr') + 1 + else: sh_link = SHN.UNDEF + binary.place_symbol('#' + name + '/sh_link', sh_link) + binary.place_symbol('#' + name + '/sh_entsize', 0) + binary.place_symbol('#' + name + '/sh_flags', guess_ELF32_shflags(name)) - # alignment has been processed already - binary.place_symbol('!' + name) + # alignment has been processed already + binary.place_symbol('!' + name) binary.paste(-1, section) if want_symbols: symtab = sections['.symtab'] |