Commit: Add support for v3 binary annotation patches

Christophe Lyon christophe.lyon@linaro.org
Wed Jan 3 12:05:00 GMT 2018


Hi Nick,

On 3 January 2018 at 11:28, Nick Clifton <nickc@redhat.com> wrote:
> Hi Guys,
>
>   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.
>
>   Tested with lots of different architectures and no regressions.
>

It seems this patch breaks the build on arm targets when configuring
with --enable-64-bit-bfd=no

../../binutils/objcopy.c: In function 'merge_gnu_build_notes':
../../binutils/objcopy.c:2067:4: error: large integer implicitly
truncated to unsigned type [-Werror=overflow]
    end = 0x7ffffffffffffffUL;
    ^
../../binutils/objcopy.c:2086:8: error: large integer implicitly
truncated to unsigned type [-Werror=overflow]
        end = 0x7ffffffffffffffUL;

Christophe



> Cheers
>   Nick
>
> binutils/ChangeLog
> 2018-01-03  Nick Clifton  <nickc@redhat.com>
>
>         * 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.
>



More information about the Binutils mailing list