mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
c5d37467b1
We already handle the case of an object file first defining a symbol that a later shared library also defines where the symbol types are incompatible. This patch handles the reverse, when a later object file defines an incompatible symbol defined by an earlier shared library. bfd/ * elflink.c (_bfd_elf_merge_symbol): Undo dynamic linking state when a regular object file defines a symbol with incompatible type to that defined by an earlier shared lib. ld/ * testsuite/ld-elf/indirect5a.c, * testsuite/ld-elf/indirect5b.c, * testsuite/ld-elf/indirect5.map, * testsuite/ld-elf/indirect5.out: New test. * testsuite/ld-elf/indirect6a.c: Likewise. * testsuite/ld-elf/indirect.exp (check_dynamic_syms): New proc. Run new tests and check dynsyms.
16 lines
126 B
C
16 lines
126 B
C
#include <stdio.h>
|
|
|
|
void
|
|
bar (void)
|
|
{
|
|
printf ("bar\n");
|
|
}
|
|
|
|
void
|
|
foo (long *x)
|
|
{
|
|
(void) x;
|
|
printf ("foo\n");
|
|
bar ();
|
|
}
|