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:
|