2000-07-15 H.J. Lu (hjl@gnu.org)

* ld-elfvsb/elfvsb.exp (visibility_run): Set expected failure
	for "protected_undef_def".

	* ld-elfvsb/main.c: Don't define HIDDEN_UNDEF_TEST when
	PROTECTED_WEAK_TEST is defined.
	Don't define PROTECTED_UNDEF_TEST when PROTECTED_WEAK_TEST is
	defined.
	Define PROTECTED_TEST when PROTECTED_UNDEF_TEST is defined.

	* ld-elfvsb/sh1.c (visibility): Mark protected only if
	PROTECTED_TEST, PROTECTED_UNDEF_TEST or PROTECTED_WEAK_TEST
	is defined.
	(visibility_var): Likewise.
This commit is contained in:
H.J. Lu 2000-07-15 23:57:20 +00:00
parent 930d924dd4
commit 1345a0c087
4 changed files with 32 additions and 7 deletions

View File

@ -1,3 +1,19 @@
2000-07-15 H.J. Lu (hjl@gnu.org)
* ld-elfvsb/elfvsb.exp (visibility_run): Set expected failure
for "protected_undef_def".
* ld-elfvsb/main.c: Don't define HIDDEN_UNDEF_TEST when
PROTECTED_WEAK_TEST is defined.
Don't define PROTECTED_UNDEF_TEST when PROTECTED_WEAK_TEST is
defined.
Define PROTECTED_TEST when PROTECTED_UNDEF_TEST is defined.
* ld-elfvsb/sh1.c (visibility): Mark protected only if
PROTECTED_TEST, PROTECTED_UNDEF_TEST or PROTECTED_WEAK_TEST
is defined.
(visibility_var): Likewise.
2000-07-10 Alan Modra <alan@linuxcare.com.au>
* ld-srec/srec.exp: xfail hppa.

View File

@ -213,7 +213,8 @@ proc visibility_run {visibility} {
} else {
# SunOS non PIC shared libraries don't permit some cases of
# overriding.
if [ string match $visibility "protected" ] {
if { [ string match $visibility "protected" ]
|| [ string match $visibility "protected_undef_def" ] } {
setup_xfail $target_triplet
} else {
setup_xfail "*-*-sunos4*"
@ -224,7 +225,8 @@ proc visibility_run {visibility} {
# address for the library. Near as I can tell, the R_*_RELATIVE
# relocations for various targets are broken in the case where
# the load address is not zero (which is the default).
if [ string match $visibility "protected" ] {
if { [ string match $visibility "protected" ]
|| [ string match $visibility "protected_undef_def" ] } {
setup_xfail $target_triplet
} else {
setup_xfail "*-*-sunos4*"
@ -241,7 +243,8 @@ proc visibility_run {visibility} {
|| ![ld_compile "$CC $CFLAGS $SHCFLAG $VSBCFLAG $picflag" $srcdir/$subdir/sh2.c $tmpdir/sh2p.o] } {
unresolved "visibility ($visibility)"
} else {
if [ string match $visibility "protected" ] {
if { [ string match $visibility "protected" ]
|| [ string match $visibility "protected_undef_def" ] } {
setup_xfail $target_triplet
}
# SunOS can not compare function pointers correctly
@ -266,7 +269,8 @@ proc visibility_run {visibility} {
} else {
# SunOS non PIC shared libraries don't permit some cases of
# overriding.
if [ string match $visibility "protected" ] {
if { [ string match $visibility "protected" ]
|| [ string match $visibility "protected_undef_def" ] } {
setup_xfail $target_triplet
} else {
setup_xfail "*-*-sunos4*"
@ -278,7 +282,8 @@ proc visibility_run {visibility} {
}
if { [file exists $tmpdir/sh1p.o ] && [ file exists $tmpdir/sh2p.o ] } {
if [ string match $visibility "protected" ] {
if { [ string match $visibility "protected" ]
|| [ string match $visibility "protected_undef_def" ] } {
setup_xfail $target_triplet
}
if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } {

View File

@ -27,15 +27,17 @@ extern int visibility_varval ();
extern void *visibility_varptr ();
#ifdef HIDDEN_WEAK_TEST
#define HIDDEN_UNDEF_TEST
#define WEAK_TEST
#endif
#ifdef PROTECTED_WEAK_TEST
#define PROTECTED_UNDEF_TEST
#define WEAK_TEST
#endif
#ifdef PROTECTED_UNDEF_TEST
#define PROTECTED_TEST
#endif
#ifndef WEAK_TEST
extern int visibility ();
extern int visibility_var;

View File

@ -312,9 +312,11 @@ visibility_varval ()
asm (".hidden visibility");
asm (".hidden visibility_var");
#else
#if defined (PROTECTED_TEST) || defined (PROTECTED_UNDEF_TEST) || defined (PROTECTED_WEAK_TEST)
asm (".protected visibility");
asm (".protected visibility_var");
#endif
#endif
#ifdef WEAK_TEST
asm (".weak visibility");