Extend the assembler so that it can automatically generate GNU Build attribute notes if none are present in the input files.

gas	* as.c (flag_generate_build_notes): New variable.
	(show_usage): Add entry for --generate-missing-build-notes.
	(parse_args): Parse --generate-missing-build-notes.
	* as.h: Export flag_generate_build_notes.
	* symbols.c (save_symbol_name): Ensure that the name parameter is
	not NULL.
	* write.c (create_obj_attrs_section): Reformat.
	(create_note_reloc): New function - creates a relocation for a
	field in a GNU Build attribute note.
	(maybe_generate_build_notes): New function - created GNU Build
	attribute notes if none are present in the output file.
	(write_object_file): Call maybe_generate_build_notes.
	* configure.ac (--enable-generate-build-notes): New option.
	* NEWS: Announce the new feature.
	* doc/as.textinfo: Document the new option.
	* config.in: Regenerate.
	* configure: Regenerate.

binutils* readelf.c (is_32bit_abs_reloc): Support R_PARISC_DIR32 as a
	32-bit absolute reloc for the HPPA target.
	* testsuite/binutils-all/note-5.d: New test.
	* testsuite/binutils-all/note-5.s: Source file for new test.
	* testsuite/binutils-all/objcopy.exp: Run new test.
This commit is contained in:
Nick Clifton
2018-04-26 15:12:42 +01:00
parent aa68434129
commit 0df8ad28f0
15 changed files with 350 additions and 21 deletions

View File

@ -0,0 +1,11 @@
#PROG: objcopy
#as: --generate-missing-build-notes=yes
#readelf: --notes --wide
#name: assembler generated build notes
#source: note-5.s
#...
Displaying notes found in: .gnu.build.attributes
[ ]+Owner[ ]+Data size[ ]+Description
[ ]+GA\$<version>3a1[ ]+0x000000(08|10)[ ]+OPEN[ ]+Applies to region from 0 to 0x.. \(note_5.s\)
#...

View File

@ -0,0 +1,14 @@
.text
.global note_5.s
note_5.s:
.dc.l 2
.dc.l 4
.dc.l 6
.dc.l 8
.dc.l 8
.dc.l 8
.dc.l 8
.dc.l 8
.dc.l 8
.dc.l 8

View File

@ -1058,6 +1058,7 @@ if [is_elf_format] {
run_dump_test "note-3-32"
run_dump_test "note-4-32"
}
run_dump_test "note-5"
}
run_dump_test "copy-2"