binutils-gdb/ld/testsuite
H.J. Lu a8c4d40b57 ELF: Add support for unique section ID to assembler
Clang's integrated assembler supports multiple section with the same
name:

	.section .text,"ax",@progbits,unique,1
	nop
	.section .text,"ax",@progbits,unique,2
	nop

"unique,N" assigns the number, N, as the section ID, to a section.  The
valid values of the section ID are between 0 and 4294967295.  It can be
used to distinguish different sections with the same section name.

This is useful with -fno-unique-section-names -ffunction-sections.
-ffunction-sections by default generates .text.foo, .text.bar, etc.
Using the same string can save lots of space in .strtab.

This patch adds section_id to bfd_section and reuses the linker
internal bit in BFD section flags, SEC_LINKER_CREATED, for assmebler
internal use to mark valid section_id.  It also updates objdump to
compare section pointers if 2 sections comes from the same file since
2 different sections can have the same section name.

bfd/

	PR gas/25380
	* bfd-in2.h: Regenerated.
	* ecoff.c (bfd_debug_section): Add section_id.
	* section.c (bfd_section): Add section_id.
	(SEC_ASSEMBLER_SECTION_ID): New.
	(BFD_FAKE_SECTION): Add section_id.

binutils/

	PR gas/25380
	* objdump.c (sym_ok): Return FALSE if 2 sections are in the
	same file with different section pointers.

gas/

	PR gas/25380
	* config/obj-elf.c (section_match): Removed.
	(get_section): Also match SEC_ASSEMBLER_SECTION_ID and
	section_id.
	(obj_elf_change_section): Replace info and group_name arguments
	with match_p.  Also update the section ID and flags from match_p.
	(obj_elf_section): Handle "unique,N".  Update call to
	obj_elf_change_section.
	* config/obj-elf.h (elf_section_match): New.
	(obj_elf_change_section): Updated.
	* config/tc-arm.c (start_unwind_section): Update call to
	obj_elf_change_section.
	* config/tc-ia64.c (obj_elf_vms_common): Likewise.
	* config/tc-microblaze.c (microblaze_s_data): Likewise.
	(microblaze_s_sdata): Likewise.
	(microblaze_s_rdata): Likewise.
	(microblaze_s_bss): Likewise.
	* config/tc-mips.c (s_change_section): Likewise.
	* config/tc-msp430.c (msp430_profiler): Likewise.
	* config/tc-rx.c (parse_rx_section): Likewise.
	* config/tc-tic6x.c (tic6x_start_unwind_section): Likewise.
	* doc/as.texi: Document "unique,N" in .section directive.
	* testsuite/gas/elf/elf.exp: Run "unique,N" tests.
	* testsuite/gas/elf/section15.d: New file.
	* testsuite/gas/elf/section15.s: Likewise.
	* testsuite/gas/elf/section16.s: Likewise.
	* testsuite/gas/elf/section16a.d: Likewise.
	* testsuite/gas/elf/section16b.d: Likewise.
	* testsuite/gas/elf/section17.d: Likewise.
	* testsuite/gas/elf/section17.l: Likewise.
	* testsuite/gas/elf/section17.s: Likewise.
	* testsuite/gas/i386/unique.d: Likewise.
	* testsuite/gas/i386/unique.s: Likewise.
	* testsuite/gas/i386/x86-64-unique.d: Likewise.
	* testsuite/gas/i386/i386.exp: Run unique and x86-64-unique.

ld/

	PR gas/25380
	* testsuite/ld-i386/pr22001-1c.S: Use "unique,N" in .section
	directives.
	* testsuite/ld-i386/tls-gd1.S: Likewise.
	* testsuite/ld-x86-64/pr21481b.S: Likewise.
2020-02-02 17:08:01 -08:00
..
config Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-aarch64 AArch64: Set the correct ELF class for AArch64 stubs (PR/25210) 2020-01-02 14:08:27 +00:00
ld-alpha Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-arc [ARC][committed] Update test matching pattern. 2020-01-13 11:16:47 +02:00
ld-arm Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-auto-import Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-avr Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-bootstrap Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-bpf Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-cdtest Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-checks Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-cris Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-crx Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-csky
ld-cygwin Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-d10v Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-discard Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-elf Mark all weak aliases for copy relocations 2020-01-27 10:53:00 +10:30
ld-elfcomm Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-elfvers Replace deprecated tcl case statements with switch statements 2020-01-27 22:52:15 +10:30
ld-elfvsb Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-elfweak Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-fastcall Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-frv Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-gc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-h8300 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-i386 ELF: Add support for unique section ID to assembler 2020-02-02 17:08:01 -08:00
ld-ia64 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-ifunc Replace deprecated tcl case statements with switch statements 2020-01-27 22:52:15 +10:30
ld-libs Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-linkonce Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-m68hc11 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-m68k Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-mep Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-metag Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-mips-elf Re: Prefer object over notype symbols when disassembling 2020-01-07 09:34:52 +10:30
ld-misc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-mmix Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-mn10300 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-msp430-elf MSP430: Add input section rules for .upper sections to default linker script 2020-01-16 13:22:31 +00:00
ld-nds32 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-nios2
ld-or1k Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-pe Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-pie Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-plugin Add -fcommon compiler command line option to linker tests that need common symbols. 2020-01-06 16:24:23 +00:00
ld-powerpc PowerPC64 tls_get_addr_desc static support 2020-01-22 17:14:08 +10:30
ld-pru
ld-riscv-elf Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-s12z Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-s390 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-scripts Add support for the GBZ80, Z180, and eZ80 variants of the Z80 architecure. Add an ELF based target for these as well. 2020-01-02 14:14:59 +00:00
ld-selective Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-sh Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-shared Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-size Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-sparc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-spu Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-srec Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-tic6x Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-tilegx Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-tilepro Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-undefined Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-unique Replace deprecated tcl case statements with switch statements 2020-01-27 22:52:15 +10:30
ld-v850 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-vax-elf Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-visium Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-vxworks Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-x86-64 ELF: Add support for unique section ID to assembler 2020-02-02 17:08:01 -08:00
ld-xc16x Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-xstormy16 Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-xtensa Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-z8k Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ld-z80 Add support for the GBZ80, Z180, and eZ80 variants of the Z80 architecure. Add an ELF based target for these as well. 2020-01-02 14:14:59 +00:00
lib Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-9303