* elf32-sparc.c (_bfd_sparc_elf_howto_table): Fix dst_mask for
authorJakub Jelinek <jakub@redhat.com>
Fri, 21 Dec 2001 22:35:24 +0000 (22:35 +0000)
committerJakub Jelinek <jakub@redhat.com>
Fri, 21 Dec 2001 22:35:24 +0000 (22:35 +0000)
commitbd5e6e7e3a8be60699e596633cd828d3446e75ee
treeabcf04a60d2166b0d451f2a3d5fa061c36b64a44
parent58d370e0e6b0b1cc1df5b587ca39a14e975f5850
* elf32-sparc.c (_bfd_sparc_elf_howto_table): Fix dst_mask for
R_SPARC_DISP32.  Support R_SPARC_PLT32.
(sparc_reloc_map): Add BFD_RELOC_16_PCREL and BFD_RELOC_SPARC_PLT32.
(elf32_sparc_check_relocs): Handle R_SPARC_PLT32.
(elf32_sparc_relocate_section): Likewise.
* elf64-sparc.c (sparc64_elf_howto_table): Fix dst_mask for
R_SPARC_DISP32.  Support R_SPARC_PLT32 and R_SPARC_PLT64.
(sparc_reloc_map): Add BFD_RELOC_16_PCREL, BFD_RELOC_64_PCREL
and BFD_RELOC_SPARC_PLT32.
(sparc64_elf_check_relocs): Handle R_SPARC_PLT32 and R_SPARC_PLT64.
(sparc64_elf_relocate_section): Likewise.
* reloc.c (bfd_reloc_code_type): Add BFD_RELOC_SPARC_PLT32.
* bfd-in2.h, libbfd.h: Rebuilt.

* config/tc-sparc.h (TC_PARSE_CONS_EXPRESSION): Define.
(sparc_cons): Provide prototype.
* config/tc-sparc.c (tc_gen_reloc): Handle BFD_RELOC_*_PCREL and
BFD_RELOC_SPARC_PLT{32,64}.  Enumerate for which relocs
reloc->addend = fixp->fx_addnumber shouldn't be done instead of
enumarating for which pc relative ones it should be done.
(sparc_cons_special_reloc): New variable.
(sparc_cons): New function.
(cons_fix_new_sparc): Use sparc_cons_special_reloc.
* testsuite/gas/sparc/pcrel.s: New test.
* testsuite/gas/sparc/pcrel.d: Expected output.
* testsuite/gas/sparc/pcrel64.s: New test.
* testsuite/gas/sparc/pcrel64.d: Expected output.
* testsuite/gas/sparc/plt.s: New test.
* testsuite/gas/sparc/plt.d: Expected output.
* testsuite/gas/sparc/plt64.s: New test.
* testsuite/gas/sparc/plt64.d: Expected output.
* testsuite/gas/sparc/sparc.exp: Add pcrel, pcrel64, plt and plt64
tests.
18 files changed:
bfd/ChangeLog
bfd/bfd-in2.h
bfd/elf32-sparc.c
bfd/elf64-sparc.c
bfd/libbfd.h
bfd/reloc.c
gas/ChangeLog
gas/config/tc-sparc.c
gas/config/tc-sparc.h
gas/testsuite/gas/sparc/pcrel.d [new file with mode: 0644]
gas/testsuite/gas/sparc/pcrel.s [new file with mode: 0644]
gas/testsuite/gas/sparc/pcrel64.d [new file with mode: 0644]
gas/testsuite/gas/sparc/pcrel64.s [new file with mode: 0644]
gas/testsuite/gas/sparc/plt.d [new file with mode: 0644]
gas/testsuite/gas/sparc/plt.s [new file with mode: 0644]
gas/testsuite/gas/sparc/plt64.d [new file with mode: 0644]
gas/testsuite/gas/sparc/plt64.s [new file with mode: 0644]
gas/testsuite/gas/sparc/sparc.exp