Revert "elf.mes: drop .note section."
[mes.git] / elf.mes
diff --git a/elf.mes b/elf.mes
index 75f936448a865ce99422b3dee5c5d4e5bc311966..02b25537f68ed7774a3a76abaebea1c42eecbb96 100644 (file)
--- a/elf.mes
+++ b/elf.mes
@@ -38,8 +38,8 @@
 (define e-phentsize '(0 0))
 (define e-phnum '(#x01 #x00))
 (define e-shentsize '(0 0))
-(define e-shnum '(#x04 #x00))
-(define e-shstrndx '(#x03 #x00))
+(define e-shnum '(#x05 #x00))
+(define e-shstrndx '(#x04 #x00))
 
 (define (elf-header)
   (append
 (define data
   (string->list "Hello, world!\n"))
 
-;;; 
+(define note
+  '(
+    #x05 #x00 #x00 #x00 #x00 #x00 #x00 #x00 #x02 #x00 #x00 #x00
+    #\i #\3 #\8 #\6 #x00 #x00 #x00 #x00
+    ))
+
 ;; 1098 sh str table
 (define tab
   `(
     #x00 ,@(string->list ".shstrtab")
          #x00 ,@(string->list ".text")
          #x00 ,@(string->list ".data")
+         #x00 ,@(string->list ".note")
          #x00 #x00 #x00 #x00
     ))
 
    sh-data-entsize
    ))
 
+;; 1130 sh3: .note
+(define sh-note-name      '(#x17 #x00 #x00 #x00))
+(define sh-note-type      '(#x07 #x00 #x00 #x00))
+(define sh-note-flags     '(#x00 #x00 #x00 #x00))
+(define sh-note-addr      '(#x00 #x00 #x00 #x00))
+(define sh-note-offset    '(#x84 #x10 #x00 #x00))
+(define sh-note-size      '(#x14 #x00 #x00 #x00))
+(define sh-note-link      '(#x00 #x00 #x00 #x00))
+(define sh-note-info      '(#x00 #x00 #x00 #x00))
+(define sh-note-addralign '(#x01 #x00 #x00 #x00))
+(define sh-note-entsize   '(#x00 #x00 #x00 #x00))
+
+(define sh-note
+  (append
+   sh-note-name
+   sh-note-type
+   sh-note-flags
+   sh-note-addr
+   sh-note-offset
+   sh-note-size
+   sh-note-link
+   sh-note-info
+   sh-note-addralign
+   sh-note-entsize
+   ))
+
 ;; 1158 sh4: .shstrtab
 (define sh-tab-name      '(#x01 #x00 #x00 #x00))
 (define sh-tab-type      '(#x03 #x00 #x00 #x00))
 (define sh-tab-flags     '(#x00 #x00 #x00 #x00))
 (define sh-tab-addr      '(#x00 #x00 #x00 #x00))
-;;(define sh-tab-offset    '(#x98 #x10 #x00 #x00))
-(define sh-tab-offset    '(#x84 #x10 #x00 #x00))
+(define sh-tab-offset    '(#x98 #x10 #x00 #x00))
 (define sh-tab-size      '(#x1d #x00 #x00 #x00))
 (define sh-tab-link      '(#x00 #x00 #x00 #x00))
 (define sh-tab-info      '(#x00 #x00 #x00 #x00))
    sh-0
    sh-text
    sh-data
+   sh-note
    sh-tab
    ))
 
     text
     text-free
     data
+    note
     tab)))
 
 (set! e-shoff (int->bv32 (section-headers-offset)))
    text-free
    ;;1076 (+ 0804 8000): 0804 9076
    data
+   ;;1084
+   note
+   ;;1098
    tab
+   ;;10b8
    section-headers
    ))
 (map write-char exe)