Improve readelf's selection of a file start symbol when displaying a gnu build attribute.
* readelf.c (get_symbol_for_build_attribute): Skip ARM mapping symbols. (print_gnu_build_attribute_description): If no file start symbol could be found, look for one two bytes into the file. * testsuite/binutils-all/note-4-64.s: Set the address of the file start symbol to two bytes into the file. * testsuite/binutils-all/note-4-32.s: Likewise.
This commit is contained in:
parent
f6c4d4b152
commit
8fd7578189
@ -1,3 +1,13 @@
|
||||
2018-03-23 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* readelf.c (get_symbol_for_build_attribute): Skip ARM mapping
|
||||
symbols.
|
||||
(print_gnu_build_attribute_description): If no file start symbol
|
||||
could be found, look for one two bytes into the file.
|
||||
* testsuite/binutils-all/note-4-64.s: Set the address of the file
|
||||
start symbol to two bytes into the file.
|
||||
* testsuite/binutils-all/note-4-32.s: Likewise.
|
||||
|
||||
2018-03-21 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* readelf.c (process_dynamic_section): Also dump DF_1_KMOD,
|
||||
|
@ -17502,6 +17502,13 @@ get_symbol_for_build_attribute (Filedata * filedata,
|
||||
if (strtab[sym->st_name] == 0)
|
||||
continue;
|
||||
|
||||
/* The AArch64 and ARM architectures define mapping symbols
|
||||
(eg $d, $x, $t) which we want to ignore. */
|
||||
if (strtab[sym->st_name] == '$'
|
||||
&& strtab[sym->st_name + 1] != 0
|
||||
&& strtab[sym->st_name + 2] == 0)
|
||||
continue;
|
||||
|
||||
if (is_open_attr)
|
||||
{
|
||||
/* For OPEN attributes we prefer GLOBAL over LOCAL symbols
|
||||
@ -17630,6 +17637,12 @@ print_gnu_build_attribute_description (Elf_Internal_Note * pnote,
|
||||
|
||||
name = NULL;
|
||||
sym = get_symbol_for_build_attribute (filedata, start, is_open_attr, & name);
|
||||
/* As of version 5 of the annobin plugin, filename symbols are biased by 2
|
||||
in order to avoid them being confused with the start address of the
|
||||
first function in the file... */
|
||||
if (sym == NULL && is_open_attr)
|
||||
sym = get_symbol_for_build_attribute (filedata, start + 2, is_open_attr,
|
||||
& name);
|
||||
|
||||
if (end == 0 && sym != NULL && sym->st_size > 0)
|
||||
end = start + sym->st_size;
|
||||
|
@ -7,13 +7,13 @@
|
||||
#...
|
||||
Displaying notes found in: .gnu.build.attributes
|
||||
[ ]+Owner[ ]+Data size[ ]+Description
|
||||
[ ]+GA\$<version>3p3[ ]+0x00000008[ ]+OPEN[ ]+Applies to region from 0x100 to 0x110 \(note_4.s\)
|
||||
[ ]+GA\$<tool>gcc 7.2.1 20170915[ ]+0x00000000[ ]+OPEN[ ]+Applies to region from 0x100 to 0x110
|
||||
[ ]+GA\*GOW:0x700[ ]+0x00000000[ ]+OPEN[ ]+Applies to region from 0x100 to 0x110
|
||||
[ ]+GA\*<stack prot>off[ ]+0x00000000[ ]+OPEN[ ]+Applies to region from 0x100 to 0x110
|
||||
[ ]+GA\*FORTIFY:0xff[ ]+0x00000000[ ]+OPEN[ ]+Applies to region from 0x100 to 0x110
|
||||
[ ]+GA\*<PIC>PIC[ ]+0x00000000[ ]+OPEN[ ]+Applies to region from 0x100 to 0x110
|
||||
[ ]+GA\!<short enum>false[ ]+0x00000000[ ]+OPEN[ ]+Applies to region from 0x100 to 0x110
|
||||
[ ]+GA\*<ABI>0x[0-9a-f]+[ ]+0x00000000[ ]+OPEN[ ]+Applies to region from 0x100 to 0x110
|
||||
[ ]+GA\*<stack prot>strong[ ]+0x00000008[ ]+func[ ]+Applies to region from 0x108 to 0x10c.*
|
||||
[ ]+GA\$<version>3p3[ ]+0x00000008[ ]+OPEN[ ]+Applies to region from 0x10. to 0x110 \(note_4.s\)
|
||||
[ ]+GA\$<tool>gcc 7.2.1 20170915[ ]+0x00000000[ ]+OPEN[ ]+Applies to region from 0x10. to 0x110
|
||||
[ ]+GA\*GOW:0x700[ ]+0x00000000[ ]+OPEN[ ]+Applies to region from 0x10. to 0x110
|
||||
[ ]+GA\*<stack prot>off[ ]+0x00000000[ ]+OPEN[ ]+Applies to region from 0x10. to 0x110
|
||||
[ ]+GA\*FORTIFY:0xff[ ]+0x00000000[ ]+OPEN[ ]+Applies to region from 0x10. to 0x110
|
||||
[ ]+GA\*<PIC>PIC[ ]+0x00000000[ ]+OPEN[ ]+Applies to region from 0x10. to 0x110
|
||||
[ ]+GA\!<short enum>false[ ]+0x00000000[ ]+OPEN[ ]+Applies to region from 0x10. to 0x110
|
||||
[ ]+GA\*<ABI>0x[0-9a-f]+[ ]+0x00000000[ ]+OPEN[ ]+Applies to region from 0x10. to 0x110
|
||||
[ ]+GA\*<stack prot>strong[ ]+0x00000008[ ]+func[ ]+Applies to region from 0x10. to 0x10c.*
|
||||
#...
|
||||
|
@ -1,6 +1,6 @@
|
||||
.text
|
||||
.org 0x100
|
||||
note_4.s:
|
||||
.equiv note_4.s, . + 2
|
||||
.dc.l 0
|
||||
.dc.l 0
|
||||
|
||||
@ -18,7 +18,7 @@ note_4.s_end:
|
||||
.dc.l 8
|
||||
.dc.l 0x100
|
||||
.asciz "GA$3p3"
|
||||
.dc.l note_4.s
|
||||
.dc.l note_4.s - 2
|
||||
.dc.l note_4.s_end
|
||||
|
||||
.dc.l 23
|
||||
|
@ -1,6 +1,6 @@
|
||||
.text
|
||||
.org 0x100
|
||||
note_4.s:
|
||||
.equiv note_4.s, . + 2
|
||||
.dc.l 0
|
||||
.dc.l 0
|
||||
.dc.l 0
|
||||
@ -22,7 +22,7 @@ note_4.s_end:
|
||||
.dc.l 16
|
||||
.dc.l 0x100
|
||||
.asciz "GA$3p3"
|
||||
.8byte note_4.s
|
||||
.8byte note_4.s - 2
|
||||
.8byte note_4.s_end
|
||||
|
||||
.dc.l 23
|
||||
|
Loading…
x
Reference in New Issue
Block a user