4 changed files with 66 additions and 0 deletions
@ -0,0 +1,50 @@ |
|||
# Test PHDRS in a linker script. |
|||
# By Ian Lance Taylor, Cygnus Support. |
|||
|
|||
# PHDRS is only meaningful for ELF. |
|||
if { ![istarget *-*-sysv4*] \ |
|||
&& ![istarget *-*-unixware*] \ |
|||
&& ![istarget *-*-elf*] \ |
|||
&& ![istarget *-*-linux*] \ |
|||
&& ![istarget *-*-irix5*] \ |
|||
&& ![istarget *-*-irix6*] \ |
|||
&& ![istarget *-*-solaris2*] } { |
|||
return |
|||
} |
|||
|
|||
if { [istarget *-*-linuxaout*] \ |
|||
|| [istarget *-*-linuxoldld*] } { |
|||
return |
|||
} |
|||
|
|||
# This is a very simplistic test. |
|||
|
|||
set testname "PHDRS" |
|||
|
|||
if ![ld_assemble $as $srcdir/$subdir/phdrs.s tmpdir/phdrs.o] { |
|||
unresolved $testname |
|||
return |
|||
} |
|||
|
|||
set phdrs_regexp \ |
|||
".*Program Header:.*PHDR *off *0x00*34 *vaddr *0x00*80034 *paddr *0x00*80034.*filesz *0x0\[0-9a-f\]* *memsz *0x0\[0-9a-f\]* flags r--.*LOAD *off *0x00* *vaddr *0x00*80000 *paddr *0x00*80000.*filesz *0x00*\[0-9a-f\]* *memsz *0x0\[0-9a-f\]* *flags r-x.*LOAD *off *0x0\[0-9a-f\]* *vaddr *0x00*80*\[0-9a-f\]* *paddr *0x00*80*\[0-9a-f\]*.*filesz *0x0\[0-9a-f\]* *memsz *0x0\[0-9a-f\]* *flags *rw-.*" |
|||
|
|||
if ![ld_simple_link $ld tmpdir/phdrs "-T $srcdir/$subdir/phdrs.t tmpdir/phdrs.o"] { |
|||
fail $testname |
|||
} else { |
|||
if {[which $objdump] == 0} { |
|||
unresolved $testname |
|||
return |
|||
} |
|||
|
|||
verbose -log "$objdump --private tmpdir/phdrs" |
|||
catch "exec $objdump --private tmpdir/phdrs" exec_output |
|||
set exec_output [prune_system_crud $host_triplet $exec_output] |
|||
verbose -log $exec_output |
|||
|
|||
if [regexp $phdrs_regexp $exec_output] { |
|||
pass $testname |
|||
} else { |
|||
fail $testname |
|||
} |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
.text |
|||
|
|||
.long 1 |
|||
|
|||
.data |
|||
|
|||
.long 2 |
|||
|
|||
Loading…
Reference in new issue