aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2018-04-26 15:12:42 +0100
committerNick Clifton <nickc@redhat.com>2018-04-26 15:12:42 +0100
commit0df8ad28f0f727fab3a696d6c98b9a8a77ee1024 (patch)
tree1c4194b04e789a81a0a82af590a12105209fd05b /binutils
parentaa684341294a9125c528041f81d17c488bed5552 (diff)
downloadfsf-binutils-gdb-0df8ad28f0f727fab3a696d6c98b9a8a77ee1024.zip
fsf-binutils-gdb-0df8ad28f0f727fab3a696d6c98b9a8a77ee1024.tar.gz
fsf-binutils-gdb-0df8ad28f0f727fab3a696d6c98b9a8a77ee1024.tar.bz2
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.
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog8
-rw-r--r--binutils/readelf.c3
-rw-r--r--binutils/testsuite/binutils-all/note-5.d11
-rw-r--r--binutils/testsuite/binutils-all/note-5.s14
-rw-r--r--binutils/testsuite/binutils-all/objcopy.exp1
5 files changed, 36 insertions, 1 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 702c0cf..3b98be4 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,11 @@
+2018-04-26 Nick Clifton <nickc@redhat.com>
+
+ * 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.
+
2018-04-25 Christophe Lyon <christophe.lyon@st.com>
* testsuite/binutils-all/elfedit-2.d: Accept arm*-*-uclinuxfdpiceabi.
diff --git a/binutils/readelf.c b/binutils/readelf.c
index e8e1b96..eecc05b 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -12305,7 +12305,8 @@ is_32bit_abs_reloc (Filedata * filedata, unsigned int reloc_type)
case EM_OR1K:
return reloc_type == 1; /* R_OR1K_32. */
case EM_PARISC:
- return (reloc_type == 1 /* R_PARISC_DIR32. */
+ return (reloc_type == 1 /* R_PARISC_DIR32. */
+ || reloc_type == 2 /* R_PARISC_DIR21L. */
|| reloc_type == 41); /* R_PARISC_SECREL32. */
case EM_PJ:
case EM_PJ_OLD:
diff --git a/binutils/testsuite/binutils-all/note-5.d b/binutils/testsuite/binutils-all/note-5.d
new file mode 100644
index 0000000..d3bef15
--- /dev/null
+++ b/binutils/testsuite/binutils-all/note-5.d
@@ -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\)
+#...
diff --git a/binutils/testsuite/binutils-all/note-5.s b/binutils/testsuite/binutils-all/note-5.s
new file mode 100644
index 0000000..4375b25
--- /dev/null
+++ b/binutils/testsuite/binutils-all/note-5.s
@@ -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
+ \ No newline at end of file
diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp
index 2a2e757..3381236 100644
--- a/binutils/testsuite/binutils-all/objcopy.exp
+++ b/binutils/testsuite/binutils-all/objcopy.exp
@@ -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"