elf.mes: error-free header, no program yet.
authorJan Nieuwenhuizen <janneke@gnu.org>
Fri, 12 Aug 2016 13:54:15 +0000 (15:54 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Fri, 12 Aug 2016 13:54:15 +0000 (15:54 +0200)
elf.mes

diff --git a/elf.mes b/elf.mes
index e1289d2b9105b4f0f52f66515addc981198d91b8..ab85adff0f54d6e8cb374db98eb84a2bd0378047 100644 (file)
--- a/elf.mes
+++ b/elf.mes
 (define e-type '(#x02 #x00)) ;; ET_EXEC
 (define e-machine '(#x03 #x00))
 (define e-version '(#x01 #x00 #x00 #x00))
-(define e-entry '(#xb0 #x00 #x40 #x00 #x00 #x00 #x00 #x00))
-(define e-type '(#x02 #x00))
-(define e-phoff '(#x40 #x00 #x00 #x00 #x00 #x00 #x00 #x00))
-(define e-shoff '(#x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00))
+(define e-entry '(#x54 #x80 #x04 #x08))
+(define e-phoff '(#x30 #x00 #x00 #x00))
+(define e-shoff '(#x50 #x00 #x00 #x00))
 (define e-flags '(#x00 #x00 #x00 #x00))
-(define e-ehsize '(#x40 #x00))
-(define e-phentsize '(#x38 #x00))
-(define e-phnum '(#x02 #x00))
-(define e-shentsize '(#x00 #x00))
-(define e-shnum '(#x00 #x00))
-(define e-shstrndx '(#x03 #x00))
+(define e-ehsize '(#x80 #x00))
+(define e-phentsize '(#x20 #x00))
+(define e-phnum '(#x01 #x00))
+(define e-shentsize '(#x28 #x00))
+(define e-shnum '(#x05 #x00))
+(define e-shstrndx '(#x04 #x00))
 
 (define elf-header
   (append
    ;; p-align
    ))
 
-(map write-char elf-header)
+(define rest
+  '(
+    #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+         #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00
+
+))
+
+(define exe
+  (append
+   elf-header
+   rest))
+(map write-char exe)