Always keep SHT_NOTE sections

bfd/

2010-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/11143
	* elflink.c (elf_gc_sweep): Keep SHT_NOTE section.

ld/testsuite/

2010-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/11143
	* ld-gc/gc.exp: Run abi-note.

	* ld-gc/abi-note.d: New.
	* ld-gc/abi-note.s: Likewise.
This commit is contained in:
H.J. Lu 2010-01-07 13:44:37 +00:00
parent 089b4803bf
commit 16583161e1
6 changed files with 41 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2010-01-07 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11143
* elflink.c (elf_gc_sweep): Keep SHT_NOTE section.
2010-01-04 Daniel Gutson <dgutson@codesourcery.com>
* bfd.m4 (BFD_HAVE_SYS_PROCFS_TYPE): Define _STRUCTURE_PROC

View File

@ -1,6 +1,6 @@
/* ELF linking support for BFD.
Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
2005, 2006, 2007, 2008, 2009
2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@ -11527,9 +11527,10 @@ elf_gc_sweep (bfd *abfd, struct bfd_link_info *info)
o->gc_mark = first->gc_mark;
}
else if ((o->flags & (SEC_DEBUGGING | SEC_LINKER_CREATED)) != 0
|| (o->flags & (SEC_ALLOC | SEC_LOAD | SEC_RELOC)) == 0)
|| (o->flags & (SEC_ALLOC | SEC_LOAD | SEC_RELOC)) == 0
|| elf_section_data (o)->this_hdr.sh_type == SHT_NOTE)
{
/* Keep debug and special sections. */
/* Keep debug, special and SHT_NOTE sections. */
o->gc_mark = 1;
}

View File

@ -1,3 +1,10 @@
2010-01-07 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11143
* ld-gc/gc.exp: Run abi-note.
* ld-gc/abi-note.d: New.
* ld-gc/abi-note.s: Likewise.
For older changes see ChangeLog-2009

View File

@ -0,0 +1,8 @@
#name: --gc-sections with note section
#ld: --gc-sections -e _start
#readelf: -S --wide
#target: *-*-linux*
#...
.* .note.ABI-tag[ ]+NOTE.*
#...

View File

@ -0,0 +1,15 @@
.text
.global _start
_start:
.long 1
.section ".note.ABI-tag", "a"
.p2align 2
.long 1f - 0f /* name length */
.long 3f - 2f /* data length */
.long 1 /* note type */
0: .asciz "GNU" /* vendor name */
1: .p2align 2
2: .long 1
.long 2
3: .p2align 2 /* pad out section */

View File

@ -1,5 +1,5 @@
# Expect script for ld-gc tests
# Copyright 2008, 2009
# Copyright 2008, 2009, 2010
# Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
@ -90,3 +90,4 @@ test_gc "Check --gc-section/-r/-e" "gcrel" $ld "-r --gc-sections -e main"
test_gc "Check --gc-section/-r/-u" "gcrel" $ld "-r --gc-sections -u used_func"
run_dump_test "noent"
run_dump_test "abi-note"