Browse Source
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.binutils-2_31-branch
7 changed files with 139 additions and 48 deletions
@ -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 |
|||
@ -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 |
|||
|
|||
@ -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 |
|||
@ -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" ] \ |
|||
] |
|||
Loading…
Reference in new issue