aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2018-05-14 15:32:43 +0100
committerNick Clifton <nickc@redhat.com>2018-05-14 15:32:43 +0100
commit864bb26cb34ce6f0a85f83ed38757d5512d07b2a (patch)
tree8a40c86dd1c10eb27592f4dafcf7025597d92a1b /ld
parentc3533c4c7c5db84b27e4dc8994a3c3a893077c03 (diff)
downloadbinutils-864bb26cb34ce6f0a85f83ed38757d5512d07b2a.zip
binutils-864bb26cb34ce6f0a85f83ed38757d5512d07b2a.tar.gz
binutils-864bb26cb34ce6f0a85f83ed38757d5512d07b2a.tar.bz2
Stop generating GNU build notes for linkonce sections.
gas * write.c (maybe_generate_build_notes): Generate notes on a per-code-section basis. Skip linkonce sections. ld * testsuite/ld-elf/notes.exp: New file: Run new test. * testsuite/ld-elf/note1_1.s: New file: Source file for test. * testsuite/ld-elf/note1_2.s: New file: Source file for test. * testsuite/ld-elf/note1.r: New file: Expected readelf output.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog7
-rw-r--r--ld/testsuite/ld-elf/note1.r6
-rw-r--r--ld/testsuite/ld-elf/note1_1.s17
-rw-r--r--ld/testsuite/ld-elf/note1_2.s17
-rw-r--r--ld/testsuite/ld-elf/notes.exp43
5 files changed, 90 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index fbc4d59..bb20a46 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,10 @@
+2018-05-14 Nick Clifton <nickc@redhat.com>
+
+ * testsuite/ld-elf/notes.exp: New file: Run new test.
+ * testsuite/ld-elf/note1_1.s: New file: Source file for test.
+ * testsuite/ld-elf/note1_2.s: New file: Source file for test.
+ * testsuite/ld-elf/note1.r: New file: Expected readelf output.
+
2018-05-14 H.J. Lu <hongjiu.lu@intel.com>
PR ld/23169
diff --git a/ld/testsuite/ld-elf/note1.r b/ld/testsuite/ld-elf/note1.r
new file mode 100644
index 0000000..58886d8
--- /dev/null
+++ b/ld/testsuite/ld-elf/note1.r
@@ -0,0 +1,6 @@
+#...
+Displaying notes found in: .gnu.build.attributes
+[ ]+Owner[ ]+Data size[ ]+Description
+[ ]+GA\$<version>3a1[ ]+0x000000(08|10)[ ]+OPEN[ ]+Applies to region from 0.*
+[ ]+GA\$<version>3a1[ ]+0x000000(08|10)[ ]+OPEN[ ]+Applies to region from 0.*
+#pass
diff --git a/ld/testsuite/ld-elf/note1_1.s b/ld/testsuite/ld-elf/note1_1.s
new file mode 100644
index 0000000..e9d80fb
--- /dev/null
+++ b/ld/testsuite/ld-elf/note1_1.s
@@ -0,0 +1,17 @@
+ .section .gnu.linkonce.t.thunk.ax,"ax",%progbits
+ .globl thunk.ax
+ .hidden thunk.ax
+ .p2align 4
+ .type thunk.ax,%function
+thunk.ax:
+ .dc.l 0
+ .size thunk.ax, . - thunk.ax
+
+ .p2align 4
+ .globl foo
+ .type foo,%function
+foo:
+ .dc.a thunk.ax
+ .dc.l 0
+ .size foo, . - foo
+
diff --git a/ld/testsuite/ld-elf/note1_2.s b/ld/testsuite/ld-elf/note1_2.s
new file mode 100644
index 0000000..8162d38
--- /dev/null
+++ b/ld/testsuite/ld-elf/note1_2.s
@@ -0,0 +1,17 @@
+
+ .section .gnu.linkonce.t.thunk.ax,"ax",%progbits
+ .globl thunk.ax
+ .hidden thunk.ax
+ .p2align 4
+ .type thunk.ax,%function
+thunk.ax:
+ .dc.l 0
+ .size thunk.ax, . - thunk.ax
+
+ .p2align 4
+ .globl bar
+ .type bar,%function
+bar:
+ .dc.a thunk.ax
+ .dc.l 0
+ .size bar, . - bar
diff --git a/ld/testsuite/ld-elf/notes.exp b/ld/testsuite/ld-elf/notes.exp
new file mode 100644
index 0000000..5f55d46
--- /dev/null
+++ b/ld/testsuite/ld-elf/notes.exp
@@ -0,0 +1,43 @@
+# Expect script for various ELF based Note tests.
+# Copyright (C) 2018 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+#
+
+# Exclude non-ELF targets.
+
+if ![is_elf_format] {
+ return
+}
+
+set old_ldflags $LDFLAGS
+if { [istarget spu*-*-*] } {
+ set LDFLAGS "$LDFLAGS --local-store 0:0"
+}
+
+if { [is_remote host] } then {
+ remote_download host merge.ld
+}
+
+run_ld_link_tests [list \
+ [list "Linkonce sections with assembler generated notes" \
+ "-r" "" "--generate-missing-build-notes=yes" \
+ {note1_1.s note1_2.s} \
+ {{readelf {--wide --notes} note1.r}} \
+ "note1.so" ] \
+]