mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
bba037e0ae
SEC_KEEP check in elf_gc_sweep was missing in commit:
commit bde6f3eb6d
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Jan 8 01:43:23 2010 +0000
Set SEC_KEEP on section XXX for undefined __start_XXX/__stop_XXX
bfd/
2010-01-07 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11133
* elflink.c (_bfd_elf_gc_mark_hook): Check section XXX for
undefined __start_XXX/__stop_XXX in all input files and set
SEC_KEEP.
This patch adds SEC_KEEP check to elf_gc_sweep.
bfd/
PR ld/19161
* elflink.c (elf_gc_sweep): Always keep sections marked with
SEC_KEEP.
ld/testsuite/
PR ld/19161
* ld-gc/gc.exp: Run pr19161 test.
* ld-gc/pr19161-1.c: New file.
* ld-gc/pr19161-2.c: Likewise.
* ld-gc/pr19161.d: Likewise.
20 lines
249 B
C
20 lines
249 B
C
int __attribute__((section("my_section"))) a[2] = {0x1234, 0x5678};
|
|
|
|
extern int __start_my_section;
|
|
|
|
extern int (*p)(void);
|
|
|
|
int
|
|
dump()
|
|
{
|
|
int* ap = &__start_my_section;
|
|
return ap[0];
|
|
}
|
|
|
|
void
|
|
__attribute__((constructor))
|
|
foo()
|
|
{
|
|
p = dump;
|
|
}
|