diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2006-03-02 08:50:04 +0000 |
---|---|---|
committer | Richard Sandiford <rdsandiford@googlemail.com> | 2006-03-02 08:50:04 +0000 |
commit | 4a3dc54359e79df0cb556cd5b4ab5c1bc91019b5 (patch) | |
tree | fe67901dab8531bb6298e2bd2717d1ea8cca508a /ld/testsuite/ld-powerpc/vxworks1-lib.s | |
parent | 2c10a7e506c2bced576c630be7e32d04de15862d (diff) | |
download | gdb-4a3dc54359e79df0cb556cd5b4ab5c1bc91019b5.zip gdb-4a3dc54359e79df0cb556cd5b4ab5c1bc91019b5.tar.gz gdb-4a3dc54359e79df0cb556cd5b4ab5c1bc91019b5.tar.bz2 |
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.
Diffstat (limited to 'ld/testsuite/ld-powerpc/vxworks1-lib.s')
-rw-r--r-- | ld/testsuite/ld-powerpc/vxworks1-lib.s | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/ld/testsuite/ld-powerpc/vxworks1-lib.s b/ld/testsuite/ld-powerpc/vxworks1-lib.s new file mode 100644 index 0000000..8e286c1 --- /dev/null +++ b/ld/testsuite/ld-powerpc/vxworks1-lib.s @@ -0,0 +1,35 @@ + .text + .globl foo + .type foo, @function +foo: + stwu r1,-24(r1) + mflr r0 + stw r0,28(r1) + lis r30,__GOTT_BASE__@ha + lwz r30,__GOTT_BASE__@l(r30) + lwz r30,__GOTT_INDEX__(r30) + lwz r1,x@got(r30) + lwz r0,0(r1) + addi r0,r0,1 + stw r0,0(r1) + bl slocal + bl sglobal@plt + bl sexternal@plt + lwz r0,28(r1) + mtlr r0 + addi r1,r1,24 + blr + .size foo, .-foo + + .type slocal, @function +slocal: + blr + .size slocal, .-slocal + + .globl sglobal + .type sglobal, @function +sglobal: + blr + .size sglobal, .-sglobal + + .comm x,4,4 |