mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 03:29:47 +08:00
Skip version check for unreferenced and undefined symbol
No need to check version if symbol is unreferenced and undefined. bfd/ PR ld/20306 * elflink.c (elf_link_check_versioned_symbol): Return false for unreferenced undefined symbol. ld/testsuite/ * testsuite/ld-gc/gc.exp: Run pr20306 test. * ld-gc/pr20306.c: New file. * ld-gc/pr20306.d: Likewise.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2016-06-28 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR ld/20306
|
||||||
|
* elflink.c (elf_link_check_versioned_symbol): Return false
|
||||||
|
for unreferenced undefined symbol.
|
||||||
|
|
||||||
2016-06-28 Nick Clifton <nickc@redhat.com>
|
2016-06-28 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* elf32-bfin.c (bfin_adjust_dynamic_symbol): Fail if a COPY reloc
|
* elf32-bfin.c (bfin_adjust_dynamic_symbol): Fail if a COPY reloc
|
||||||
|
@ -9053,7 +9053,8 @@ elf_link_check_versioned_symbol (struct bfd_link_info *info,
|
|||||||
case bfd_link_hash_undefined:
|
case bfd_link_hash_undefined:
|
||||||
case bfd_link_hash_undefweak:
|
case bfd_link_hash_undefweak:
|
||||||
abfd = h->root.u.undef.abfd;
|
abfd = h->root.u.undef.abfd;
|
||||||
if ((abfd->flags & DYNAMIC) == 0
|
if (abfd == NULL
|
||||||
|
|| (abfd->flags & DYNAMIC) == 0
|
||||||
|| (elf_dyn_lib_class (abfd) & DYN_DT_NEEDED) == 0)
|
|| (elf_dyn_lib_class (abfd) & DYN_DT_NEEDED) == 0)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
break;
|
break;
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2016-06-28 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* testsuite/ld-gc/gc.exp: Run pr20306 test.
|
||||||
|
* ld-gc/pr20306.c: New file.
|
||||||
|
* ld-gc/pr20306.d: Likewise.
|
||||||
|
|
||||||
2016-06-28 Nick Clifton <nickc@redhat.com>
|
2016-06-28 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* testsuite/ld-elf/comm-data.exp: Expect comm-data2 test to fail
|
* testsuite/ld-elf/comm-data.exp: Expect comm-data2 test to fail
|
||||||
|
@ -146,3 +146,18 @@ if { [is_remote host] || [which $CC] != 0 } {
|
|||||||
ld_compile "$CC $CFLAGS $cflags -O0" $srcdir/$subdir/pr19161-2.c tmpdir/pr19161-2.o
|
ld_compile "$CC $CFLAGS $cflags -O0" $srcdir/$subdir/pr19161-2.c tmpdir/pr19161-2.o
|
||||||
run_dump_test "pr19161"
|
run_dump_test "pr19161"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if { [is_elf_format] && [check_shared_lib_support] \
|
||||||
|
&& ([is_remote host] || [which $CC] != 0) } {
|
||||||
|
run_cc_link_tests [list \
|
||||||
|
[list \
|
||||||
|
"Build libpr20306.so" \
|
||||||
|
"-shared" \
|
||||||
|
"-fPIC" \
|
||||||
|
{pr20306.c} \
|
||||||
|
{} \
|
||||||
|
"libpr20306.so" \
|
||||||
|
] \
|
||||||
|
]
|
||||||
|
run_dump_test "pr20306"
|
||||||
|
}
|
||||||
|
2
ld/testsuite/ld-gc/pr20306.c
Normal file
2
ld/testsuite/ld-gc/pr20306.c
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
extern void foo();
|
||||||
|
void bar() {foo();}
|
3
ld/testsuite/ld-gc/pr20306.d
Normal file
3
ld/testsuite/ld-gc/pr20306.d
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#source: dummy.s
|
||||||
|
#ld: -u foo --gc-sections tmpdir/libpr20306.so
|
||||||
|
#error: .* generated: undefined reference to `foo'
|
Reference in New Issue
Block a user