mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-09-10 10:12:21 +08:00
bfd/
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:
@ -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
|
||||
|
14
ld/testsuite/ld-elfvsb/common.c
Normal file
14
ld/testsuite/ld-elfvsb/common.c
Normal file
@ -0,0 +1,14 @@
|
||||
int foo;
|
||||
asm (".hidden foo");
|
||||
|
||||
int
|
||||
_start (void)
|
||||
{
|
||||
return foo;
|
||||
}
|
||||
|
||||
int
|
||||
__start (void)
|
||||
{
|
||||
return _start ();
|
||||
}
|
@ -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
|
||||
|
7
ld/testsuite/ld-elfvsb/sh3.c
Normal file
7
ld/testsuite/ld-elfvsb/sh3.c
Normal file
@ -0,0 +1,7 @@
|
||||
int main_hidden_data = 1;
|
||||
|
||||
int
|
||||
main_hidden_func ()
|
||||
{
|
||||
return 1;
|
||||
}
|
26
ld/testsuite/ld-elfvsb/test.c
Normal file
26
ld/testsuite/ld-elfvsb/test.c
Normal 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 ();
|
||||
}
|
Reference in New Issue
Block a user