aboutsummaryrefslogtreecommitdiff
path: root/tccelf.c
diff options
context:
space:
mode:
authorThomas Preud'homme <robotux@celest.fr>2016-12-05 21:00:35 +0000
committerThomas Preud'homme <robotux@celest.fr>2016-12-10 19:22:02 +0800
commit11747fe5d0b8b4c8e7aa0b05ede57c155744ab36 (patch)
tree4b1c62bc02f7a46af57328f349c8138dadd24b19 /tccelf.c
parentdfed9babfcce075cdfd388fe7646d183e3f5505f (diff)
downloadtinycc-11747fe5d0b8b4c8e7aa0b05ede57c155744ab36.tar.gz
tinycc-11747fe5d0b8b4c8e7aa0b05ede57c155744ab36.tar.bz2
Error out in put_got_entry if no dynamic symbol
Diffstat (limited to 'tccelf.c')
-rw-r--r--tccelf.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/tccelf.c b/tccelf.c
index 41b6081..de792f4 100644
--- a/tccelf.c
+++ b/tccelf.c
@@ -1013,6 +1013,8 @@ static unsigned long put_got_entry(TCCState *s1, int dyn_reloc_type,
relocs_info[reloc_type].gotplt_entry == ALWAYS_GOTPLT_ENTRY)
index = put_elf_sym(s1->dynsym, offset, size, info, 0,
sym->st_shndx, name);
+ else
+ tcc_error("Runtime relocation without dynamic symbol: %s", name);
put_elf_reloc(s1->dynsym, s1->got, got_offset, dyn_reloc_type, index);
} else
put_elf_reloc(symtab_section, s1->got, got_offset, dyn_reloc_type,