diff options
| -rw-r--r-- | libtcc.c | 1 | ||||
| -rw-r--r-- | tcc.h | 3 | ||||
| -rw-r--r-- | tccelf.c | 4 |
3 files changed, 6 insertions, 2 deletions
@@ -1001,6 +1001,7 @@ LIBTCCAPI TCCState *tcc_new(void) ".strtab", ".hashtab", SHF_PRIVATE); strtab_section = symtab_section->link; + s->symtab = symtab_section; /* private symbol table for dynamic symbols */ s->dynsymtab_section = new_symtab(s, ".dynsymtab", SHT_SYMTAB, SHF_PRIVATE, @@ -527,6 +527,9 @@ struct TCCState { /* exported dynamic symbol section */ Section *dynsym; + /* copy of the gobal symtab_section variable */ + Section *symtab; + int nostdinc; /* if true, no standard headers are added */ int nostdlib; /* if true, no standard libraries are added */ int nocommon; /* if true, do not use common symbols for .bss data */ @@ -162,8 +162,8 @@ static void *get_elf_sym_addr(TCCState *s, const char *name, int err) int sym_index; ElfW(Sym) *sym; - sym_index = find_elf_sym(symtab_section, name); - sym = &((ElfW(Sym) *)symtab_section->data)[sym_index]; + sym_index = find_elf_sym(s->symtab, name); + sym = &((ElfW(Sym) *)s->symtab->data)[sym_index]; if (!sym_index || sym->st_shndx == SHN_UNDEF) { if (err) tcc_error("%s not defined", name); |
