diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2000-07-16 21:29:32 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2000-07-16 21:29:32 +0000 |
commit | 08c44e659e4277eedba21b963a6848ef4ae3948f (patch) | |
tree | 352acaa34841145ec2b7bb48d7fe2b6df24dc3ad /ld/testsuite/ld-elfvsb/elfvsb.exp | |
parent | 1345a0c087decf73553c7ed8e92ae0e997794eff (diff) | |
download | gdb-08c44e659e4277eedba21b963a6848ef4ae3948f.zip gdb-08c44e659e4277eedba21b963a6848ef4ae3948f.tar.gz gdb-08c44e659e4277eedba21b963a6848ef4ae3948f.tar.bz2 |
2000-07-16 H.J. Lu (hjl@gnu.org)
* ld-elfvsb/elfvsb.exp (support_protected): New variable. Check
and set to "yes" if the protected visibility is expected to
pass.
(visibility_run): Set expected to fail for the "protected"
and "protected_undef_def" tests only if $support_protected is
"no".
* ld-elfvsb/main.c (PROTECTED_CHECK): Check for the protected
visibility support if defined.
Diffstat (limited to 'ld/testsuite/ld-elfvsb/elfvsb.exp')
-rw-r--r-- | ld/testsuite/ld-elfvsb/elfvsb.exp | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/ld/testsuite/ld-elfvsb/elfvsb.exp b/ld/testsuite/ld-elfvsb/elfvsb.exp index e3a010e..e437a56 100644 --- a/ld/testsuite/ld-elfvsb/elfvsb.exp +++ b/ld/testsuite/ld-elfvsb/elfvsb.exp @@ -74,6 +74,16 @@ if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } { close $file } +set support_protected "no" + +if [istarget *-*-linux*] { + if [ld_compile "$CC $CFLAGS -DPROTECTED_CHECK" $srcdir/$subdir/main.c $tmpdir/main.o] { + if [ld_link $ld $tmpdir/main "$tmpdir/main.o"] { + catch "exec $tmpdir/main" support_protected + } + } +} + # The test procedure. proc visibility_test { visibility progname testname main sh1 sh2 dat args } { global ld @@ -171,6 +181,7 @@ proc visibility_run {visibility} { global tmpdir global picflag global target_triplet + global support_protected if [ string match $visibility "hidden" ] { set VSBCFLAG "-DHIDDEN_TEST" @@ -215,7 +226,9 @@ proc visibility_run {visibility} { # overriding. if { [ string match $visibility "protected" ] || [ string match $visibility "protected_undef_def" ] } { - setup_xfail $target_triplet + if [ string match $support_protected "no" ] { + setup_xfail $target_triplet + } } else { setup_xfail "*-*-sunos4*" } @@ -227,7 +240,9 @@ proc visibility_run {visibility} { # the load address is not zero (which is the default). if { [ string match $visibility "protected" ] || [ string match $visibility "protected_undef_def" ] } { - setup_xfail $target_triplet + if [ string match $support_protected "no" ] { + setup_xfail $target_triplet + } } else { setup_xfail "*-*-sunos4*" setup_xfail "*-*-linux*libc1" @@ -245,7 +260,9 @@ proc visibility_run {visibility} { } else { if { [ string match $visibility "protected" ] || [ string match $visibility "protected_undef_def" ] } { - setup_xfail $target_triplet + if [ string match $support_protected "no" ] { + setup_xfail $target_triplet + } } # SunOS can not compare function pointers correctly if [istarget "*-*-sunos4*"] { @@ -271,7 +288,9 @@ proc visibility_run {visibility} { # overriding. if { [ string match $visibility "protected" ] || [ string match $visibility "protected_undef_def" ] } { - setup_xfail $target_triplet + if [ string match $support_protected "no" ] { + setup_xfail $target_triplet + } } else { setup_xfail "*-*-sunos4*" } @@ -284,7 +303,9 @@ proc visibility_run {visibility} { if { [file exists $tmpdir/sh1p.o ] && [ file exists $tmpdir/sh2p.o ] } { if { [ string match $visibility "protected" ] || [ string match $visibility "protected_undef_def" ] } { - setup_xfail $target_triplet + if [ string match $support_protected "no" ] { + setup_xfail $target_triplet + } } if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } { visibility_test $visibility vmpp "visibility ($visibility) (PIC main)" mainp.o sh1p.o sh2p.o xcoff |