mescc: Add data as loadable ELF section.
* module/mes/elf.mes (make-elf): Add data as loadable section too.
This commit is contained in:
parent
11f7f67a45
commit
bf9539c565
|
@ -113,7 +113,7 @@
|
||||||
(define e-flags (elf32-word 0))
|
(define e-flags (elf32-word 0))
|
||||||
;;(define e-ehsize (elf32-half 0))
|
;;(define e-ehsize (elf32-half 0))
|
||||||
(define e-phentsize (elf32-half (length (program-header 0 0 '()))))
|
(define e-phentsize (elf32-half (length (program-header 0 0 '()))))
|
||||||
(define e-phnum (elf32-half 1))
|
(define e-phnum (elf32-half 2)) ; text+data
|
||||||
(define e-shentsize (elf32-half (length (section-header 0 0 0 0 '() 0 0 0))))
|
(define e-shentsize (elf32-half (length (section-header 0 0 0 0 '() 0 0 0))))
|
||||||
(define e-shnum (elf32-half 7)) ; sections: 7
|
(define e-shnum (elf32-half 7)) ; sections: 7
|
||||||
(define e-shstrndx (elf32-half 4))
|
(define e-shstrndx (elf32-half 4))
|
||||||
|
@ -140,14 +140,16 @@
|
||||||
(length (elf-header 0 0 0)))
|
(length (elf-header 0 0 0)))
|
||||||
|
|
||||||
(define program-header-size
|
(define program-header-size
|
||||||
(length (program-header 0 0 '())))
|
(* 2 (length (program-header 0 0 '()))))
|
||||||
|
|
||||||
(define text-offset
|
(define text-offset
|
||||||
(+ elf-header-size program-header-size))
|
(+ elf-header-size program-header-size))
|
||||||
|
|
||||||
(define (program-headers text)
|
(define PT-LOAD 1)
|
||||||
|
(define (program-headers text data)
|
||||||
(append
|
(append
|
||||||
(program-header 1 text-offset text)))
|
(program-header PT-LOAD text-offset text)
|
||||||
|
(program-header PT-LOAD data-offset data)))
|
||||||
|
|
||||||
(define comment
|
(define comment
|
||||||
(string->list
|
(string->list
|
||||||
|
@ -274,7 +276,7 @@
|
||||||
(format (current-error-port) "_start=~a\n" (number->string entry 16))
|
(format (current-error-port) "_start=~a\n" (number->string entry 16))
|
||||||
(append
|
(append
|
||||||
(elf-header elf-header-size entry section-headers-offset)
|
(elf-header elf-header-size entry section-headers-offset)
|
||||||
(program-headers text)
|
(program-headers text data)
|
||||||
text
|
text
|
||||||
data
|
data
|
||||||
comment
|
comment
|
||||||
|
|
Loading…
Reference in a new issue