diff options
author | Alan Modra <amodra@gmail.com> | 2014-06-13 19:10:57 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2014-06-13 19:10:57 +0930 |
commit | c72f2fb2bb6a3e1850b081dbfce4040970fae8e6 (patch) | |
tree | 956ef2777825e25830add0776f1155ff6181c654 /ld | |
parent | 07cccc39f31f4b77607fd9487f33e242969475ca (diff) | |
download | binutils-gdb-c72f2fb2bb6a3e1850b081dbfce4040970fae8e6.tar.gz |
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.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 7 | ||||
-rw-r--r-- | ld/emultempl/cr16elf.em | 4 | ||||
-rw-r--r-- | ld/emultempl/elf32.em | 6 | ||||
-rw-r--r-- | ld/emultempl/genelf.em | 2 | ||||
-rw-r--r-- | ld/emultempl/m68kcoff.em | 4 | ||||
-rw-r--r-- | ld/emultempl/m68kelf.em | 4 | ||||
-rw-r--r-- | ld/emultempl/nds32elf.em | 6 | ||||
-rw-r--r-- | ld/emultempl/pe.em | 4 | ||||
-rw-r--r-- | ld/emultempl/pep.em | 4 | ||||
-rw-r--r-- | ld/ldlang.c | 4 | ||||
-rw-r--r-- | ld/ldmain.c | 2 | ||||
-rw-r--r-- | ld/pe-dll.c | 12 |
12 files changed, 33 insertions, 26 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index d84e6651aa4..e1abf43b733 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,12 @@ 2014-06-13 Alan Modra <amodra@gmail.com> + * 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 <amodra@gmail.com> + * Makefile.am (ALL_EMULATION_SOURCES): Add enios2elf.c, enios2linux.c. * Makefile.in: Regenerate. 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; |