mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-28 06:20:30 +00:00
[GOLD] Correct powerpc64 ifunc plt entry test
Found when attempting to build an ELFv2 Linux kernel. We don't generally need a plt entry for ELFv2 got relocs, only on ifunc, just like ppc32. * powerpc.cc (Target_powerpc::Scan::local <got relocs>): Correct condition for need of ifunc plt entry. (Target_powerpc::Scan::global <got relocs>): Likewise.
This commit is contained in:
parent
b99e251379
commit
b01a4b043a
@ -1,3 +1,9 @@
|
||||
2015-01-22 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* powerpc.cc (Target_powerpc::Scan::local <got relocs>): Correct
|
||||
condition for need of ifunc plt entry.
|
||||
(Target_powerpc::Scan::global <got relocs>): Likewise.
|
||||
|
||||
2015-01-14 Sasa Stankovic <Sasa.Stankovic@imgtec.com>
|
||||
|
||||
* mips.cc (reloc_high): Add r_sym.
|
||||
|
@ -5671,8 +5671,8 @@ Target_powerpc<size, big_endian>::Scan::local(
|
||||
|
||||
if (!parameters->options().output_is_position_independent())
|
||||
{
|
||||
if ((size == 32 && is_ifunc)
|
||||
|| (size == 64 && target->abiversion() >= 2))
|
||||
if (is_ifunc
|
||||
&& (size == 32 || target->abiversion() >= 2))
|
||||
got->add_local_plt(object, r_sym, GOT_TYPE_STANDARD);
|
||||
else
|
||||
got->add_local(object, r_sym, GOT_TYPE_STANDARD);
|
||||
@ -6119,8 +6119,8 @@ Target_powerpc<size, big_endian>::Scan::global(
|
||||
got = target->got_section(symtab, layout);
|
||||
if (gsym->final_value_is_known())
|
||||
{
|
||||
if ((size == 32 && is_ifunc)
|
||||
|| (size == 64 && target->abiversion() >= 2))
|
||||
if (is_ifunc
|
||||
&& (size == 32 || target->abiversion() >= 2))
|
||||
got->add_global_plt(gsym, GOT_TYPE_STANDARD);
|
||||
else
|
||||
got->add_global(gsym, GOT_TYPE_STANDARD);
|
||||
|
Loading…
Reference in New Issue
Block a user