From 864bb26cb34ce6f0a85f83ed38757d5512d07b2a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 14 May 2018 15:32:43 +0100 Subject: 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. --- ld/ChangeLog | 7 +++++++ ld/testsuite/ld-elf/note1.r | 6 ++++++ ld/testsuite/ld-elf/note1_1.s | 17 +++++++++++++++++ ld/testsuite/ld-elf/note1_2.s | 17 +++++++++++++++++ ld/testsuite/ld-elf/notes.exp | 43 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 90 insertions(+) create mode 100644 ld/testsuite/ld-elf/note1.r create mode 100644 ld/testsuite/ld-elf/note1_1.s create mode 100644 ld/testsuite/ld-elf/note1_2.s create mode 100644 ld/testsuite/ld-elf/notes.exp (limited to 'ld') 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 + + * 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 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\$3a1[ ]+0x000000(08|10)[ ]+OPEN[ ]+Applies to region from 0.* +[ ]+GA\$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" ] \ +] -- cgit v1.1