diff --git a/elf/input-sections.cc b/elf/input-sections.cc index 864e72bb1a..70187ef392 100644 --- a/elf/input-sections.cc +++ b/elf/input-sections.cc @@ -274,7 +274,7 @@ static Action get_absrel_action(Context &ctx, Symbol &sym) { template static Action get_dyn_absrel_action(Context &ctx, Symbol &sym) { if (sym.is_ifunc()) - return ctx.arg.pic ? IFUNC_DYNREL : NONE; + return sym.is_pde_ifunc(ctx) ? NONE : IFUNC_DYNREL; // This is a decision table for absolute relocations for the pointer // size data (e.g. R_X86_64_64). Unlike the absrel_table, we can emit