Fixed -static linking on x86_64 Linux

This commit is contained in:
Kurt Nalty 2019-01-09 16:53:50 +00:00 committed by Pursuer
parent 51f6e52dd3
commit 337dc84b57

View File

@ -625,11 +625,7 @@ static void gcall_or_jmp(int is_jmp)
if ((vtop->r & (VT_VALMASK | VT_LVAL)) == VT_CONST && if ((vtop->r & (VT_VALMASK | VT_LVAL)) == VT_CONST &&
((vtop->r & VT_SYM) && (vtop->c.i-4) == (int)(vtop->c.i-4))) { ((vtop->r & VT_SYM) && (vtop->c.i-4) == (int)(vtop->c.i-4))) {
/* constant symbolic case -> simple relocation */ /* constant symbolic case -> simple relocation */
#ifdef TCC_TARGET_PE
greloca(cur_text_section, vtop->sym, ind + 1, R_X86_64_PC32, (int)(vtop->c.i-4)); greloca(cur_text_section, vtop->sym, ind + 1, R_X86_64_PC32, (int)(vtop->c.i-4));
#else
greloca(cur_text_section, vtop->sym, ind + 1, R_X86_64_PLT32, (int)(vtop->c.i-4));
#endif
oad(0xe8 + is_jmp, 0); /* call/jmp im */ oad(0xe8 + is_jmp, 0); /* call/jmp im */
} else { } else {
/* otherwise, indirect call */ /* otherwise, indirect call */