From c72f2fb2bb6a3e1850b081dbfce4040970fae8e6 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 13 Jun 2014 19:10:57 +0930 Subject: [PATCH] Make bfd.link_next field a union This field of struct bfd is currently only used to chain together linker input files. This patch prepares to use the field to stash the linker hash table, which is always created on the linker output file. bfd/ * bfd.c (struct bfd): Replace link_next with a union. * aoutx.h, * bfd.c, * coff-ppc.c, * coff-rs6000.c, * cofflink.c, * ecoff.c, * elf-m10300.c, * elf32-arm.c, * elf32-avr.c, * elf32-hppa.c, * elf32-i386.c, * elf32-lm32.c, * elf32-m32c.c, * elf32-m32r.c, * elf32-m68hc1x.c, * elf32-metag.c, * elf32-microblaze.c, * elf32-nds32.c, * elf32-nios2.c, * elf32-or1k.c, * elf32-ppc.c, * elf32-rl78.c, * elf32-s390.c, * elf32-score.c, * elf32-score7.c, * elf32-sh.c, * elf32-spu.c, * elf32-tic6x.c, * elf32-tilepro.c, * elf32-xstormy16.c, * elf32-xtensa.c, * elf64-alpha.c, * elf64-hppa.c, * elf64-ia64-vms.c, * elf64-mmix.c, * elf64-ppc.c, * elf64-s390.c, * elf64-x86-64.c, * elflink.c, * elfnn-aarch64.c, * elfxx-mips.c, * elfxx-sparc.c, * elfxx-tilegx.c, * linker.c, * pdp11.c, * peXXigen.c, * simple.c, * sunos.c, * vms-alpha.c, * xcofflink.c: Update for above. * bfd-in2.h: Regenerate. include/ * bfdlink.h: Update for bfd.link_next change. ld/ * emultempl/cr16elf.em, * emultempl/elf32.em, * emultempl/genelf.em, * emultempl/m68kcoff.em, * emultempl/m68kelf.em, * emultempl/nds32elf.em, * emultempl/pe.em, * emultempl/pep.em, * ldlang.c, * ldmain.c, * pe-dll.c: Update for bfd.link_next change. --- bfd/ChangeLog | 18 ++++++++++++++++++ bfd/aoutx.h | 6 +++--- bfd/bfd-in2.h | 8 ++++++-- bfd/bfd.c | 8 ++++++-- bfd/coff-ppc.c | 2 +- bfd/coff-rs6000.c | 2 +- bfd/cofflink.c | 4 ++-- bfd/ecoff.c | 2 +- bfd/elf-m10300.c | 4 ++-- bfd/elf32-arm.c | 16 ++++++++-------- bfd/elf32-avr.c | 6 +++--- bfd/elf32-hppa.c | 8 ++++---- bfd/elf32-i386.c | 2 +- bfd/elf32-lm32.c | 4 ++-- bfd/elf32-m32c.c | 4 ++-- bfd/elf32-m32r.c | 2 +- bfd/elf32-m68hc1x.c | 8 ++++---- bfd/elf32-metag.c | 8 ++++---- bfd/elf32-microblaze.c | 2 +- bfd/elf32-nds32.c | 8 ++++---- bfd/elf32-nios2.c | 8 ++++---- bfd/elf32-or1k.c | 2 +- bfd/elf32-ppc.c | 8 ++++---- bfd/elf32-rl78.c | 4 ++-- bfd/elf32-s390.c | 4 ++-- bfd/elf32-score.c | 2 +- bfd/elf32-score7.c | 2 +- bfd/elf32-sh.c | 2 +- bfd/elf32-spu.c | 28 ++++++++++++++-------------- bfd/elf32-tic6x.c | 6 +++--- bfd/elf32-tilepro.c | 2 +- bfd/elf32-xstormy16.c | 4 ++-- bfd/elf32-xtensa.c | 14 +++++++------- bfd/elf64-alpha.c | 2 +- bfd/elf64-hppa.c | 2 +- bfd/elf64-ia64-vms.c | 2 +- bfd/elf64-mmix.c | 2 +- bfd/elf64-ppc.c | 30 +++++++++++++++--------------- bfd/elf64-s390.c | 4 ++-- bfd/elf64-x86-64.c | 2 +- bfd/elflink.c | 26 +++++++++++++------------- bfd/elfnn-aarch64.c | 6 +++--- bfd/elfxx-mips.c | 6 +++--- bfd/elfxx-sparc.c | 2 +- bfd/elfxx-tilegx.c | 2 +- bfd/linker.c | 4 ++-- bfd/pdp11.c | 6 +++--- bfd/peXXigen.c | 2 +- bfd/simple.c | 2 +- bfd/sunos.c | 2 +- bfd/vms-alpha.c | 6 +++--- bfd/xcofflink.c | 14 +++++++------- include/ChangeLog | 4 ++++ include/bfdlink.h | 2 +- ld/ChangeLog | 7 +++++++ ld/emultempl/cr16elf.em | 4 ++-- ld/emultempl/elf32.em | 6 +++--- ld/emultempl/genelf.em | 2 +- ld/emultempl/m68kcoff.em | 4 ++-- ld/emultempl/m68kelf.em | 4 ++-- ld/emultempl/nds32elf.em | 6 +++--- ld/emultempl/pe.em | 4 ++-- ld/emultempl/pep.em | 4 ++-- ld/ldlang.c | 4 ++-- ld/ldmain.c | 2 +- ld/pe-dll.c | 12 ++++++------ 66 files changed, 216 insertions(+), 179 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 009612e3d91..b3378619abd 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,21 @@ +2014-06-13 Alan Modra + + * bfd.c (struct bfd): Replace link_next with a union. + * aoutx.h, * bfd.c, * coff-ppc.c, * coff-rs6000.c, * cofflink.c, + * ecoff.c, * elf-m10300.c, * elf32-arm.c, * elf32-avr.c, + * elf32-hppa.c, * elf32-i386.c, * elf32-lm32.c, * elf32-m32c.c, + * elf32-m32r.c, * elf32-m68hc1x.c, * elf32-metag.c, + * elf32-microblaze.c, * elf32-nds32.c, * elf32-nios2.c, + * elf32-or1k.c, * elf32-ppc.c, * elf32-rl78.c, * elf32-s390.c, + * elf32-score.c, * elf32-score7.c, * elf32-sh.c, * elf32-spu.c, + * elf32-tic6x.c, * elf32-tilepro.c, * elf32-xstormy16.c, + * elf32-xtensa.c, * elf64-alpha.c, * elf64-hppa.c, * elf64-ia64-vms.c, + * elf64-mmix.c, * elf64-ppc.c, * elf64-s390.c, * elf64-x86-64.c, + * elflink.c, * elfnn-aarch64.c, * elfxx-mips.c, * elfxx-sparc.c, + * elfxx-tilegx.c, * linker.c, * pdp11.c, * peXXigen.c, * simple.c, + * sunos.c, * vms-alpha.c, * xcofflink.c: Update for above. + * bfd-in2.h: Regenerate. + 2014-06-11 Alan Modra * linker.c (unwrap_hash_lookup): Add missing parens. diff --git a/bfd/aoutx.h b/bfd/aoutx.h index 79abe42b23e..a2f7d1667b6 100644 --- a/bfd/aoutx.h +++ b/bfd/aoutx.h @@ -5309,7 +5309,7 @@ aout_link_input_bfd (struct aout_final_link_info *flaginfo, bfd *input_bfd) /* Do the final link step. This is called on the output BFD. The INFO structure should point to a list of BFDs linked through the - link_next field which can be used to find each BFD which takes part + link.next field which can be used to find each BFD which takes part in the output. Also, each section in ABFD should point to a list of bfd_link_order structures which list all the input sections for the output section. */ @@ -5356,7 +5356,7 @@ NAME (aout, final_link) (bfd *abfd, max_contents_size = 0; max_relocs_size = 0; max_sym_count = 0; - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { bfd_size_type sz; @@ -5495,7 +5495,7 @@ NAME (aout, final_link) (bfd *abfd, We use the output_has_begun field of the input BFDs to see whether we have already handled it. */ - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) sub->output_has_begun = FALSE; /* Mark all sections which are to be included in the link. This diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 8b7f2eef4bc..722cc2bbe0d 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -6394,8 +6394,12 @@ struct bfd struct bfd *nested_archives; /* List of nested archive in a flattened thin archive. */ - /* A chain of BFD structures involved in a link. */ - struct bfd *link_next; + union { + /* For input BFDs, a chain of BFDs involved in a link. */ + struct bfd *next; + /* For output BFD, the linker hash table. */ + struct bfd_link_hash_table *hash; + } link; /* A field used by _bfd_generic_link_add_archive_symbols. This will be used only for archive elements. */ diff --git a/bfd/bfd.c b/bfd/bfd.c index 41de1bbd4d8..641486514cf 100644 --- a/bfd/bfd.c +++ b/bfd/bfd.c @@ -219,8 +219,12 @@ CODE_FRAGMENT . struct bfd *nested_archives; {* List of nested archive in a flattened . thin archive. *} . -. {* A chain of BFD structures involved in a link. *} -. struct bfd *link_next; +. union { +. {* For input BFDs, a chain of BFDs involved in a link. *} +. struct bfd *next; +. {* For output BFD, the linker hash table. *} +. struct bfd_link_hash_table *hash; +. } link; . . {* A field used by _bfd_generic_link_add_archive_symbols. This will . be used only for archive elements. *} diff --git a/bfd/coff-ppc.c b/bfd/coff-ppc.c index cf173a284ea..3c39afae7a8 100644 --- a/bfd/coff-ppc.c +++ b/bfd/coff-ppc.c @@ -2149,7 +2149,7 @@ ppc_bfd_coff_final_link (bfd *abfd, struct bfd_link_info *info) the opportunity to clear the output_has_begun fields of all the input BFD's. */ max_sym_count = 0; - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { bfd_size_type sz; diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c index 4c41740a580..39b2db3b7c3 100644 --- a/bfd/coff-rs6000.c +++ b/bfd/coff-rs6000.c @@ -2608,7 +2608,7 @@ _bfd_xcoff_sizeof_headers (bfd *abfd, return -1; /* Sum. */ - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) for (s = sub->sections; s != NULL; s = s->next) { struct nbr_reloc_lineno *e = &n_rl[s->output_section->index]; diff --git a/bfd/cofflink.c b/bfd/cofflink.c index bfb1ebba013..d4e3345b5d1 100644 --- a/bfd/cofflink.c +++ b/bfd/cofflink.c @@ -860,7 +860,7 @@ _bfd_coff_final_link (bfd *abfd, the opportunity to clear the output_has_begun fields of all the input BFD's. */ max_sym_count = 0; - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { size_t sz; @@ -945,7 +945,7 @@ _bfd_coff_final_link (bfd *abfd, if (flaginfo.info->strip != strip_all && flaginfo.info->discard != discard_all) { /* Add local symbols from foreign inputs. */ - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { unsigned int i; diff --git a/bfd/ecoff.c b/bfd/ecoff.c index ed163d68351..cf38e3ef7b8 100644 --- a/bfd/ecoff.c +++ b/bfd/ecoff.c @@ -4447,7 +4447,7 @@ _bfd_ecoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info) /* Accumulate the debugging symbols from each input BFD. */ for (input_bfd = info->input_bfds; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) { bfd_boolean ret; diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c index 68307de65ae..413e9da90d1 100644 --- a/bfd/elf-m10300.c +++ b/bfd/elf-m10300.c @@ -2679,7 +2679,7 @@ mn10300_elf_relax_section (bfd *abfd, /* Iterate over all the input bfds. */ for (input_bfd = link_info->input_bfds; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) { /* We're going to need all the symbols for each bfd. */ symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -3022,7 +3022,7 @@ mn10300_elf_relax_section (bfd *abfd, a "call" instruction. */ for (input_bfd = link_info->input_bfds; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) { /* We're going to need all the local symbols for each bfd. */ symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 526d4f8490f..e0f1d1da704 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -4436,7 +4436,7 @@ elf32_arm_setup_section_lists (bfd *output_bfd, /* Count the number of input BFDs and find the top input section id. */ for (input_bfd = info->input_bfds, bfd_count = 0, top_id = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) { bfd_count += 1; for (section = input_bfd->sections; @@ -5045,7 +5045,7 @@ elf32_arm_size_stubs (bfd *output_bfd, num_a8_fixes = 0; for (input_bfd = info->input_bfds, bfd_indx = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next, bfd_indx++) + input_bfd = input_bfd->link.next, bfd_indx++) { Elf_Internal_Shdr *symtab_hdr; asection *section; @@ -10911,7 +10911,7 @@ elf32_arm_fix_exidx_coverage (asection **text_section_order, /* Walk over all EXIDX sections, and create backlinks from the corrsponding text sections. */ - for (inp = info->input_bfds; inp != NULL; inp = inp->link_next) + for (inp = info->input_bfds; inp != NULL; inp = inp->link.next) { asection *sec; @@ -12991,7 +12991,7 @@ elf32_arm_gc_mark_extra_sections (struct bfd_link_info *info, while (again) { again = FALSE; - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { asection *o; @@ -13729,7 +13729,7 @@ elf32_arm_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; @@ -13906,7 +13906,7 @@ elf32_arm_size_dynamic_sections (bfd * output_bfd ATTRIBUTE_UNUSED, elf_link_hash_traverse (& htab->root, allocate_dynrelocs_for_symbol, info); /* Here we rummage through the found bfds to collect glue information. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { if (! is_arm_elf (ibfd)) continue; @@ -15072,7 +15072,7 @@ elf32_arm_output_arch_local_syms (bfd *output_bfd, mapping symbols. */ for (input_bfd = info->input_bfds; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) { if ((input_bfd->flags & (BFD_LINKER_CREATED | HAS_SYMS)) == HAS_SYMS) for (osi.sec = input_bfd->sections; @@ -15230,7 +15230,7 @@ elf32_arm_output_arch_local_syms (bfd *output_bfd, elf_link_hash_traverse (&htab->root, elf32_arm_output_plt_map, &osi); for (input_bfd = info->input_bfds; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) { struct arm_local_iplt_info **local_iplt; unsigned int i, num_syms; diff --git a/bfd/elf32-avr.c b/bfd/elf32-avr.c index 45710a1b104..60a2c7f513b 100644 --- a/bfd/elf32-avr.c +++ b/bfd/elf32-avr.c @@ -2822,7 +2822,7 @@ elf32_avr_setup_section_lists (bfd *output_bfd, /* Count the number of input BFDs and find the top input section id. */ for (input_bfd = info->input_bfds, bfd_count = 0, top_id = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) { bfd_count += 1; for (section = input_bfd->sections; @@ -2896,7 +2896,7 @@ get_local_syms (bfd *input_bfd, struct bfd_link_info *info) export stubs. */ for (bfd_indx = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next, bfd_indx++) + input_bfd = input_bfd->link.next, bfd_indx++) { Elf_Internal_Shdr *symtab_hdr; @@ -2973,7 +2973,7 @@ elf32_avr_size_stubs (bfd *output_bfd, bfd_hash_traverse (&htab->bstab, avr_mark_stub_not_to_be_necessary, htab); for (input_bfd = info->input_bfds, bfd_indx = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next, bfd_indx++) + input_bfd = input_bfd->link.next, bfd_indx++) { Elf_Internal_Shdr *symtab_hdr; asection *section; diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c index 1cc419c7798..262befd7add 100644 --- a/bfd/elf32-hppa.c +++ b/bfd/elf32-hppa.c @@ -2228,7 +2228,7 @@ elf32_hppa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, /* Set up .got and .plt offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; @@ -2503,7 +2503,7 @@ elf32_hppa_setup_section_lists (bfd *output_bfd, struct bfd_link_info *info) /* Count the number of input BFDs and find the top input section id. */ for (input_bfd = info->input_bfds, bfd_count = 0, top_id = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) { bfd_count += 1; for (section = input_bfd->sections; @@ -2694,7 +2694,7 @@ get_local_syms (bfd *output_bfd, bfd *input_bfd, struct bfd_link_info *info) export stubs. */ for (bfd_indx = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next, bfd_indx++) + input_bfd = input_bfd->link.next, bfd_indx++) { Elf_Internal_Shdr *symtab_hdr; @@ -2868,7 +2868,7 @@ elf32_hppa_size_stubs for (input_bfd = info->input_bfds, bfd_indx = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next, bfd_indx++) + input_bfd = input_bfd->link.next, bfd_indx++) { Elf_Internal_Shdr *symtab_hdr; asection *section; diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index 4470c52f8f9..e33a8c6d5e3 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -2686,7 +2686,7 @@ elf_i386_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; diff --git a/bfd/elf32-lm32.c b/bfd/elf32-lm32.c index 98db714f32c..e694055a9bd 100644 --- a/bfd/elf32-lm32.c +++ b/bfd/elf32-lm32.c @@ -2146,7 +2146,7 @@ lm32_elf_size_dynamic_sections (bfd *output_bfd, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; @@ -2324,7 +2324,7 @@ lm32_elf_size_dynamic_sections (bfd *output_bfd, int r32_count = 0; int rgot_count = 0; /* Look for deleted sections. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { for (s = ibfd->sections; s != NULL; s = s->next) { diff --git a/bfd/elf32-m32c.c b/bfd/elf32-m32c.c index ed7df9ab677..3e2c8027e30 100644 --- a/bfd/elf32-m32c.c +++ b/bfd/elf32-m32c.c @@ -1110,7 +1110,7 @@ m32c_elf_relax_plt_section (asection *splt, /* Likewise for local symbols, though that's somewhat less convenient as we have to walk the list of input bfds and swap in symbol data. */ - for (ibfd = info->input_bfds; ibfd ; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd ; ibfd = ibfd->link.next) { bfd_vma *local_plt_offsets = elf_local_got_offsets (ibfd); Elf_Internal_Shdr *symtab_hdr; @@ -1184,7 +1184,7 @@ m32c_elf_relax_plt_section (asection *splt, elf_link_hash_traverse (elf_hash_table (info), m32c_relax_plt_realloc, &entry); - for (ibfd = info->input_bfds; ibfd ; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd ; ibfd = ibfd->link.next) { bfd_vma *local_plt_offsets = elf_local_got_offsets (ibfd); unsigned int nlocals = elf_tdata (ibfd)->symtab_hdr.sh_info; diff --git a/bfd/elf32-m32r.c b/bfd/elf32-m32r.c index 9c59c02090c..8dba9f0a3e5 100644 --- a/bfd/elf32-m32r.c +++ b/bfd/elf32-m32r.c @@ -2177,7 +2177,7 @@ m32r_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; diff --git a/bfd/elf32-m68hc1x.c b/bfd/elf32-m68hc1x.c index 747dafc72bc..c96625cde6c 100644 --- a/bfd/elf32-m68hc1x.c +++ b/bfd/elf32-m68hc1x.c @@ -254,7 +254,7 @@ elf32_m68hc11_setup_section_lists (bfd *output_bfd, struct bfd_link_info *info) text_section = 0; for (input_bfd = info->input_bfds, bfd_count = 0, top_id = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) { bfd_count += 1; for (section = input_bfd->sections; @@ -342,7 +342,7 @@ elf32_m68hc11_size_stubs (bfd *output_bfd, bfd *stub_bfd, /* Count the number of input BFDs and find the top input section id. */ for (input_bfd = info->input_bfds, bfd_count = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) bfd_count += 1; /* We want to read in symbol extension records only once. To do this @@ -356,7 +356,7 @@ elf32_m68hc11_size_stubs (bfd *output_bfd, bfd *stub_bfd, /* Walk over all the input BFDs, swapping in local symbols. */ for (input_bfd = info->input_bfds, bfd_indx = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next, bfd_indx++) + input_bfd = input_bfd->link.next, bfd_indx++) { Elf_Internal_Shdr *symtab_hdr; @@ -386,7 +386,7 @@ elf32_m68hc11_size_stubs (bfd *output_bfd, bfd *stub_bfd, for (input_bfd = info->input_bfds, bfd_indx = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next, bfd_indx++) + input_bfd = input_bfd->link.next, bfd_indx++) { Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry ** sym_hashes; diff --git a/bfd/elf32-metag.c b/bfd/elf32-metag.c index d1d4b414ba0..b48ebb4905a 100644 --- a/bfd/elf32-metag.c +++ b/bfd/elf32-metag.c @@ -2847,7 +2847,7 @@ elf_metag_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; @@ -3725,7 +3725,7 @@ elf_metag_setup_section_lists (bfd *output_bfd, struct bfd_link_info *info) /* Count the number of input BFDs and find the top input section id. */ for (input_bfd = info->input_bfds, bfd_count = 0, top_id = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) { bfd_count += 1; for (section = input_bfd->sections; @@ -3907,7 +3907,7 @@ get_local_syms (bfd *output_bfd ATTRIBUTE_UNUSED, bfd *input_bfd, /* Walk over all the input BFDs, swapping in local symbols. */ for (bfd_indx = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next, bfd_indx++) + input_bfd = input_bfd->link.next, bfd_indx++) { Elf_Internal_Shdr *symtab_hdr; @@ -4004,7 +4004,7 @@ elf_metag_size_stubs(bfd *output_bfd, bfd *stub_bfd, for (input_bfd = info->input_bfds, bfd_indx = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next, bfd_indx++) + input_bfd = input_bfd->link.next, bfd_indx++) { Elf_Internal_Shdr *symtab_hdr; asection *section; diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c index 9837b18aabf..a4cc6a3fd6b 100644 --- a/bfd/elf32-microblaze.c +++ b/bfd/elf32-microblaze.c @@ -2973,7 +2973,7 @@ microblaze_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; diff --git a/bfd/elf32-nds32.c b/bfd/elf32-nds32.c index 873a00f3609..d1a2c3035cd 100644 --- a/bfd/elf32-nds32.c +++ b/bfd/elf32-nds32.c @@ -3599,7 +3599,7 @@ nds32_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; @@ -12677,7 +12677,7 @@ nds32_elf_ex9_build_itable (struct bfd_link_info *link_info) bfd_byte *contents = NULL; for (it_abfd = link_info->input_bfds; it_abfd != NULL; - it_abfd = it_abfd->link_next) + it_abfd = it_abfd->link.next) { /* Find the section .ex9.itable, and put all entries into it. */ table_sec = bfd_get_section_by_name (it_abfd, ".ex9.itable"); @@ -13613,7 +13613,7 @@ nds32_elf_ex9_reloc_jmp (struct bfd_link_info *link_info) if (update_ex9_table == 0) { for (it_abfd = link_info->input_bfds; it_abfd != NULL; - it_abfd = it_abfd->link_next) + it_abfd = it_abfd->link.next) { table_sec = bfd_get_section_by_name (it_abfd, ".ex9.itable"); if (table_sec != NULL) @@ -14174,7 +14174,7 @@ nds32_elf_ex9_itb_base (struct bfd_link_info *link_info) target_optimize = table->target_optimize; for (abfd = link_info->input_bfds; abfd != NULL; - abfd = abfd->link_next) + abfd = abfd->link.next) { sec = bfd_get_section_by_name (abfd, ".ex9.itable"); if (sec != NULL) diff --git a/bfd/elf32-nios2.c b/bfd/elf32-nios2.c index f33b38a71d7..4ce670b6527 100644 --- a/bfd/elf32-nios2.c +++ b/bfd/elf32-nios2.c @@ -1383,7 +1383,7 @@ nios2_elf32_setup_section_lists (bfd *output_bfd, struct bfd_link_info *info) /* Count the number of input BFDs and find the top input section id. */ for (input_bfd = info->input_bfds, bfd_count = 0, top_id = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) { bfd_count += 1; for (section = input_bfd->sections; @@ -1718,7 +1718,7 @@ get_local_syms (bfd *output_bfd ATTRIBUTE_UNUSED, bfd *input_bfd, /* Walk over all the input BFDs, swapping in local symbols. */ for (bfd_indx = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next, bfd_indx++) + input_bfd = input_bfd->link.next, bfd_indx++) { Elf_Internal_Shdr *symtab_hdr; @@ -1783,7 +1783,7 @@ nios2_elf32_size_stubs (bfd *output_bfd, bfd *stub_bfd, for (input_bfd = info->input_bfds, bfd_indx = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next, bfd_indx++) + input_bfd = input_bfd->link.next, bfd_indx++) { Elf_Internal_Shdr *symtab_hdr; asection *section; @@ -4891,7 +4891,7 @@ nios2_elf32_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c index 956ec387ec1..2353d0d5034 100644 --- a/bfd/elf32-or1k.c +++ b/bfd/elf32-or1k.c @@ -2464,7 +2464,7 @@ or1k_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index 344845d76c4..bc793d737c4 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -2629,7 +2629,7 @@ ppc_elf_begin_write_processing (bfd *abfd, struct bfd_link_info *link_info) apuinfo_list_init (); /* Read in the input sections contents. */ - for (ibfd = link_info->input_bfds; ibfd; ibfd = ibfd->link_next) + for (ibfd = link_info->input_bfds; ibfd; ibfd = ibfd->link.next) { unsigned long datum; @@ -4828,7 +4828,7 @@ ppc_elf_select_plt_layout (bfd *output_bfd ATTRIBUTE_UNUSED, --secure-plt and we never see REL16 relocs. */ if (plt_type == PLT_UNSET) plt_type = PLT_OLD; - for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link.next) if (is_ppc_elf (ibfd)) { if (ppc_elf_tdata (ibfd)->has_rel16) @@ -5197,7 +5197,7 @@ ppc_elf_tls_optimize (bfd *obfd ATTRIBUTE_UNUSED, notify relocate_section that optimization can be done, and adjust got and plt refcounts. */ for (pass = 0; pass < 2; ++pass) - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { Elf_Internal_Sym *locsyms = NULL; Elf_Internal_Shdr *symtab_hdr = &elf_symtab_hdr (ibfd); @@ -6130,7 +6130,7 @@ ppc_elf_size_dynamic_sections (bfd *output_bfd, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; diff --git a/bfd/elf32-rl78.c b/bfd/elf32-rl78.c index 5e62edd3021..9124e0a2c51 100644 --- a/bfd/elf32-rl78.c +++ b/bfd/elf32-rl78.c @@ -1370,7 +1370,7 @@ rl78_elf_relax_plt_section (bfd *dynobj, /* Likewise for local symbols, though that's somewhat less convenient as we have to walk the list of input bfds and swap in symbol data. */ - for (ibfd = info->input_bfds; ibfd ; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd ; ibfd = ibfd->link.next) { bfd_vma *local_plt_offsets = elf_local_got_offsets (ibfd); Elf_Internal_Shdr *symtab_hdr; @@ -1444,7 +1444,7 @@ rl78_elf_relax_plt_section (bfd *dynobj, elf_link_hash_traverse (elf_hash_table (info), rl78_relax_plt_realloc, &entry); - for (ibfd = info->input_bfds; ibfd ; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd ; ibfd = ibfd->link.next) { bfd_vma *local_plt_offsets = elf_local_got_offsets (ibfd); unsigned int nlocals = elf_tdata (ibfd)->symtab_hdr.sh_info; diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c index 09b1fcafbeb..11c726fc7e8 100644 --- a/bfd/elf32-s390.c +++ b/bfd/elf32-s390.c @@ -2045,7 +2045,7 @@ elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; @@ -3903,7 +3903,7 @@ elf_s390_finish_dynamic_sections (bfd *output_bfd, ->this_hdr.sh_entsize = 4; } /* Finish dynamic symbol for local IFUNC symbols. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { struct plt_entry *local_plt; Elf_Internal_Sym *isym; diff --git a/bfd/elf32-score.c b/bfd/elf32-score.c index 3223d461001..1ab54cd2b3c 100644 --- a/bfd/elf32-score.c +++ b/bfd/elf32-score.c @@ -3199,7 +3199,7 @@ s3_bfd_score_elf_always_size_sections (bfd *output_bfd, /* Calculate the total loadable size of the output. That will give us the maximum number of GOT_PAGE entries required. */ - for (sub = info->input_bfds; sub; sub = sub->link_next) + for (sub = info->input_bfds; sub; sub = sub->link.next) { asection *subsection; diff --git a/bfd/elf32-score7.c b/bfd/elf32-score7.c index c24107771aa..0b3cf2026f9 100644 --- a/bfd/elf32-score7.c +++ b/bfd/elf32-score7.c @@ -3006,7 +3006,7 @@ s7_bfd_score_elf_always_size_sections (bfd *output_bfd, /* Calculate the total loadable size of the output. That will give us the maximum number of GOT_PAGE entries required. */ - for (sub = info->input_bfds; sub; sub = sub->link_next) + for (sub = info->input_bfds; sub; sub = sub->link.next) { asection *subsection; diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c index 259ddf08a18..34dfea2197e 100644 --- a/bfd/elf32-sh.c +++ b/bfd/elf32-sh.c @@ -3341,7 +3341,7 @@ sh_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; diff --git a/bfd/elf32-spu.c b/bfd/elf32-spu.c index ac9c184eaf1..13806ad1bd1 100644 --- a/bfd/elf32-spu.c +++ b/bfd/elf32-spu.c @@ -555,7 +555,7 @@ spu_elf_create_sections (struct bfd_link_info *info) struct spu_link_hash_table *htab = spu_hash_table (info); bfd *ibfd; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) if (bfd_get_section_by_name (ibfd, SPU_PTNOTE_SPUNAME) != NULL) break; @@ -1520,7 +1520,7 @@ process_stubs (struct bfd_link_info *info, bfd_boolean build) struct spu_link_hash_table *htab = spu_hash_table (info); bfd *ibfd; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { extern const bfd_target spu_elf32_vec; Elf_Internal_Shdr *symtab_hdr; @@ -2936,7 +2936,7 @@ discover_functions (struct bfd_link_info *info) bfd_boolean gaps = FALSE; bfd_idx = 0; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) bfd_idx++; psym_arr = bfd_zmalloc (bfd_idx * sizeof (*psym_arr)); @@ -2948,7 +2948,7 @@ discover_functions (struct bfd_link_info *info) for (ibfd = info->input_bfds, bfd_idx = 0; ibfd != NULL; - ibfd = ibfd->link_next, bfd_idx++) + ibfd = ibfd->link.next, bfd_idx++) { extern const bfd_target spu_elf32_vec; Elf_Internal_Shdr *symtab_hdr; @@ -3056,7 +3056,7 @@ discover_functions (struct bfd_link_info *info) relocations. */ for (ibfd = info->input_bfds, bfd_idx = 0; ibfd != NULL; - ibfd = ibfd->link_next, bfd_idx++) + ibfd = ibfd->link.next, bfd_idx++) { asection *sec; @@ -3070,7 +3070,7 @@ discover_functions (struct bfd_link_info *info) for (ibfd = info->input_bfds, bfd_idx = 0; ibfd != NULL; - ibfd = ibfd->link_next, bfd_idx++) + ibfd = ibfd->link.next, bfd_idx++) { Elf_Internal_Shdr *symtab_hdr; asection *sec; @@ -3109,7 +3109,7 @@ discover_functions (struct bfd_link_info *info) } } - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { extern const bfd_target spu_elf32_vec; asection *sec; @@ -3152,7 +3152,7 @@ discover_functions (struct bfd_link_info *info) for (ibfd = info->input_bfds, bfd_idx = 0; ibfd != NULL; - ibfd = ibfd->link_next, bfd_idx++) + ibfd = ibfd->link.next, bfd_idx++) { if (psym_arr[bfd_idx] == NULL) continue; @@ -3181,7 +3181,7 @@ for_each_node (bfd_boolean (*doit) (struct function_info *, { bfd *ibfd; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { extern const bfd_target spu_elf32_vec; asection *sec; @@ -3330,7 +3330,7 @@ build_call_tree (struct bfd_link_info *info) bfd *ibfd; unsigned int depth; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { extern const bfd_target spu_elf32_vec; asection *sec; @@ -3707,7 +3707,7 @@ auto_ovl_lib_functions (struct bfd_link_info *info, unsigned int lib_size) memset (&dummy_caller, 0, sizeof (dummy_caller)); lib_count = 0; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { extern const bfd_target spu_elf32_vec; asection *sec; @@ -4252,7 +4252,7 @@ spu_elf_auto_overlay (struct bfd_link_info *info) goto err_exit; bfd_count = 0; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) ++bfd_count; bfd_arr = bfd_malloc (bfd_count * sizeof (*bfd_arr)); if (bfd_arr == NULL) @@ -4262,7 +4262,7 @@ spu_elf_auto_overlay (struct bfd_link_info *info) count = 0; bfd_count = 0; total_overlay_size = 0; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { extern const bfd_target spu_elf32_vec; asection *sec; @@ -5395,7 +5395,7 @@ spu_elf_size_sections (bfd * output_bfd, struct bfd_link_info *info) bfd *ibfd; size_t size; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { asection *isec; diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c index e3e897c5863..8381cfa7643 100644 --- a/bfd/elf32-tic6x.c +++ b/bfd/elf32-tic6x.c @@ -1919,7 +1919,7 @@ elf32_tic6x_gc_mark_extra_sections (struct bfd_link_info *info, while (again) { again = FALSE; - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { asection *o; @@ -3309,7 +3309,7 @@ elf32_tic6x_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; @@ -4051,7 +4051,7 @@ elf32_tic6x_fix_exidx_coverage (asection **text_section_order, /* Walk over all EXIDX sections, and create backlinks from the corrsponding text sections. */ - for (inp = info->input_bfds; inp != NULL; inp = inp->link_next) + for (inp = info->input_bfds; inp != NULL; inp = inp->link.next) { asection *sec; diff --git a/bfd/elf32-tilepro.c b/bfd/elf32-tilepro.c index 4e6561db23a..b9a31d5c476 100644 --- a/bfd/elf32-tilepro.c +++ b/bfd/elf32-tilepro.c @@ -2472,7 +2472,7 @@ tilepro_elf_size_dynamic_sections (bfd *output_bfd, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; diff --git a/bfd/elf32-xstormy16.c b/bfd/elf32-xstormy16.c index 74adf6487f5..f918a1eb8cd 100644 --- a/bfd/elf32-xstormy16.c +++ b/bfd/elf32-xstormy16.c @@ -610,7 +610,7 @@ xstormy16_elf_relax_section (bfd *dynobj, /* Likewise for local symbols, though that's somewhat less convenient as we have to walk the list of input bfds and swap in symbol data. */ - for (ibfd = info->input_bfds; ibfd ; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd ; ibfd = ibfd->link.next) { bfd_vma *local_plt_offsets = elf_local_got_offsets (ibfd); Elf_Internal_Shdr *symtab_hdr; @@ -684,7 +684,7 @@ xstormy16_elf_relax_section (bfd *dynobj, elf_link_hash_traverse (elf_hash_table (info), xstormy16_relax_plt_realloc, &entry); - for (ibfd = info->input_bfds; ibfd ; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd ; ibfd = ibfd->link.next) { bfd_vma *local_plt_offsets = elf_local_got_offsets (ibfd); unsigned int nlocals = elf_tdata (ibfd)->symtab_hdr.sh_info; diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c index adc0a02216e..09862e3c2ca 100644 --- a/bfd/elf32-xtensa.c +++ b/bfd/elf32-xtensa.c @@ -1561,7 +1561,7 @@ elf_xtensa_allocate_local_got_size (struct bfd_link_info *info) if (htab == NULL) return; - for (i = info->input_bfds; i; i = i->link_next) + for (i = info->input_bfds; i; i = i->link.next) { bfd_signed_vma *local_got_refcounts; bfd_size_type j, cnt; @@ -1700,7 +1700,7 @@ elf_xtensa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, literal tables. */ sgotloc = htab->sgotloc; sgotloc->size = spltlittbl->size; - for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link.next) { if (abfd->flags & DYNAMIC) continue; @@ -6746,14 +6746,14 @@ analyze_relocations (struct bfd_link_info *link_info) bfd_boolean is_relaxable = FALSE; /* Initialize the per-section relaxation info. */ - for (abfd = link_info->input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info->input_bfds; abfd != NULL; abfd = abfd->link.next) for (sec = abfd->sections; sec != NULL; sec = sec->next) { init_xtensa_relax_info (sec); } /* Mark relaxable sections (and count relocations against each one). */ - for (abfd = link_info->input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info->input_bfds; abfd != NULL; abfd = abfd->link.next) for (sec = abfd->sections; sec != NULL; sec = sec->next) { if (!find_relaxable_sections (abfd, sec, link_info, &is_relaxable)) @@ -6765,7 +6765,7 @@ analyze_relocations (struct bfd_link_info *link_info) return TRUE; /* Allocate space for source_relocs. */ - for (abfd = link_info->input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info->input_bfds; abfd != NULL; abfd = abfd->link.next) for (sec = abfd->sections; sec != NULL; sec = sec->next) { xtensa_relax_info *relax_info; @@ -6782,7 +6782,7 @@ analyze_relocations (struct bfd_link_info *link_info) } /* Collect info on relocations against each relaxable section. */ - for (abfd = link_info->input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info->input_bfds; abfd != NULL; abfd = abfd->link.next) for (sec = abfd->sections; sec != NULL; sec = sec->next) { if (!collect_source_relocs (abfd, sec, link_info)) @@ -6790,7 +6790,7 @@ analyze_relocations (struct bfd_link_info *link_info) } /* Compute the text actions. */ - for (abfd = link_info->input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info->input_bfds; abfd != NULL; abfd = abfd->link.next) for (sec = abfd->sections; sec != NULL; sec = sec->next) { if (!compute_text_actions (abfd, sec, link_info)) diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c index 403e43697b5..968e45c685a 100644 --- a/bfd/elf64-alpha.c +++ b/bfd/elf64-alpha.c @@ -2481,7 +2481,7 @@ elf64_alpha_size_got_sections (struct bfd_link_info *info, consisting of all of the input files. */ if (got_list == NULL) { - for (i = info->input_bfds; i ; i = i->link_next) + for (i = info->input_bfds; i ; i = i->link.next) { bfd *this_got; diff --git a/bfd/elf64-hppa.c b/bfd/elf64-hppa.c index b57497d4b53..86f652dcc38 100644 --- a/bfd/elf64-hppa.c +++ b/bfd/elf64-hppa.c @@ -1580,7 +1580,7 @@ elf64_hppa_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) /* Set up DLT, PLT and OPD offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_dlt; bfd_signed_vma *end_local_dlt; diff --git a/bfd/elf64-ia64-vms.c b/bfd/elf64-ia64-vms.c index 069340aedf6..d14b909e404 100644 --- a/bfd/elf64-ia64-vms.c +++ b/bfd/elf64-ia64-vms.c @@ -2818,7 +2818,7 @@ elf64_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, return FALSE; /* Add entries for shared libraries. */ - for (abfd = info->input_bfds; abfd; abfd = abfd->link_next) + for (abfd = info->input_bfds; abfd; abfd = abfd->link.next) { char *soname; size_t soname_len; diff --git a/bfd/elf64-mmix.c b/bfd/elf64-mmix.c index ad6757f518b..58fca928209 100644 --- a/bfd/elf64-mmix.c +++ b/bfd/elf64-mmix.c @@ -2322,7 +2322,7 @@ _bfd_mmix_before_linker_allocation (bfd *abfd ATTRIBUTE_UNUSED, bfd *ibfd; /* Set the initial size of sections. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) bfd_map_over_sections (ibfd, mmix_set_relaxable_size, info); /* The bpo_greg_owner bfd is supposed to have been set by diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index b8d74658b8a..1d5d4ab2b74 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -7558,7 +7558,7 @@ ppc64_elf_edit_opd (struct bfd_link_info *info) if (htab == NULL) return FALSE; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { asection *sec; Elf_Internal_Rela *relstart, *rel, *relend; @@ -8105,7 +8105,7 @@ ppc64_elf_tls_optimize (struct bfd_link_info *info) and plt refcounts. */ toc_ref = NULL; for (pass = 0; pass < 2; ++pass) - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { Elf_Internal_Sym *locsyms = NULL; asection *toc = bfd_get_section_by_name (ibfd, ".toc"); @@ -8602,7 +8602,7 @@ ppc64_elf_edit_toc (struct bfd_link_info *info) htab->do_toc_opt = 1; toc_inf.global_toc_syms = TRUE; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { asection *toc, *sec; Elf_Internal_Shdr *symtab_hdr; @@ -9662,7 +9662,7 @@ ppc64_elf_size_dynamic_sections (bfd *output_bfd, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { struct got_entry **lgot_ents; struct got_entry **end_lgot_ents; @@ -9784,7 +9784,7 @@ ppc64_elf_size_dynamic_sections (bfd *output_bfd, elf_link_hash_traverse (&htab->elf, size_global_entry_stubs, info); first_tlsld = NULL; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { struct got_entry *ent; @@ -9892,7 +9892,7 @@ ppc64_elf_size_dynamic_sections (bfd *output_bfd, return FALSE; } - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { if (!is_ppc64_elf (ibfd)) continue; @@ -11071,7 +11071,7 @@ ppc64_elf_setup_section_lists (struct bfd_link_info *info) /* Find the top input section id. */ for (input_bfd = info->input_bfds, top_id = 3; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) { for (section = input_bfd->sections; section != NULL; @@ -11252,7 +11252,7 @@ ppc64_elf_layout_multitoc (struct bfd_link_info *info) elf_link_hash_traverse (&htab->elf, merge_global_got, info); /* And tlsld_got. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { struct got_entry *ent, *ent2; @@ -11263,7 +11263,7 @@ ppc64_elf_layout_multitoc (struct bfd_link_info *info) if (!ent->is_indirect && ent->got.offset != (bfd_vma) -1) { - for (ibfd2 = ibfd->link_next; ibfd2 != NULL; ibfd2 = ibfd2->link_next) + for (ibfd2 = ibfd->link.next; ibfd2 != NULL; ibfd2 = ibfd2->link.next) { if (!is_ppc64_elf (ibfd2)) continue; @@ -11285,7 +11285,7 @@ ppc64_elf_layout_multitoc (struct bfd_link_info *info) htab->elf.irelplt->size -= htab->got_reli_size; htab->got_reli_size = 0; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { asection *got, *relgot; @@ -11305,7 +11305,7 @@ ppc64_elf_layout_multitoc (struct bfd_link_info *info) /* Now reallocate the got, local syms first. We don't need to allocate section contents again since we never increase size. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { struct got_entry **lgot_ents; struct got_entry **end_lgot_ents; @@ -11362,7 +11362,7 @@ ppc64_elf_layout_multitoc (struct bfd_link_info *info) elf_link_hash_traverse (&htab->elf, reallocate_got, info); - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { struct got_entry *ent; @@ -11386,7 +11386,7 @@ ppc64_elf_layout_multitoc (struct bfd_link_info *info) done_something = htab->elf.irelplt->rawsize != htab->elf.irelplt->size; if (!done_something) - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { asection *got; @@ -11953,7 +11953,7 @@ ppc64_elf_size_stubs (struct bfd_link_info *info) for (input_bfd = info->input_bfds, bfd_indx = 0; input_bfd != NULL; - input_bfd = input_bfd->link_next, bfd_indx++) + input_bfd = input_bfd->link.next, bfd_indx++) { Elf_Internal_Shdr *symtab_hdr; asection *section; @@ -15064,7 +15064,7 @@ ppc64_elf_finish_dynamic_sections (bfd *output_bfd, /* We need to handle writing out multiple GOT sections ourselves, since we didn't add them to DYNOBJ. We know dynobj is the first bfd. */ - while ((dynobj = dynobj->link_next) != NULL) + while ((dynobj = dynobj->link.next) != NULL) { asection *s; diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c index 831c4a2dc05..d7b2f084bc6 100644 --- a/bfd/elf64-s390.c +++ b/bfd/elf64-s390.c @@ -1995,7 +1995,7 @@ elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; @@ -3717,7 +3717,7 @@ elf_s390_finish_dynamic_sections (bfd *output_bfd, } /* Finish dynamic symbol for local IFUNC symbols. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { struct plt_entry *local_plt; Elf_Internal_Sym *isym; diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index f735e317ca4..d230776eab7 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -2935,7 +2935,7 @@ elf_x86_64_size_dynamic_sections (bfd *output_bfd, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; diff --git a/bfd/elflink.c b/bfd/elflink.c index 6756fb1312c..2d953b57a06 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -5488,7 +5488,7 @@ _bfd_elf_size_group_sections (struct bfd_link_info *info) { bfd *ibfd; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) if (bfd_get_flavour (ibfd) == bfd_target_elf_flavour && !_bfd_elf_fixup_group_sections (ibfd, bfd_abs_section_ptr)) return FALSE; @@ -5615,7 +5615,7 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd, for (inputobj = info->input_bfds; inputobj; - inputobj = inputobj->link_next) + inputobj = inputobj->link.next) { asection *s; @@ -5881,7 +5881,7 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd, asection *o; for (sub = info->input_bfds; sub != NULL; - sub = sub->link_next) + sub = sub->link.next) if (bfd_get_flavour (sub) == bfd_target_elf_flavour) for (o = sub->sections; o != NULL; o = o->next) if (elf_section_data (o)->this_hdr.sh_type @@ -6711,7 +6711,7 @@ _bfd_elf_merge_sections (bfd *abfd, struct bfd_link_info *info) if (!is_elf_hash_table (info->hash)) return FALSE; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) if ((ibfd->flags & DYNAMIC) == 0) for (sec = ibfd->sections; sec != NULL; sec = sec->next) if ((sec->flags & SEC_MERGE) != 0 @@ -10929,7 +10929,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info) we could write the relocs out and then read them again; I don't know how bad the memory loss will be. */ - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) sub->output_has_begun = FALSE; for (o = abfd->sections; o != NULL; o = o->next) { @@ -10991,7 +10991,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info) /* Free symbol buffer if needed. */ if (!info->reduce_memory_overheads) { - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) if (bfd_get_flavour (sub) == bfd_target_elf_flavour && elf_tdata (sub)->symbuf) { @@ -11677,7 +11677,7 @@ _bfd_elf_gc_mark_hook (asection *sec, { bfd *i; - for (i = info->input_bfds; i; i = i->link_next) + for (i = info->input_bfds; i; i = i->link.next) { sec = bfd_get_section_by_name (i, sec_name); if (sec) @@ -11826,7 +11826,7 @@ _bfd_elf_gc_mark_extra_sections (struct bfd_link_info *info, { bfd *ibfd; - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { asection *isec; bfd_boolean some_kept; @@ -11954,7 +11954,7 @@ elf_gc_sweep (bfd *abfd, struct bfd_link_info *info) unsigned long section_sym_count; struct elf_gc_sweep_symbol_info sweep_info; - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { asection *o; @@ -12207,7 +12207,7 @@ bfd_elf_gc_sections (bfd *abfd, struct bfd_link_info *info) /* Try to parse each bfd's .eh_frame section. Point elf_eh_frame_section at the .eh_frame section if we can mark the FDEs individually. */ _bfd_elf_begin_eh_frame_parsing (info); - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { asection *sec; struct elf_reloc_cookie cookie; @@ -12247,7 +12247,7 @@ bfd_elf_gc_sections (bfd *abfd, struct bfd_link_info *info) /* Grovel through relocs to find out who stays ... */ gc_mark_hook = bed->gc_mark_hook; - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { asection *o; @@ -12556,7 +12556,7 @@ bfd_elf_gc_common_finalize_got_offsets (bfd *abfd, gotoff = bed->got_header_size; /* Do the local .got entries first. */ - for (i = info->input_bfds; i; i = i->link_next) + for (i = info->input_bfds; i; i = i->link.next) { bfd_signed_vma *local_got; bfd_size_type j, locsymcount; @@ -12688,7 +12688,7 @@ bfd_elf_discard_info (bfd *output_bfd, struct bfd_link_info *info) return FALSE; _bfd_elf_begin_eh_frame_parsing (info); - for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link.next) { if (bfd_get_flavour (abfd) != bfd_target_elf_flavour) continue; diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c index d917c7e5139..65ca2a4a930 100644 --- a/bfd/elfnn-aarch64.c +++ b/bfd/elfnn-aarch64.c @@ -2487,7 +2487,7 @@ elfNN_aarch64_setup_section_lists (bfd *output_bfd, /* Count the number of input BFDs and find the top input section id. */ for (input_bfd = info->input_bfds, bfd_count = 0, top_id = 0; - input_bfd != NULL; input_bfd = input_bfd->link_next) + input_bfd != NULL; input_bfd = input_bfd->link.next) { bfd_count += 1; for (section = input_bfd->sections; @@ -2691,7 +2691,7 @@ elfNN_aarch64_size_stubs (bfd *output_bfd, asection *stub_sec; for (input_bfd = info->input_bfds, bfd_indx = 0; - input_bfd != NULL; input_bfd = input_bfd->link_next, bfd_indx++) + input_bfd != NULL; input_bfd = input_bfd->link.next, bfd_indx++) { Elf_Internal_Shdr *symtab_hdr; asection *section; @@ -6289,7 +6289,7 @@ elfNN_aarch64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { struct elf_aarch64_local_symbol *locals = NULL; Elf_Internal_Shdr *symtab_hdr; diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 49da874dc54..dddf83e8f6f 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -4737,7 +4737,7 @@ mips_elf_multi_got (bfd *abfd, struct bfd_link_info *info, /* Try to merge the GOTs of input bfds together, as long as they don't seem to exceed the maximum GOT size, choosing one of them to be the primary GOT. */ - for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link.next) { gg = mips_elf_bfd_got (ibfd, FALSE); if (gg && !mips_elf_merge_got (ibfd, gg, &got_per_bfd_arg)) @@ -9092,7 +9092,7 @@ mips_elf_lay_out_got (bfd *output_bfd, struct bfd_link_info *info) /* Calculate the total loadable size of the output. That will give us the maximum number of GOT_PAGE entries required. */ - for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link.next) { asection *subsection; @@ -9141,7 +9141,7 @@ mips_elf_lay_out_got (bfd *output_bfd, struct bfd_link_info *info) { /* Record that all bfds use G. This also has the effect of freeing the per-bfd GOTs, which we no longer need. */ - for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link.next) if (mips_elf_bfd_got (ibfd, FALSE)) mips_elf_replace_bfd_got (ibfd, g); mips_elf_replace_bfd_got (output_bfd, g); diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c index a2bff234d69..3470f247ab0 100644 --- a/bfd/elfxx-sparc.c +++ b/bfd/elfxx-sparc.c @@ -2567,7 +2567,7 @@ _bfd_sparc_elf_size_dynamic_sections (bfd *output_bfd, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; diff --git a/bfd/elfxx-tilegx.c b/bfd/elfxx-tilegx.c index d45f20090b8..e206bc72d6b 100644 --- a/bfd/elfxx-tilegx.c +++ b/bfd/elfxx-tilegx.c @@ -2733,7 +2733,7 @@ tilegx_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, /* Set up .got offsets for local syms, and space for local dynamic relocs. */ - for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next) { bfd_signed_vma *local_got; bfd_signed_vma *end_local_got; diff --git a/bfd/linker.c b/bfd/linker.c index 2e21054a6d3..1afe4ed6f3e 100644 --- a/bfd/linker.c +++ b/bfd/linker.c @@ -313,7 +313,7 @@ SUBSUBSECTION The <> field of the <> structure will point to a list of all the input files included in the - link. These files are linked through the <> field + link. These files are linked through the <> field of the <> structure. Each section in the output file will have a list of @@ -2046,7 +2046,7 @@ _bfd_generic_final_link (bfd *abfd, struct bfd_link_info *info) p->u.indirect.section->linker_mark = TRUE; /* Build the output symbol table. */ - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) if (! _bfd_generic_link_output_symbols (abfd, sub, info, &outsymalloc)) return FALSE; diff --git a/bfd/pdp11.c b/bfd/pdp11.c index e7289286898..8999af2b767 100644 --- a/bfd/pdp11.c +++ b/bfd/pdp11.c @@ -3638,7 +3638,7 @@ aout_link_input_bfd (struct aout_final_link_info *flaginfo, bfd *input_bfd) /* Do the final link step. This is called on the output BFD. The INFO structure should point to a list of BFDs linked through the - link_next field which can be used to find each BFD which takes part + link.next field which can be used to find each BFD which takes part in the output. Also, each section in ABFD should point to a list of bfd_link_order structures which list all the input sections for the output section. */ @@ -3685,7 +3685,7 @@ NAME (aout, final_link) (bfd *abfd, max_contents_size = 0; max_relocs_size = 0; max_sym_count = 0; - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { size_t sz; @@ -3823,7 +3823,7 @@ NAME (aout, final_link) (bfd *abfd, We use the output_has_begun field of the input BFDs to see whether we have already handled it. */ - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) sub->output_has_begun = FALSE; /* Mark all sections which are to be included in the link. This diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c index 3a0dd132670..3808d39f812 100644 --- a/bfd/peXXigen.c +++ b/bfd/peXXigen.c @@ -3941,7 +3941,7 @@ rsrc_process_section (bfd * abfd, for (input = pfinfo->info->input_bfds; input != NULL; - input = input->link_next) + input = input->link.next) { asection * rsrc_sec = bfd_get_section_by_name (input, ".rsrc"); diff --git a/bfd/simple.c b/bfd/simple.c index 1331f9b61e9..7d256bf36ef 100644 --- a/bfd/simple.c +++ b/bfd/simple.c @@ -207,7 +207,7 @@ bfd_simple_get_relocated_section_contents (bfd *abfd, memset (&link_info, 0, sizeof (link_info)); link_info.output_bfd = abfd; link_info.input_bfds = abfd; - link_info.input_bfds_tail = &abfd->link_next; + link_info.input_bfds_tail = &abfd->link.next; link_info.hash = _bfd_generic_link_hash_table_create (abfd); link_info.callbacks = &callbacks; diff --git a/bfd/sunos.c b/bfd/sunos.c index 99bed8da0cc..27a658eb415 100644 --- a/bfd/sunos.c +++ b/bfd/sunos.c @@ -1891,7 +1891,7 @@ bfd_sunos_size_dynamic_sections (bfd *output_bfd, to determine the number of dynamic relocs we need, and, more importantly, there is no other way to know which symbols should get an entry in the procedure linkage table. */ - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { if ((sub->flags & DYNAMIC) == 0 && sub->xvec == output_bfd->xvec) diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c index 1d2250e979b..66a1999efe3 100644 --- a/bfd/vms-alpha.c +++ b/bfd/vms-alpha.c @@ -8652,7 +8652,7 @@ alpha_vms_bfd_final_link (bfd *abfd, struct bfd_link_info *info) { bfd *startbfd = NULL; - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { /* Consider only VMS object files. */ if (sub->xvec != abfd->xvec) @@ -8756,7 +8756,7 @@ alpha_vms_bfd_final_link (bfd *abfd, struct bfd_link_info *info) dmt = NULL; /* Read all sections from the inputs. */ - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { if (sub->flags & DYNAMIC) { @@ -8807,7 +8807,7 @@ alpha_vms_bfd_final_link (bfd *abfd, struct bfd_link_info *info) unsigned int off = 0; /* For each object file (ie for each module). */ - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { asection *sub_dst; struct vms_dmt_header *dmth = NULL; diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c index ee90151e863..9841de6b07b 100644 --- a/bfd/xcofflink.c +++ b/bfd/xcofflink.c @@ -2985,7 +2985,7 @@ xcoff_sweep (struct bfd_link_info *info) { bfd *sub; - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { asection *o; @@ -3710,7 +3710,7 @@ bfd_xcoff_size_dynamic_sections (bfd *output_bfd, /* We still need to call xcoff_mark, in order to set ldrel_count correctly. */ - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { asection *o; @@ -3804,7 +3804,7 @@ bfd_xcoff_size_dynamic_sections (bfd *output_bfd, and figure out the contents of the .debug section. */ debug_strtab = xcoff_hash_table (info)->debug_strtab; - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { asection *subdeb; bfd_size_type symcount; @@ -3973,7 +3973,7 @@ bfd_xcoff_link_generate_rtinit (bfd *abfd, bim->size = 0; bim->buffer = 0; - abfd->link_next = 0; + abfd->link.next = 0; abfd->format = bfd_object; abfd->iostream = (void *) bim; abfd->flags = BFD_IN_MEMORY; @@ -5041,7 +5041,7 @@ xcoff_find_tc0 (bfd *output_bfd, struct xcoff_final_link_info *flinfo) section_index = -1; for (input_bfd = flinfo->info->input_bfds; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) for (sec = input_bfd->sections; sec != NULL; sec = sec->next) if ((sec->flags & SEC_MARK) != 0 && xcoff_toc_section_p (sec)) { @@ -5073,7 +5073,7 @@ xcoff_find_tc0 (bfd *output_bfd, struct xcoff_final_link_info *flinfo) best_address = toc_end; for (input_bfd = flinfo->info->input_bfds; input_bfd != NULL; - input_bfd = input_bfd->link_next) + input_bfd = input_bfd->link.next) for (sec = input_bfd->sections; sec != NULL; sec = sec->next) if ((sec->flags & SEC_MARK) != 0 && xcoff_toc_section_p (sec)) { @@ -6103,7 +6103,7 @@ _bfd_xcoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info) input BFD's. We want at least 6 symbols, since that is the number which xcoff_write_global_symbol may need. */ max_sym_count = 6; - for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) + for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { bfd_size_type sz; diff --git a/include/ChangeLog b/include/ChangeLog index 253b0660df7..eaf81fdbc70 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2014-06-13 Alan Modra + + * bfdlink.h: Update for bfd.link_next change. + 2014-06-10 Alan Modra PR ld/16910 diff --git a/include/bfdlink.h b/include/bfdlink.h index 509d626f383..391b3a981bf 100644 --- a/include/bfdlink.h +++ b/include/bfdlink.h @@ -469,7 +469,7 @@ struct bfd_link_info bfd *output_bfd; /* The list of input BFD's involved in the link. These are chained - together via the link_next field. */ + together via the link.next field. */ bfd *input_bfds; bfd **input_bfds_tail; diff --git a/ld/ChangeLog b/ld/ChangeLog index d84e6651aa4..e1abf43b733 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2014-06-13 Alan Modra + + * emultempl/cr16elf.em, * emultempl/elf32.em, * emultempl/genelf.em, + * emultempl/m68kcoff.em, * emultempl/m68kelf.em, + * emultempl/nds32elf.em, * emultempl/pe.em, * emultempl/pep.em, + * ldlang.c, * ldmain.c, * pe-dll.c: Update for bfd.link_next change. + 2014-06-13 Alan Modra * Makefile.am (ALL_EMULATION_SOURCES): Add enios2elf.c, enios2linux.c. diff --git a/ld/emultempl/cr16elf.em b/ld/emultempl/cr16elf.em index 730235ebede..02f5220ca31 100644 --- a/ld/emultempl/cr16elf.em +++ b/ld/emultempl/cr16elf.em @@ -47,7 +47,7 @@ cr16_elf_after_open (void) input file with a nonzero .data section. The BFD backend will fill in these sections with magic numbers which can be used to relocate the data section at run time. */ - for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link.next) { asection *datasec; @@ -139,7 +139,7 @@ cr16elf_before_allocation (void) /* If we are generating embedded relocs, call a special BFD backend routine to do the work. */ - for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link.next) { asection *datasec, *relsec; char *errmsg; diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index 3ebf3b59077..39b4ccd4f17 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -1014,7 +1014,7 @@ gld${EMULATION_NAME}_after_open (void) /* Find an ELF input. */ for (abfd = link_info.input_bfds; - abfd != (bfd *) NULL; abfd = abfd->link_next) + abfd != (bfd *) NULL; abfd = abfd->link.next) if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) break; @@ -1051,7 +1051,7 @@ gld${EMULATION_NAME}_after_open (void) bfd_boolean warn_eh_frame = FALSE; asection *s; - for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next) + for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next) { if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) elfbfd = abfd; @@ -1459,7 +1459,7 @@ gld${EMULATION_NAME}_before_allocation (void) if (rpath == NULL) rpath = (const char *) getenv ("LD_RUN_PATH"); - for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next) + for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next) if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) { const char *audit_libs = elf_dt_audit (abfd); diff --git a/ld/emultempl/genelf.em b/ld/emultempl/genelf.em index 8561c17d688..5c5e1cbf4f4 100644 --- a/ld/emultempl/genelf.em +++ b/ld/emultempl/genelf.em @@ -38,7 +38,7 @@ gld${EMULATION_NAME}_after_open (void) after_open_default (); if (link_info.relocatable) - for (ibfd = link_info.input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + for (ibfd = link_info.input_bfds; ibfd != NULL; ibfd = ibfd->link.next) if ((syms = bfd_get_outsymbols (ibfd)) != NULL && bfd_get_flavour (ibfd) == bfd_target_elf_flavour) for (sec = ibfd->sections; sec != NULL; sec = sec->next) diff --git a/ld/emultempl/m68kcoff.em b/ld/emultempl/m68kcoff.em index e46889a0ff1..1a95d7cad64 100644 --- a/ld/emultempl/m68kcoff.em +++ b/ld/emultempl/m68kcoff.em @@ -67,7 +67,7 @@ gld${EMULATION_NAME}_after_open (void) || link_info.relocatable) return; - for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link.next) { asection *datasec; @@ -133,7 +133,7 @@ gld${EMULATION_NAME}_after_allocation (void) || link_info.relocatable) return; - for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link.next) { asection *datasec, *relsec; char *errmsg; diff --git a/ld/emultempl/m68kelf.em b/ld/emultempl/m68kelf.em index 35b30881225..c5cfe77b2e1 100644 --- a/ld/emultempl/m68kelf.em +++ b/ld/emultempl/m68kelf.em @@ -75,7 +75,7 @@ m68k_elf_after_open (void) input file with a nonzero .data section. The BFD backend will fill in these sections with magic numbers which can be used to relocate the data section at run time. */ - for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link.next) { asection *datasec; @@ -153,7 +153,7 @@ m68k_elf_after_allocation (void) /* If we are generating embedded relocs, call a special BFD backend routine to do the work. */ - for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link.next) { asection *datasec, *relsec; char *errmsg; diff --git a/ld/emultempl/nds32elf.em b/ld/emultempl/nds32elf.em index 96e6aa3810b..cad67158ddc 100644 --- a/ld/emultempl/nds32elf.em +++ b/ld/emultempl/nds32elf.em @@ -105,7 +105,7 @@ nds32_elf_after_open (void) /* For now, make sure all object files are of the same architecture. We may try to merge object files with different architecture together. */ - for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link.next) { if (arch_ver == (unsigned int)-1 && E_N1_ARCH != (elf_elfheader (abfd)->e_flags & EF_NDS_ARCH)) arch_ver = elf_elfheader (abfd)->e_flags & EF_NDS_ARCH ; @@ -125,7 +125,7 @@ nds32_elf_after_open (void) } /* Append .ex9.itable section in the last input object file. */ - if (!link_info.relocatable && abfd->link_next == NULL) + if (!link_info.relocatable && abfd->link.next == NULL) { asection *itable; struct bfd_link_hash_entry *h; @@ -165,7 +165,7 @@ nds32_elf_after_open (void) if (elf_hash_table (&link_info)->dynamic_sections_created || link_info.shared || link_info.pie) { - for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link.next) { if (!(elf_elfheader (abfd)->e_flags & E_NDS32_HAS_PIC)) { diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em index 3a375083d08..0466eb3f631 100644 --- a/ld/emultempl/pe.em +++ b/ld/emultempl/pe.em @@ -1433,7 +1433,7 @@ gld_${EMULATION_NAME}_after_open (void) printf ("-%s\n", sym->root.string); bfd_hash_traverse (&link_info.hash->table, pr_sym, NULL); - for (a = link_info.input_bfds; a; a = a->link_next) + for (a = link_info.input_bfds; a; a = a->link.next) printf ("*%s\n",a->filename); } #endif @@ -1444,7 +1444,7 @@ gld_${EMULATION_NAME}_after_open (void) /* Find a COFF input. */ for (abfd = link_info.input_bfds; - abfd != (bfd *) NULL; abfd = abfd->link_next) + abfd != (bfd *) NULL; abfd = abfd->link.next) if (bfd_get_flavour (abfd) == bfd_target_coff_flavour) break; diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em index 1f786556568..6e3ecd80011 100644 --- a/ld/emultempl/pep.em +++ b/ld/emultempl/pep.em @@ -1391,7 +1391,7 @@ gld_${EMULATION_NAME}_after_open (void) printf ("-%s\n", sym->root.string); bfd_hash_traverse (&link_info.hash->table, pr_sym, NULL); - for (a = link_info.input_bfds; a; a = a->link_next) + for (a = link_info.input_bfds; a; a = a->link.next) printf ("*%s\n",a->filename); } #endif @@ -1402,7 +1402,7 @@ gld_${EMULATION_NAME}_after_open (void) /* Find a COFF input. */ for (abfd = link_info.input_bfds; - abfd != (bfd *) NULL; abfd = abfd->link_next) + abfd != (bfd *) NULL; abfd = abfd->link.next) if (bfd_get_flavour (abfd) == bfd_target_coff_flavour) break; diff --git a/ld/ldlang.c b/ld/ldlang.c index 585914fe387..add86dadbd7 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -6228,11 +6228,11 @@ ldlang_add_file (lang_input_statement_type *entry) /* The BFD linker needs to have a list of all input BFDs involved in a link. */ - ASSERT (entry->the_bfd->link_next == NULL); + ASSERT (entry->the_bfd->link.next == NULL); ASSERT (entry->the_bfd != link_info.output_bfd); *link_info.input_bfds_tail = entry->the_bfd; - link_info.input_bfds_tail = &entry->the_bfd->link_next; + link_info.input_bfds_tail = &entry->the_bfd->link.next; entry->the_bfd->usrdata = entry; bfd_set_gp_size (entry->the_bfd, g_switch_value); diff --git a/ld/ldmain.c b/ld/ldmain.c index 2d987b827a7..d4be6f0e2ef 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -1213,7 +1213,7 @@ warning_callback (struct bfd_link_info *info ATTRIBUTE_UNUSED, { bfd *b; /* Search all input files for a reference to SYMBOL. */ - for (b = info->input_bfds; b; b = b->link_next) + for (b = info->input_bfds; b; b = b->link.next) if (b != abfd && symbol_warning (warning, symbol, b)) return TRUE; einfo ("%B: %s%s\n", abfd, _("warning: "), warning); diff --git a/ld/pe-dll.c b/ld/pe-dll.c index 04556067562..d38f30da692 100644 --- a/ld/pe-dll.c +++ b/ld/pe-dll.c @@ -654,7 +654,7 @@ process_def_file_and_drectve (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info * /* First, run around to all the objects looking for the .drectve sections, and push those into the def file too. */ - for (b = info->input_bfds; b; b = b->link_next) + for (b = info->input_bfds; b; b = b->link.next) { s = bfd_get_section_by_name (b, ".drectve"); if (s) @@ -700,7 +700,7 @@ process_def_file_and_drectve (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info * if ((pe_dll_export_everything || pe_def_file->num_exports == 0) && !pe_dll_exclude_all_symbols) { - for (b = info->input_bfds; b; b = b->link_next) + for (b = info->input_bfds; b; b = b->link.next) { asymbol **symbols; int nsyms; @@ -1267,7 +1267,7 @@ pe_walk_relocs_of_symbol (struct bfd_link_info *info, bfd *b; asection *s; - for (b = info->input_bfds; b; b = b->link_next) + for (b = info->input_bfds; b; b = b->link.next) { asymbol **symbols; @@ -1330,7 +1330,7 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info) struct bfd_section *s; total_relocs = 0; - for (b = info->input_bfds; b; b = b->link_next) + for (b = info->input_bfds; b; b = b->link.next) for (s = b->sections; s; s = s->next) total_relocs += s->reloc_count; @@ -1338,7 +1338,7 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info) total_relocs = 0; bi = 0; - for (bi = 0, b = info->input_bfds; b; bi++, b = b->link_next) + for (bi = 0, b = info->input_bfds; b; bi++, b = b->link.next) { arelent **relocs; int relsize, nrelocs; @@ -2726,7 +2726,7 @@ pe_dll_generate_implib (def_file *def, const char *impfilename, struct bfd_link_ ar_head = make_head (outarch); /* Iterate the input BFDs, looking for exclude-modules-for-implib. */ - for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link_next) + for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link.next) { /* Iterate the exclude list. */ struct exclude_list_struct *ex; -- 2.39.2