mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-30 15:00:21 +02:00
Add elf-symbol-value-offset, for properly relocating symtab entries
* module/system/vm/elf.scm (elf-symbol-value-offset): New export.
This commit is contained in:
parent
c90c81898e
commit
3c08b6c1b2
1 changed files with 7 additions and 1 deletions
|
@ -93,7 +93,7 @@
|
||||||
elf-symbol-info elf-symbol-other elf-symbol-shndx
|
elf-symbol-info elf-symbol-other elf-symbol-shndx
|
||||||
elf-symbol-binding elf-symbol-type elf-symbol-visibility
|
elf-symbol-binding elf-symbol-type elf-symbol-visibility
|
||||||
|
|
||||||
elf-symbol-len write-elf-symbol
|
elf-symbol-len elf-symbol-value-offset write-elf-symbol
|
||||||
|
|
||||||
SHN_UNDEF
|
SHN_UNDEF
|
||||||
|
|
||||||
|
@ -876,6 +876,12 @@
|
||||||
((8) 24)
|
((8) 24)
|
||||||
(else (error "bad word size" word-size))))
|
(else (error "bad word size" word-size))))
|
||||||
|
|
||||||
|
(define (elf-symbol-value-offset word-size)
|
||||||
|
(case word-size
|
||||||
|
((4) 4)
|
||||||
|
((8) 8)
|
||||||
|
(else (error "bad word size" word-size))))
|
||||||
|
|
||||||
(define (parse-elf32-symbol bv offset stroff byte-order)
|
(define (parse-elf32-symbol bv offset stroff byte-order)
|
||||||
(if (<= (+ offset 16) (bytevector-length bv))
|
(if (<= (+ offset 16) (bytevector-length bv))
|
||||||
(make-elf-symbol (let ((name (bytevector-u32-ref bv offset byte-order)))
|
(make-elf-symbol (let ((name (bytevector-u32-ref bv offset byte-order)))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue