PowerPC .gnu.attributes
authorAlan Modra <amodra@gmail.com>
Mon, 26 Sep 2016 08:34:57 +0000 (18:04 +0930)
committerAlan Modra <amodra@gmail.com>
Mon, 26 Sep 2016 08:34:57 +0000 (18:04 +0930)
commit005d79fd6101dae0aaf62a1b0cee399efcbd0e21
tree4035e4a8d7549d7b66bd522e41b9f238202b8131
parent153679d55f9e74c369ca67444bdbaad82855cc6e
PowerPC .gnu.attributes

This patch extends Tag_GNU_Power_ABI_FP to cover long double ABIs,
makes the assembler warn about undefined tag values, and removes
similar warnings from the linker.  I think it is better to not
warn in the linker about undefined tag values as future extensions to
the tags then won't result in likely bogus warnings.  This is
consistent with the fact that an older linker won't warn on an
entirely new tag.

include/
* elf/ppc.h (Tag_GNU_Power_ABI_FP): Comment.
bfd/
* elf-bfd.h (_bfd_elf_ppc_merge_fp_attributes): Declare.
* elf32-ppc.c (_bfd_elf_ppc_merge_fp_attributes): New function.
(ppc_elf_merge_obj_attributes): Use it.  Don't copy first file
attributes, merge them.  Don't warn about undefined tag bits,
or copy unknown values to output.
* elf64-ppc.c (ppc64_elf_merge_private_bfd_data): Call
_bfd_elf_ppc_merge_fp_attributes.
binutils/
* readelf.c (display_power_gnu_attribute): Catch truncated section
for all powerpc attributes.  Display long double ABI.  Don't
capitalize words, except for names.  Show known bits of tag values
when some unknown bits are present.  Whitespace fixes.
gas/
* config/tc-ppc.c (ppc_elf_gnu_attribute): New function.
(md_pseudo_table <ELF>): Handle "gnu_attribute".
ld/
* testsuite/ld-powerpc/attr-gnu-4-4.s: Delete.
* testsuite/ld-powerpc/attr-gnu-4-14.d: Delete.
* testsuite/ld-powerpc/attr-gnu-4-24.d: Delete.
* testsuite/ld-powerpc/attr-gnu-4-34.d: Delete.
* testsuite/ld-powerpc/attr-gnu-4-41.d: Delete.
* testsuite/ld-powerpc/attr-gnu-4-32.d: Adjust expected warning.
* testsuite/ld-powerpc/attr-gnu-8-23.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-4-01.d: Adjust expected output.
* testsuite/ld-powerpc/attr-gnu-4-02.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-4-03.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-4-10.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-4-11.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-4-20.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-4-22.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-4-33.d: Likewise.
* testsuite/ld-powerpc/attr-gnu-8-11.d: Likewise.
* testsuite/ld-powerpc/powerpc.exp: Don't run deleted tests.
28 files changed:
bfd/ChangeLog
bfd/elf-bfd.h
bfd/elf32-ppc.c
bfd/elf64-ppc.c
binutils/ChangeLog
binutils/readelf.c
gas/ChangeLog
gas/config/tc-ppc.c
include/ChangeLog
include/elf/ppc.h
ld/ChangeLog
ld/testsuite/ld-powerpc/attr-gnu-4-01.d
ld/testsuite/ld-powerpc/attr-gnu-4-02.d
ld/testsuite/ld-powerpc/attr-gnu-4-03.d
ld/testsuite/ld-powerpc/attr-gnu-4-10.d
ld/testsuite/ld-powerpc/attr-gnu-4-11.d
ld/testsuite/ld-powerpc/attr-gnu-4-14.d [deleted file]
ld/testsuite/ld-powerpc/attr-gnu-4-20.d
ld/testsuite/ld-powerpc/attr-gnu-4-22.d
ld/testsuite/ld-powerpc/attr-gnu-4-24.d [deleted file]
ld/testsuite/ld-powerpc/attr-gnu-4-32.d
ld/testsuite/ld-powerpc/attr-gnu-4-33.d
ld/testsuite/ld-powerpc/attr-gnu-4-34.d [deleted file]
ld/testsuite/ld-powerpc/attr-gnu-4-4.s [deleted file]
ld/testsuite/ld-powerpc/attr-gnu-4-41.d [deleted file]
ld/testsuite/ld-powerpc/attr-gnu-8-11.d
ld/testsuite/ld-powerpc/attr-gnu-8-23.d
ld/testsuite/ld-powerpc/powerpc.exp