mirror of
https://github.com/frida/tinycc
synced 2024-11-28 10:33:07 +03:00
run: Always create .got relocs
When output is memory we applied the correct GOT offset for certain relocations (e.g. _GOT32), but we forgot to actually fill the got entries with the final symbol values, so unconditionally create relocs against .got as well.
This commit is contained in:
parent
f2c8491fc0
commit
2024c44541
7
tccelf.c
7
tccelf.c
@ -1173,6 +1173,13 @@ static unsigned long put_got_entry(TCCState *s1,
|
||||
put_elf_reloc(s1->dynsym, s1->got,
|
||||
s1->got->data_offset,
|
||||
reloc_type, index);
|
||||
} else {
|
||||
/* Without .dynsym (i.e. static link or memory output) we
|
||||
still need relocs against the generated got, so as to fill
|
||||
the entries with the symbol values (determined later). */
|
||||
put_elf_reloc(symtab_section, s1->got,
|
||||
s1->got->data_offset,
|
||||
reloc_type, sym_index);
|
||||
}
|
||||
/* And now create the GOT slot itself. */
|
||||
ptr = section_ptr_add(s1->got, PTR_SIZE);
|
||||
|
Loading…
Reference in New Issue
Block a user