diff options
author | Andy Wingo <wingo@pobox.com> | 2018-07-04 14:32:45 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2018-07-20 11:42:13 +0200 |
commit | e95f15c932650783f34253e396216c66050905f0 (patch) | |
tree | ef728f2fedc0c7abf5a3cb776ff343037dcebb20 /libguile/loader.h | |
parent | 80ba0e2cb110983eeafe66a0ea0bf5dba8e25226 (diff) | |
download | guile-e95f15c932650783f34253e396216c66050905f0.tar.gz |
Add support for reading ELF symbol table from C
* libguile/loader.c (scm_i_program_address_range): New function.
Currently unused, will wire up once we correct the compiler to emit
symbols whose values are relative to the base addr. Will be used by
JIT so it needs to be fast.
(register_elf): Rework to be less verbose, and record symtab/strtab.
(struct mapped_elf_image): Add symtab and strtab members.
(load_thunk_from_memory, process_dynamic_segment): Parse out DT_SYMTAB
and DT_STRTAB.
(Elf_Sym): New definition.
Diffstat (limited to 'libguile/loader.h')
-rw-r--r-- | libguile/loader.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libguile/loader.h b/libguile/loader.h index d9f632d1e..54ec9f798 100644 --- a/libguile/loader.h +++ b/libguile/loader.h @@ -55,8 +55,11 @@ SCM_API SCM scm_load_thunk_from_file (SCM filename); SCM_API SCM scm_load_thunk_from_memory (SCM bv); -SCM_INTERNAL const uint8_t * -scm_find_slot_map_unlocked (const uint32_t *ip); +SCM_INTERNAL const uint8_t * scm_find_slot_map_unlocked (const uint32_t *ip); + +SCM_INTERNAL int scm_i_program_address_range (const char *code, + const char **start, + const char **end); SCM_INTERNAL void scm_bootstrap_loader (void); SCM_INTERNAL void scm_init_loader (void); |