Browse Source
* ld-elf/frame.exp: New file. Test read-only .eh_frame and .gcc_except_table sections. * ld-elf/frame.s: Likewise. * ld-elf/table.s: Likewise. * ld-elf/tbss.s: Likewise.jimb-rda-nptl-branch
5 changed files with 81 additions and 0 deletions
@ -0,0 +1,55 @@ |
|||
# Expect script for common symbol tests |
|||
# Copyright 2004 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 H.J. Lu (hongjiu.lu@intel.com) |
|||
# |
|||
|
|||
# Make sure that ld correctly handles frame sections in ELF. |
|||
|
|||
# This test can only be run on ELF platforms. |
|||
if ![is_elf_format] { |
|||
return |
|||
} |
|||
|
|||
set test1 "read-only .eh_frame section" |
|||
set test2 "read-only .gcc_except_table section" |
|||
|
|||
global as |
|||
global ld |
|||
|
|||
if { ![ld_assemble $as $srcdir/$subdir/tbss.s tmpdir/tbss.o ] |
|||
|| ![ld_assemble $as $srcdir/$subdir/frame.s tmpdir/frame.o] } { |
|||
unresolved "$test1" |
|||
return |
|||
} |
|||
|
|||
if { [ld_simple_link $ld tmpdir/frame.so "--shared tmpdir/frame.o tmpdir/tbss.o"] } { |
|||
pass "$test1" |
|||
} else { |
|||
fail "$test1" |
|||
} |
|||
|
|||
if ![ld_assemble $as $srcdir/$subdir/table.s tmpdir/table.o ] { |
|||
unresolved "$test2" |
|||
return |
|||
} |
|||
|
|||
if { [ld_simple_link $ld tmpdir/table.so "--shared tmpdir/table.o tmpdir/tbss.o"] } { |
|||
pass "$test2" |
|||
} else { |
|||
fail "$test2" |
|||
} |
|||
@ -0,0 +1,2 @@ |
|||
.section .eh_frame,"a",@progbits |
|||
.4byte 0 |
|||
@ -0,0 +1 @@ |
|||
.section .gcc_except_table,"a",@progbits |
|||
@ -0,0 +1,15 @@ |
|||
.file "x.c" |
|||
.globl bss |
|||
.section .bss,"aw",@nobits |
|||
.align 4096 |
|||
.type bss,@object |
|||
.size bss,4096 |
|||
bss: |
|||
.zero 4096 |
|||
.globl tbss |
|||
.section .tbss,"awT",@nobits |
|||
.align 4096 |
|||
.type tbss,@object |
|||
.size tbss,4096 |
|||
tbss: |
|||
.zero 4096 |
|||
Loading…
Reference in new issue