mescc/elf.mes: write minimal ELF header.
authorJan Nieuwenhuizen <janneke@gnu.org>
Fri, 12 Aug 2016 12:17:55 +0000 (14:17 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Fri, 12 Aug 2016 12:17:55 +0000 (14:17 +0200)
.gitignore
GNUmakefile
elf.mes [new file with mode: 0644]
mescc.scm

index dc0185ba541b2f9ca85f8bd35ba25b8ee7673fea..11e545fe83caf63f623706f7c253257c04311109 100644 (file)
@@ -2,6 +2,7 @@
 *.go
 *.o
 *~
+/a.out
 /mes
 /mes.h
 /environment.i
index bb38f22fb76123b416c9f390d09b799b0006fc64..cc5cf4fc0f7f78fe4a553866e091a481fe0d32b1 100644 (file)
@@ -118,7 +118,7 @@ guile-paren: paren.test
        echo '___P((()))' | guile -s $^ 
 
 mescc: all
-       echo ' EOF ' | cat base0.mes base0-$(CONDIF).mes base.mes quasiquote.mes let.mes scm.mes syntax-cond.mes lib/srfi/srfi-0.scm lib/record.mes lib/record.scm lib/srfi/srfi-9.scm lib/lalr.mes lib/lalr.scm c-lexer.scm mescc.scm - main.c | ./mes
+       echo ' EOF ' | cat base0.mes base0-$(CONDIF).mes base.mes quasiquote.mes let.mes scm.mes syntax-cond.mes lib/srfi/srfi-0.scm lib/record.mes lib/record.scm lib/srfi/srfi-9.scm lib/lalr.mes lib/lalr.scm c-lexer.scm mescc.scm - main.c | ./mes > a.out
 
 mescc.test: lib/lalr.scm c-lexer.scm mescc.scm
        cat $^ > $@
diff --git a/elf.mes b/elf.mes
new file mode 100644 (file)
index 0000000..494469c
--- /dev/null
+++ b/elf.mes
@@ -0,0 +1,12 @@
+;;; -*-scheme-*-
+
+(write-char #x7f)
+(write-char #x45)
+(write-char #x4c)
+(write-char #x46)
+(write-char #x08)
+(write-char #x48)
+(write-char #x65)
+(write-char #x6c)
+(write-char #x6c)
+(write-char #x6f)
index 49fc89a95a5e683d9cf0b67dbc48a6c4dbc8157f..065be6a7b78d94d947f4c39f6ae155c9505dcf7d 100644 (file)
--- a/mescc.scm
+++ b/mescc.scm
     (lambda ()
       (c-parser (c-lexer errorp) errorp))))
 
-(display "program: ")
-(display (mescc))
+(display "program: " 2)
+(display (mescc) 2)
+(newline 2)
+
+(define elf-header '(#x7f #E #L #F #x01))
+
+(define elf-header '(#x7f #x45 #x4c #x46 #x01))
+(map write-char elf-header)
 (newline)