mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-18 22:13:40 +08:00
* ld-linkonce/linkonce.exp: New file.
* ld-linkonce/x.s, ld-linkonce/y.s, ld-linkonce/zeroeh.ld, ld-linkonce/zeroehl32.d: New test.
This commit is contained in:
parent
4818e05fe5
commit
8e13f7b1f9
@ -1,3 +1,9 @@
|
||||
2001-09-29 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
* ld-linkonce/linkonce.exp: New file.
|
||||
* ld-linkonce/x.s, ld-linkonce/y.s, ld-linkonce/zeroeh.ld,
|
||||
ld-linkonce/zeroehl32.d: New test.
|
||||
|
||||
2001-09-25 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* ld-elfweak/dso.dsym: Updated for alpha.
|
||||
|
35
ld/testsuite/ld-linkonce/linkonce.exp
Normal file
35
ld/testsuite/ld-linkonce/linkonce.exp
Normal file
@ -0,0 +1,35 @@
|
||||
# Expect script for ld linkonce tests
|
||||
# Copyright 2001 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# Written by Hans-Peter Nilsson (hp@axis.com)
|
||||
#
|
||||
|
||||
# Test for ELF here (or really, .gnu.linkonce functionality), so we don't
|
||||
# have to qualify on ELF specifically in every .d-file.
|
||||
|
||||
if { ![istarget *-*-linux*] && ![istarget *-*-gnu] && ![istarget *-*-elf] } {
|
||||
return
|
||||
}
|
||||
|
||||
load_lib ld-lib.exp
|
||||
|
||||
set rd_test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]]
|
||||
for { set i 0 } { $i < [llength $rd_test_list] } { incr i } {
|
||||
# We need to strip the ".d", but can leave the dirname.
|
||||
verbose [file rootname [lindex $rd_test_list $i]]
|
||||
run_dump_test [file rootname [lindex $rd_test_list $i]]
|
||||
}
|
26
ld/testsuite/ld-linkonce/x.s
Normal file
26
ld/testsuite/ld-linkonce/x.s
Normal file
@ -0,0 +1,26 @@
|
||||
;# Main file, x.s, with the program (_start) referring to two
|
||||
;# linkonce functions fn and fn2. The functions fn and fn2 are
|
||||
;# supposed to be equivalent of C++ template instantiations; the
|
||||
;# main file instantiates fn. There's the equivalent of an FDE
|
||||
;# entry in .eh_frame, referring to fn via a local label.
|
||||
|
||||
.text
|
||||
.global _start
|
||||
_start:
|
||||
.long fn
|
||||
.long fn2
|
||||
|
||||
.section .gnu.linkonce.t.fn,"ax",@progbits
|
||||
.weak fn
|
||||
.type fn,@function
|
||||
fn:
|
||||
.La:
|
||||
.long 1
|
||||
.long 2
|
||||
.Lb:
|
||||
.size fn,.Lb-.La
|
||||
|
||||
.section .eh_frame,"aw",@progbits
|
||||
.long 2
|
||||
.long .La
|
||||
.long .Lb-.La
|
33
ld/testsuite/ld-linkonce/y.s
Normal file
33
ld/testsuite/ld-linkonce/y.s
Normal file
@ -0,0 +1,33 @@
|
||||
;# Library file y.s has linkonce entries for fn and fn2. Note
|
||||
;# that this version of fn has different code, as if compiled
|
||||
;# with different optimization flags than the one in x.s (not
|
||||
;# important for this test, though). The reference from
|
||||
;# .eh_frame to the linkonce-excluded fn2 must be zero, or g++
|
||||
;# EH will not work.
|
||||
|
||||
.section .gnu.linkonce.t.fn2,"ax",@progbits
|
||||
.weak fn2
|
||||
.type fn2,@function
|
||||
fn2:
|
||||
.Lc:
|
||||
.long 3
|
||||
.Ld:
|
||||
.size fn2,.Ld-.Lc
|
||||
|
||||
.section .gnu.linkonce.t.fn,"ax",@progbits
|
||||
.weak fn
|
||||
.type fn,@function
|
||||
fn:
|
||||
.Le:
|
||||
.long 4
|
||||
.Lf:
|
||||
.size fn,.Lf-.Le
|
||||
|
||||
.section .eh_frame,"aw",@progbits
|
||||
.long 7
|
||||
.long .Lc
|
||||
.long .Ld-.Lc
|
||||
|
||||
.long 0x6066
|
||||
.long .Le
|
||||
.long .Lf-.Le
|
4
ld/testsuite/ld-linkonce/zeroeh.ld
Normal file
4
ld/testsuite/ld-linkonce/zeroeh.ld
Normal file
@ -0,0 +1,4 @@
|
||||
SECTIONS {
|
||||
.text 0xa00 : { *(.text); *(.gnu.linkonce.t.*) }
|
||||
.eh_frame 0x2000 : { *(.eh_frame) }
|
||||
}
|
19
ld/testsuite/ld-linkonce/zeroehl32.d
Normal file
19
ld/testsuite/ld-linkonce/zeroehl32.d
Normal file
@ -0,0 +1,19 @@
|
||||
#source: x.s
|
||||
#source: y.s
|
||||
#ld: -Ttext 0xa00 -T $srcdir/$subdir/zeroeh.ld
|
||||
#objdump: -s
|
||||
#target: cris-*-elf cris-*-linux* i?86-*-elf i?86-*-linux*
|
||||
#xfail: *-*-*
|
||||
|
||||
# The word at address 201c, for the linkonce-excluded section, must be zero.
|
||||
|
||||
.*: file format elf32.*
|
||||
|
||||
Contents of section \.text:
|
||||
0a00 080a0000 100a0000 01000000 02000000 .*
|
||||
0a10 03000000 .*
|
||||
Contents of section \.eh_frame:
|
||||
2000 02000000 080a0000 08000000 07000000 .*
|
||||
2010 100a0000 04000000 66600000 00000000 .*
|
||||
2020 04000000 .*
|
||||
#pass
|
Loading…
Reference in New Issue
Block a user