mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-24 09:43:36 +08:00
07492f668d
Common symbol in executable is a definition, which overrides definition from shared objects. When linker sees a new definition from a shared object, the new dynamic definition should be overridden by the previous common symbol in executable. bfd/ PR ld/19579 * elflink.c (_bfd_elf_merge_symbol): Treat common symbol in executable as definition if the new definition comes from a shared library. ld/ PR ld/19579 * testsuite/ld-elf/pr19579a.c: New file. * testsuite/ld-elf/pr19579b.c: Likewise. * testsuite/ld-elf/shared.exp: Run PR ld/19579 test.
15 lines
113 B
C
15 lines
113 B
C
int foo[2];
|
|
int bar[2] = { -1, -1 };
|
|
|
|
int *
|
|
foo_p (void)
|
|
{
|
|
return foo;
|
|
}
|
|
|
|
int *
|
|
bar_p (void)
|
|
{
|
|
return bar;
|
|
}
|