binutils-gdb/gas/doc
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
..
all.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
as.texi ELF: Add support for unique section ID to assembler 2020-02-02 17:08:01 -08:00
c-aarch64.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-alpha.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-arc.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-arm.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-avr.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-bfin.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-bpf.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-cr16.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-cris.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-csky.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-d10v.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-d30v.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-epiphany.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-h8300.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-hppa.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-i386.texi x86-64: Properly encode and decode movsxd 2020-01-27 04:38:29 -08:00
c-ia64.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-ip2k.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-lm32.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-m32c.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-m32r.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-m68hc11.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-m68k.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-metag.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-microblaze.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-mips.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-mmix.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-msp430.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-mt.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-nds32.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-nios2.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-ns32k.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-or1k.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-pdp11.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-pj.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-ppc.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-pru.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-riscv.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-rl78.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-rx.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-s12z.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-s390.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-score.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-sh.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-sparc.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-tic6x.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-tic54x.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-tilegx.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-tilepro.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-v850.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-vax.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-visium.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-wasm32.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-xc16x.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-xgate.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-xstormy16.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-xtensa.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-z8k.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
c-z80.texi Fix various assembler testsuite failures for the Z80 target. 2020-01-14 13:13:57 +00:00
fdl.texi
h8.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
internals.texi Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
Makefile.am Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
Makefile.in Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30