From 7f3a18cfb58deb36e05469d94e7b9e48b19d90af Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 17 Dec 2020 07:44:48 +1030 Subject: Statically initialise target common sections This tidies initialisation of target common sections, doing so using a static initialiser rather than via code and deleting unnecessary symbol_ptr_ptr variables (the one in asection is used instead). The patch also initialises ecoff.c:bfd_debug_section using BFD_FAKE_SECTION. That does change bfd_debug_section slightly, output_section was NULL now bfd_debug_section, and symbol_ptr_ptr was NULL now &bfd_debug_section.symbol, but I believe those changes are safe. bfd/ * ecoff.c (bfd_debug_section): Init using BFD_FAKE_SECTION. (ecoff_scom_section, ecoff_scom_symbol): Statically init using BFD_FAKE_SECTION and GLOBAL_SYM_INIT. Delete initialisation code. (ecoff_scom_symbol_ptr): Delete. * elf32-m32r.c (m32r_elf_scom_section, m32r_elf_scom_symbol), (m32r_elf_scom_symbol_ptr), * elf32-score.c (score_elf_scom_section, score_elf_scom_symbol), (score_elf_scom_symbol_ptr), * elf32-score7.c (score_elf_scom_section, score_elf_scom_symbol), (score_elf_scom_symbol_ptr), * elf32-tic6x.c (tic6x_elf_scom_section, tic6x_elf_scom_symbol), (tic6x_elf_scom_symbol_ptr), * elf32-v850.c (v850_elf_scom_section, v850_elf_scom_symbol), (v850_elf_scom_symbol_ptr), (v850_elf_tcom_section, v850_elf_tcom_symbol), (v850_elf_tcom_symbol_ptr), (v850_elf_zcom_section, v850_elf_zcom_symbol), (v850_elf_zcom_symbol_ptr), * elf64-mmix.c (mmix_elf_reg_section, mmix_elf_reg_section_symbol), (mmix_elf_reg_section_symbol_ptr), * elfxx-mips.c (mips_elf_scom_section, mips_elf_scom_symbol), (mips_elf_scom_symbol_ptr): Likewise. gas/ * ecoff.c (ecoff_frob_symbol): Rename scom_section to ecoff_scom_section and statically initialise. --- bfd/elf32-tic6x.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) (limited to 'bfd/elf32-tic6x.c') diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c index 5f5abd5..3ccb9c7 100644 --- a/bfd/elf32-tic6x.c +++ b/bfd/elf32-tic6x.c @@ -128,8 +128,11 @@ struct elf32_tic6x_obj_tdata faster assembler code. This is what we use for the small common section. This approach is copied from ecoff.c. */ static asection tic6x_elf_scom_section; -static asymbol tic6x_elf_scom_symbol; -static asymbol *tic6x_elf_scom_symbol_ptr; +static const asymbol tic6x_elf_scom_symbol = + GLOBAL_SYM_INIT (".scommon", &tic6x_elf_scom_section); +static asection tic6x_elf_scom_section = + BFD_FAKE_SECTION (tic6x_elf_scom_section, &tic6x_elf_scom_symbol, + ".scommon", 0, SEC_IS_COMMON | SEC_SMALL_DATA); static reloc_howto_type elf32_tic6x_howto_table[] = { @@ -2970,19 +2973,6 @@ elf32_tic6x_symbol_processing (bfd *abfd ATTRIBUTE_UNUSED, asymbol *asym) switch (elfsym->internal_elf_sym.st_shndx) { case SHN_TIC6X_SCOMMON: - if (tic6x_elf_scom_section.name == NULL) - { - /* Initialize the small common section. */ - tic6x_elf_scom_section.name = ".scommon"; - tic6x_elf_scom_section.flags = SEC_IS_COMMON | SEC_SMALL_DATA; - tic6x_elf_scom_section.output_section = &tic6x_elf_scom_section; - tic6x_elf_scom_section.symbol = &tic6x_elf_scom_symbol; - tic6x_elf_scom_section.symbol_ptr_ptr = &tic6x_elf_scom_symbol_ptr; - tic6x_elf_scom_symbol.name = ".scommon"; - tic6x_elf_scom_symbol.flags = BSF_SECTION_SYM; - tic6x_elf_scom_symbol.section = &tic6x_elf_scom_section; - tic6x_elf_scom_symbol_ptr = &tic6x_elf_scom_symbol; - } asym->section = &tic6x_elf_scom_section; asym->value = elfsym->internal_elf_sym.st_size; break; -- cgit v1.1