[Wisp-cvs] wisp/users/dig elf.py,1.28,1.29
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2003-04-14 00:44:45
|
Update of /cvsroot/wisp/wisp/users/dig In directory sc8-pr-cvs1:/tmp/cvs-serv14641 Modified Files: elf.py Log Message: explicitly zero e_phoff in ELF headers of relocatable object files Index: elf.py =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/elf.py,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- elf.py 14 Apr 2003 00:40:23 -0000 1.28 +++ elf.py 14 Apr 2003 00:44:40 -0000 1.29 @@ -323,7 +323,7 @@ from linkie import Linkie -def make_ELF32_header (byte_order, zero_entry = 0): +def make_ELF32_header (byte_order, reloc = 0): h = Linkie(byte_order) h.align(4) h.emit_string('\x7F' + 'ELF') # magic @@ -339,9 +339,12 @@ h.emit_wyde_sum(['#elf/type']) h.emit_wyde_sum(['#elf/machine']) h.emit_tetra(EV.CURRENT) - if zero_entry: h.emit_tetra(0) - else: h.emit_tetra_sum(['&_start']) - h.emit_tetra_sum(['!elf/proghdr']) + if reloc: + h.emit_tetra(0) # no &_start + h.emit_tetra(0) # no !elf/proghdr + else: + h.emit_tetra_sum(['&_start']) + h.emit_tetra_sum(['!elf/proghdr']) h.emit_tetra_sum(['!elf/secthdr']) h.emit_tetra_sum(['#elf/flags']) h.emit_wyde(0x34) # e_ehsize @@ -488,7 +491,7 @@ binary = Linkie('<') memory_boundary = memory_bottom # must be at page boundary - binary.paste(0, make_ELF32_header('<', zero_entry = want_relocatable)) + binary.paste(0, make_ELF32_header('<', reloc = want_relocatable)) if want_relocatable: binary.place_symbol('#elf/type', ET.REL) else: |