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 | gdb-c72f2fb2bb6a3e1850b081dbfce4040970fae8e6.zip gdb-c72f2fb2bb6a3e1850b081dbfce4040970fae8e6.tar.gz gdb-c72f2fb2bb6a3e1850b081dbfce4040970fae8e6.tar.bz2 |
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 d84e665..e1abf43 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 730235e..02f5220 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 3ebf3b5..39b4ccd 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 8561c17..5c5e1cb 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 e46889a..1a95d7c 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 35b3088..c5cfe77 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 96e6aa3..cad6715 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 3a37508..0466eb3 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 1f78655..6e3ecd8 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 585914f..add86da 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 2d987b8..d4be6f0 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 0455606..d38f30d 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; |