diff options
author | Nick Clifton <nickc@redhat.com> | 2018-01-03 10:28:33 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2018-01-03 10:30:07 +0000 |
commit | 6f156d7a4ad1c245b357dc50f63f3564d397839e (patch) | |
tree | a247aad883eb6ba6eeb0c9715c218527fc25c869 /binutils/testsuite/binutils-all/mips | |
parent | 9f757bf7fcb8834ead780e0c4a76d6029b1402c2 (diff) | |
download | binutils-6f156d7a4ad1c245b357dc50f63f3564d397839e.zip binutils-6f156d7a4ad1c245b357dc50f63f3564d397839e.tar.gz binutils-6f156d7a4ad1c245b357dc50f63f3564d397839e.tar.bz2 |
Add support for v3 binary annotation notes.
I am checking in the attached patch which updates the binutils
support for version 3 binary annotation notes. (Version 3 adds
an end address to the ranges covered by the notes, so that it
is possible to detect gaps in the coverage).
This patch also stops the note merging feature of objcopy from
executing if the notes have relocations against them. This makes the
code simpler, and prevents the problems with architectures which have
unusual relocation management issues.
* objcopy.c (objcopy_internal_note): New structure.
(gap_exists): New function.
(is_open_note): New function.
(is_func_note): New function.
(is_64bit): New function.
(merge_gnu_build_notes): Handle v3 notes. Do not merge
if there are relocations against the notes.
* readelf.c (get_note_type): Use short names for build attribute
notes.
(print_symbol_for_build_attribute): Rename to
get_symbol_for_build_attribute. Returns the found symbol rather
than printing it.
(print_gnu_build_attribute_description): Maintain address ranges
for function notes as well as global notes. Handle v3 notes.
(print_gnu_build_attribute_name): Use more space for printing the
name in wide mode.
* testsuite/binutils-all/note-2-32.s: Use .dc.l instead of .word.
Eliminate symbol references in order to remove the need for
relocations.
* testsuite/binutils-all/note-2-64.s: Likewise.
* testsuite/binutils-all/note-3-32.s: Add a size to the note_1
symbol.
* testsuite/binutils-all/note-3-64.s: Likewise.
* testsuite/binutils-all/mips/mips-note-2r-n32.d: Update expected
output.
* testsuite/binutils-all/mips/mips-note-2r-n64.d: Likewise.
* testsuite/binutils-all/mips/mips-note-2r.d: Likewise.
* testsuite/binutils-all/note-2-32.d: Likewise.
* testsuite/binutils-all/note-2-64.d: Likewise.
* testsuite/binutils-all/note-3-32.d: Likewise.
* testsuite/binutils-all/note-3-64.d: Likewise.
* testsuite/binutils-all/note-4-64.s: New test. Checks v3 notes.
* testsuite/binutils-all/note-4-32.s: New test.
* testsuite/binutils-all/note-4-64.d: New test result file.
* testsuite/binutils-all/note-4-32.d: New test result file.
Diffstat (limited to 'binutils/testsuite/binutils-all/mips')
-rw-r--r-- | binutils/testsuite/binutils-all/mips/mips-note-2r-n32.d | 6 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/mips/mips-note-2r-n64.d | 10 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/mips/mips-note-2r.d | 6 |
3 files changed, 6 insertions, 16 deletions
diff --git a/binutils/testsuite/binutils-all/mips/mips-note-2r-n32.d b/binutils/testsuite/binutils-all/mips/mips-note-2r-n32.d index caf9972..e76466e 100644 --- a/binutils/testsuite/binutils-all/mips/mips-note-2r-n32.d +++ b/binutils/testsuite/binutils-all/mips/mips-note-2r-n32.d @@ -5,7 +5,5 @@ #as: -n32 -mips3 #source: ../note-2-32.s -Relocation section '\.rela\.gnu\.build\.attributes' at offset .* contains 2 entries: - Offset Info Type Sym\.Value Sym\. Name \+ Addend -00000010 ......02 R_MIPS_32 00000100 note1\.s \+ 0 -0000006c ......02 R_MIPS_32 00000104 note2\.s \+ 0 +There are no relocations in this file. +#... diff --git a/binutils/testsuite/binutils-all/mips/mips-note-2r-n64.d b/binutils/testsuite/binutils-all/mips/mips-note-2r-n64.d index 0fbcc39..033dd9b 100644 --- a/binutils/testsuite/binutils-all/mips/mips-note-2r-n64.d +++ b/binutils/testsuite/binutils-all/mips/mips-note-2r-n64.d @@ -5,11 +5,5 @@ #as: -64 -mips3 #source: ../note-2-64.s -Relocation section '\.rela\.gnu\.build\.attributes' at offset .* contains 2 entries: - Offset Info Type Sym\. Value Sym\. Name \+ Addend -000000000010 ....00000012 R_MIPS_64 0000000000000100 note1\.s \+ 0 - Type2: R_MIPS_NONE - Type3: R_MIPS_NONE -000000000070 ....00000012 R_MIPS_64 0000000000000104 note2\.s \+ 0 - Type2: R_MIPS_NONE - Type3: R_MIPS_NONE +There are no relocations in this file. +#... diff --git a/binutils/testsuite/binutils-all/mips/mips-note-2r.d b/binutils/testsuite/binutils-all/mips/mips-note-2r.d index c025727..c130528 100644 --- a/binutils/testsuite/binutils-all/mips/mips-note-2r.d +++ b/binutils/testsuite/binutils-all/mips/mips-note-2r.d @@ -5,7 +5,5 @@ #as: -32 #source: ../note-2-32.s -Relocation section '\.rel\.gnu\.build\.attributes' at offset .* contains 2 entries: - Offset Info Type Sym\.Value Sym\. Name -00000010 ......02 R_MIPS_32 00000100 note1\.s -0000006c ......02 R_MIPS_32 00000104 note2\.s +There are no relocations in this file. +#... |