2003-05-20  Jakub Jelinek  <jakub@redhat.com>

	* elflink.h (elf_link_output_extsym): Only issue error about !=
	STV_DEFAULT symbols if they are bfd_link_hash_undefined.

2003-05-20  H.J. Lu <hongjiu.lu@intel.com>

	* elflink.c (_bfd_elf_merge_symbol): Check ELF_LINK_DYNAMIC_DEF
	when removing the old definition for symbols with non-default
	visibility.

ld/testsuite/

2003-05-20  Jakub Jelinek  <jakub@redhat.com>

	* ld-elfvsb/common.c: New file.
	* ld-elfvsb/elfvsb.exp: Add common.

2003-05-20  H.J. Lu <hongjiu.lu@intel.com>

	* ld-elfvsb/sh3.c: New file.
	* ld-elfvsb/test.c: Likewise.

	* ld-elfvsb/elfvsb.exp: Add new weak hidden symbol tests.
This commit is contained in:
H.J. Lu
2003-05-20 14:35:01 +00:00
parent 39b8215104
commit 22d5e33918
8 changed files with 106 additions and 2 deletions

View File

@ -1,3 +1,15 @@
2003-05-20 Jakub Jelinek <jakub@redhat.com>
* ld-elfvsb/common.c: New file.
* ld-elfvsb/elfvsb.exp: Add common.
2003-05-20 H.J. Lu <hongjiu.lu@intel.com>
* ld-elfvsb/sh3.c: New file.
* ld-elfvsb/test.c: Likewise.
* ld-elfvsb/elfvsb.exp: Add new weak hidden symbol tests.
2003-05-15 H.J. Lu <hongjiu.lu@intel.com>
* config/default.exp (gcc_ld_flag): New. Make the newly built

View File

@ -0,0 +1,14 @@
int foo;
asm (".hidden foo");
int
_start (void)
{
return foo;
}
int
__start (void)
{
return _start ();
}

View File

@ -412,6 +412,39 @@ visibility_run protected_undef_def
visibility_run protected_weak
visibility_run normal
if { ![ld_compile "$CC -g $CFLAGS" $srcdir/$subdir/common.c tmpdir/common.o] } {
unresolved "common hidden symbol"
} else {
if ![ld_simple_link $ld tmpdir/common "tmpdir/common.o"] {
fail "common hidden symbol"
} else {
pass "common hidden symbol"
}
}
if { ![ld_compile "$CC -g $CFLAGS" $srcdir/$subdir/test.c tmpdir/test.o] } {
unresolved "weak hidden symbol"
} else {
if { ![ld_compile "$CC -g $CFLAGS $picflag" $srcdir/$subdir/sh3.c tmpdir/sh3.o] } {
unresolved "weak hidden symbol"
} else {
if ![ld_simple_link $ld tmpdir/sh3.so "-shared tmpdir/sh3.o"] {
fail "weak hidden symbol"
} else {
if ![ld_simple_link $ld tmpdir/weak "tmpdir/test.o tmpdir/sh3.o"] {
fail "weak hidden symbol DSO last"
} else {
pass "weak hidden symbol DSO last"
}
if ![ld_simple_link $ld tmpdir/weak "tmpdir/sh3.so tmpdir/test.o"] {
fail "weak hidden symbol DSO first"
} else {
pass "weak hidden symbol DSO first"
}
}
}
}
if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } {
# Remove the temporary directory.
catch "exec rm -rf $tmpdir" exec_status

View File

@ -0,0 +1,7 @@
int main_hidden_data = 1;
int
main_hidden_func ()
{
return 1;
}

View File

@ -0,0 +1,26 @@
#pragma weak main_hidden_data
extern int main_hidden_data;
asm (".hidden main_hidden_data");
#pragma weak main_hidden_func
extern int main_hidden_func ();
asm (".hidden main_hidden_func");
int
_start (void)
{
int ret = 0;
if (&main_hidden_data != 0)
ret = 1;
if (main_hidden_func != 0)
ret = 1;
return ret;
}
int
__start (void)
{
return _start ();
}