aboutsummaryrefslogtreecommitdiff
path: root/tccelf.c
diff options
context:
space:
mode:
Diffstat (limited to 'tccelf.c')
-rw-r--r--tccelf.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/tccelf.c b/tccelf.c
index bd2c147..0ac151a 100644
--- a/tccelf.c
+++ b/tccelf.c
@@ -1589,10 +1589,13 @@ ST_FUNC void tcc_add_bcheck(TCCState *s1)
pinit = section_ptr_add(init_section, 5);
pinit[0] = 0xe8;
put32(pinit + 1, -4);
- tcc_add_support(s1, "bcheck.o");
sym_index = find_elf_sym(symtab_section, "__bound_init");
- if (!sym_index)
- tcc_error("__bound_init not defined");
+ if (!sym_index) {
+ tcc_add_support(s1, "bcheck.o");
+ sym_index = find_elf_sym(symtab_section, "__bound_init");
+ if (!sym_index)
+ tcc_error("__bound_init not defined");
+ }
put_elf_reloc(symtab_section, init_section,
init_section->data_offset - 4, R_386_PC32, sym_index);
}