bfd/
authorRichard Sandiford <rdsandiford@googlemail.com>
Thu, 2 Mar 2006 08:50:04 +0000 (08:50 +0000)
committerRichard Sandiford <rdsandiford@googlemail.com>
Thu, 2 Mar 2006 08:50:04 +0000 (08:50 +0000)
commit4a3dc54359e79df0cb556cd5b4ab5c1bc91019b5
treefe67901dab8531bb6298e2bd2717d1ea8cca508a
parent2c10a7e506c2bced576c630be7e32d04de15862d
bfd/
* elf32-ppc.c (ppc_elf_plt_type): New enumeration.
(ppc_elf_link_hash_table): Replace old_got and new_got with
plt_type and can_use_new_plt.
(ppc_elf_create_dynamic_sections): Add SEC_HAS_CONTENTS,
SEC_LOAD and SEC_READONLY to the VxWorks .plt flags.
(ppc_elf_check_relocs): Set can_use_new_plt instead of new_plt.
Move from plt_type == PLT_UNSET to PLT_OLD instead of setting old_plt.
(ppc_elf_select_plt_layout): Move from plt_type == PLT_UNSET to
either plt_type == PLT_OLD or plt_type == PLT_NEW.  Assert that
this function should not be called for VxWorks targets.
(ppc_elf_tls_setup): Use plt_type instead of old_got.
(allocate_got): Likewise.  Rearrange so that max_before_header
is only used for PLT_OLD and PLT_NEW.
(allocate_dynrelocs): Use plt_type instead of old_got and is_vxworks.
(ppc_elf_size_dynamic_sections): Likewise.
(ppc_elf_relax_section): Likewise.
(ppc_elf_relocate_section): Likewise.
(ppc_elf_finish_dynamic_symbol): Likewise.
(ppc_elf_vxworks_link_hash_table_create): Initialize plt_type.

ld/
* emulparams/elf32ppccommon.sh: New file, extracted from...
* emulparams/elf32ppc.sh: ...here.
* emulparams/elf32ppcvxworks.sh: Include elf32ppccommon.sh
instead of elf32ppc.sh.
(BSS_PLT): Remove override.
* Makefile.am (eelf32lppc.c): Depend on elf32ppccommons.h.
(eelf32lppcnto.c, eelf32lppcsim.c, eelf32ppcnto.c): Likewise.
(eelf32ppc.c, eelf32ppc_fbsd.c, eelf32ppcsimm): Likewise.
(eelf32ppclinux.c): Likewise.
(eelf32ppcvxworks.c): Likewise.  Add missing vxworks.sh dependency.
* Makefile.in: Regenerate.

ld/testsuite/
* ld-powerpc/vxworks1-lib.s, ld-powerpc/vxworks1-lib.dd,
* ld-powerpc/vxworks1-lib.rd, ld-powerpc/vxworks1.s,
* ld-powerpc/vxworks1.dd, ld-powerpc/vxworks1.rd,
* ld-powerpc/vxworks1.ld, ld-powerpc/vxworks1.sd: New test.
* ld-powerpc/powerpc.exp: Run it.
18 files changed:
bfd/ChangeLog
bfd/elf32-ppc.c
ld/ChangeLog
ld/Makefile.am
ld/Makefile.in
ld/emulparams/elf32ppc.sh
ld/emulparams/elf32ppccommon.sh [new file with mode: 0644]
ld/emulparams/elf32ppcvxworks.sh
ld/testsuite/ChangeLog
ld/testsuite/ld-powerpc/powerpc.exp
ld/testsuite/ld-powerpc/vxworks1-lib.dd [new file with mode: 0644]
ld/testsuite/ld-powerpc/vxworks1-lib.rd [new file with mode: 0644]
ld/testsuite/ld-powerpc/vxworks1-lib.s [new file with mode: 0644]
ld/testsuite/ld-powerpc/vxworks1-lib.sd [new file with mode: 0644]
ld/testsuite/ld-powerpc/vxworks1.dd [new file with mode: 0644]
ld/testsuite/ld-powerpc/vxworks1.ld [new file with mode: 0644]
ld/testsuite/ld-powerpc/vxworks1.rd [new file with mode: 0644]
ld/testsuite/ld-powerpc/vxworks1.s [new file with mode: 0644]