mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 18:44:20 +08:00
Add DT_PPC64_OPD and DT_PPC64_OPDSZ dynamic tags
This commit is contained in:
parent
9b90b531ee
commit
1939742290
@ -1,3 +1,9 @@
|
||||
2002-02-12 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Add dynamic
|
||||
DT_PPC64_OPD and DT_PPC64_OPDSZ tags.
|
||||
(ppc64_elf_finish_dynamic_sections): Set values for them.
|
||||
|
||||
2002-02-11 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* elf32-sh.c: Added missing prototypes.
|
||||
@ -467,14 +473,14 @@
|
||||
|
||||
2002-01-31 Philipp Thomas <pthomas@suse.de>
|
||||
|
||||
* coff-arm.c (coff_arm_merge_private_bfd_data): Move ERROR
|
||||
to front of message. Unify messages with elf32-arm.h. Use
|
||||
commas where neccessary.
|
||||
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Use all upcase
|
||||
ERROR in messages. Unify messages with coff-arm.c. Correct
|
||||
VFP/FPA error message.
|
||||
(elf32_arm_print_private_bfd_data): Don't mark APCS-26 and
|
||||
APCS-32 for translation.
|
||||
* coff-arm.c (coff_arm_merge_private_bfd_data): Move ERROR
|
||||
to front of message. Unify messages with elf32-arm.h. Use
|
||||
commas where neccessary.
|
||||
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Use all upcase
|
||||
ERROR in messages. Unify messages with coff-arm.c. Correct
|
||||
VFP/FPA error message.
|
||||
(elf32_arm_print_private_bfd_data): Don't mark APCS-26 and
|
||||
APCS-32 for translation.
|
||||
|
||||
2002-02-01 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
|
@ -156,11 +156,8 @@ static boolean ppc64_elf_finish_dynamic_sections
|
||||
/* Since .opd is an array of descriptors and each entry will end up
|
||||
with identical R_PPC64_RELATIVE relocs, there is really no need to
|
||||
propagate .opd relocs; The dynamic linker should be taught to
|
||||
relocate .opd without reloc entries. FIXME: the dynamic linker
|
||||
will need to know where and how large .opd is via a couple of new
|
||||
DT_PPC64_* tags, or perhaps just with one reloc that specifies the
|
||||
start of .opd via its offset and the size via its addend. Also,
|
||||
.opd should be trimmed of unused values. */
|
||||
relocate .opd without reloc entries. FIXME: .opd should be trimmed
|
||||
of unused values. */
|
||||
#ifndef NO_OPD_RELOCS
|
||||
#define NO_OPD_RELOCS 0
|
||||
#endif
|
||||
@ -3128,6 +3125,13 @@ ppc64_elf_size_dynamic_sections (output_bfd, info)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (NO_OPD_RELOCS)
|
||||
{
|
||||
if (!add_dynamic_entry (DT_PPC64_OPD, 0)
|
||||
|| !add_dynamic_entry (DT_PPC64_OPDSZ, 0))
|
||||
return false;
|
||||
}
|
||||
|
||||
if (relocs)
|
||||
{
|
||||
if (!add_dynamic_entry (DT_RELA, 0)
|
||||
@ -4354,6 +4358,7 @@ ppc64_elf_finish_dynamic_sections (output_bfd, info)
|
||||
for (; dyncon < dynconend; dyncon++)
|
||||
{
|
||||
Elf_Internal_Dyn dyn;
|
||||
asection *s;
|
||||
|
||||
bfd_elf64_swap_dyn_in (dynobj, dyncon, &dyn);
|
||||
|
||||
@ -4367,6 +4372,18 @@ ppc64_elf_finish_dynamic_sections (output_bfd, info)
|
||||
+ htab->sglink->output_offset);
|
||||
break;
|
||||
|
||||
case DT_PPC64_OPD:
|
||||
s = bfd_get_section_by_name (output_bfd, ".opd");
|
||||
if (s != NULL)
|
||||
dyn.d_un.d_ptr = s->vma;
|
||||
break;
|
||||
|
||||
case DT_PPC64_OPDSZ:
|
||||
s = bfd_get_section_by_name (output_bfd, ".opd");
|
||||
if (s != NULL)
|
||||
dyn.d_un.d_val = s->_raw_size;
|
||||
break;
|
||||
|
||||
case DT_PLTGOT:
|
||||
dyn.d_un.d_ptr = (htab->splt->output_section->vma
|
||||
+ htab->splt->output_offset);
|
||||
|
@ -1,3 +1,8 @@
|
||||
2002-02-12 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* readelf.c (get_ppc64_dynamic_type): Handle DT_PPC64_OPD and
|
||||
DT_PPC64_OPDSZ.
|
||||
|
||||
2002-02-11 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* MAINTAINERS: List myself as branch maintainer.
|
||||
|
@ -1193,6 +1193,8 @@ get_ppc64_dynamic_type (type)
|
||||
switch (type)
|
||||
{
|
||||
case DT_PPC64_GLINK: return "PPC64_GLINK";
|
||||
case DT_PPC64_OPD: return "PPC64_OPD";
|
||||
case DT_PPC64_OPDSZ: return "PPC64_OPDSZ";
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
|
@ -1,3 +1,7 @@
|
||||
2002-02-12 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* ppc.h (DT_PPC64_OPD, DT_PPC64_OPDSZ): Define.
|
||||
|
||||
2002-02-09 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* alpha.h (R_ALPHA_BRSGP): New.
|
||||
|
@ -174,6 +174,10 @@ END_RELOC_NUMBERS (R_PPC_max)
|
||||
/* Specify the start of the .glink section. */
|
||||
#define DT_PPC64_GLINK DT_LOPROC
|
||||
|
||||
/* Specify the start and size of the .opd section. */
|
||||
#define DT_PPC64_OPD (DT_LOPROC + 1)
|
||||
#define DT_PPC64_OPDSZ (DT_LOPROC + 2)
|
||||
|
||||
/* Processor specific flags for the ELF header e_flags field. */
|
||||
|
||||
#define EF_PPC_EMB 0x80000000 /* PowerPC embedded flag. */
|
||||
|
Loading…
Reference in New Issue
Block a user