Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/bfd/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 20 by monabuilder, Sun Dec 28 03:31:28 2008 UTC revision 21 by monamour, Mon Jul 27 20:34:36 2009 UTC
# Line 1  Line 1 
1  2008-12-23  Nick Clifton  <nickc@redhat.com>  2009-07-27  H.J. Lu  <hongjiu.lu@intel.com>
2    
3          PR 7093          * archures.c bfd_*_arch): Sorted.
4          * elf32-arm.c (bfd_elf32_arm_init_maps): Only process ARM ELF          (bfd_archures_list): Likewise.
         object files.  
   
 2008-12-23  Tristan Gingold  <gingold@adacore.com>  
   
         * mach-o.c (bfd_mach_o_make_bfd_section): Use the standard ELF name  
         .eh_frame for __TEXT.__eh_frame so that it is recognized by gdb.  
         Use shorter sections name for well known sections.  
         (bfd_mach_o_scan_read_dylinker): Only put dylinker name in the  
         section content.  
         (bfd_mach_o_scan_read_segment): Use shorter sections name for  
         well known segments.  
         (bfd_mach_o_scan_read_command): Ignore some new commands.  
         (bfd_mach_o_openr_next_archived_file): Use more descriptive names  
         for members filename.  
         (bfd_mach_o_fat_extract): New function to easily extract members  
         of a fat binary.  
         * mach-o.h (bfd_mach_o_load_command_type): Add new constants.  
         (bfd_mach_o_dylinker_command): Fix comment and reindent.  
         (bfd_mach_o_fat_extract): New prototype.  
   
 2008-12-23  Johan Olmutz Nielsen  <jnielsen@ddci.com>  
   
         * coffcode.h (coff_write_object_contents): Always initialise  
         section.s_page.  
   
 2008-12-23  Andreas Schwab  <schwab@suse.de>  
   
         * elf32-m68k.c (elf_m68k_discard_copies): Use SYMBOL_CALLS_LOCAL.  
         (elf_m68k_relocate_section): Use SYMBOL_CALLS_LOCAL and  
         SYMBOL_REFERENCES_LOCAL.  
         (elf_m68k_relocate_section): Likewise.  
5    
6  2008-12-23  Nick Clifton  <nickc@redhat.com>  2009-07-27  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
7    
8          * elf-bfd.h (struct bfd_elf_section_data): Remove indirect_relocs          * elf32-cr16.c (elf_cr16_final_link_relocate): Add code to handle
9          field.          to R_cr16_NUM32 relocation.
10          (_bfd_elf_make_ifunc_reloc_section): Remove prototype.  
11          * elf.c (swap_out_syms): Remove STT_IFUNC support.  2009-07-26  Michael Eager  <eager@eagercon.com>
12          (elf_find_function): Likewise.  
13          * elf32-arm.c (arm_elf_find_function): Likewise.          * archures.c: Add bfd_mach_ppc_405
14          (elf32_arm_adjust_dynamic_symbol): Likewise.          * bfd-in2.h: Same.
15          (elf32_arm_swap_symbol_in): Likewise.  
16          (elf32_arm_is_function_type): Likewise.  2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>
17          * elf32-i386.c (is_indirect_symbol): Delete.  
18          (elf_i386_check_relocs): Remove STT_IFUNC support.          * cpu-i386.c (bfd_x86_64_arch): Fix comment typos.
19          (allocate_dynrelocs): Likewise.          * cpu-l1om.c (bfd_l1om_arch): Likewise.
20          (elf_i386_relocate_section): Likewise.  
21          * elf64-x86-64.c (is_indirect_symbol): Delete.  2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>
22          (elf64_x86_64_check_relocs): Remove STT_IFUNC support.  
23          (allocate_dynrelocs): Likewise.          * archures.c (bfd_architecture): Add bfd_arch_l1om.
24            (bfd_l1om_arch): New.
25            (bfd_archures_list): Add &bfd_l1om_arch.
26            * bfd-in2.h: Regenerated.
27    
28            * config.bfd (targ64_selvecs): Add bfd_elf64_l1om_vec if
29            bfd_elf64_x86_64_vec is supported.  Add bfd_elf64_l1om_freebsd_vec
30            if bfd_elf64_x86_64_freebsd_vec is supported.
31            (targ_selvecs): Likewise.
32    
33            * configure.in: Support bfd_elf64_l1om_vec and
34            bfd_elf64_l1om_freebsd_vec.
35            * configure: Regenerated.
36    
37            * cpu-l1om.c: New.
38    
39            * elf64-x86-64.c (elf64_l1om_elf_object_p): New.
40            (bfd_elf64_l1om_vec): Likewise.
41            (bfd_elf64_l1om_freebsd_vec): Likewise.
42    
43            * Makefile.am (ALL_MACHINES): Add cpu-l1om.lo.
44            (ALL_MACHINES_CFILES): Add cpu-l1om.c.
45            * Makefile.in: Regenerated.
46    
47            * targets.c (bfd_elf64_l1om_vec): New.
48            (bfd_elf64_l1om_freebsd_vec): Likewise.
49            (_bfd_target_vector): Add bfd_elf64_l1om_vec and
50            bfd_elf64_l1om_freebsd_vec.
51    
52    2009-07-24  Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
53                Alan Modra  <amodra@bigpond.net.au>
54    
55            * reloc.c (BFD_RELOC_SPU_ADD_PIC): Define.
56            * bfd-in2.h: Regenerate.
57            * libbfd.h: Regenerate.
58            * elf32-spu.c (elf_howto_table): Add entries SPU_ADD_PIC.
59            (spu_elf_bfd_to_reloc_type): Handle SPU_ADD_PIC.
60            (spu_elf_relocate_section): Patch instructions marked by SPU_ADD_PIC.
61    
62    2009-07-23  H.J. Lu  <hongjiu.lu@intel.com>
63    
64            PR ld/10434
65            * elf64-x86-64.c (elf64_x86_64_check_relocs): Check executable
66            instead of shared for R_X86_64_TPOFF32.
67          (elf64_x86_64_relocate_section): Likewise.          (elf64_x86_64_relocate_section): Likewise.
68          * elfcode.h (elf_slurp_symbol_table): Likewise.  
69          * elflink.c (_bfd_elf_adjust_symbol): Likewise.  2009-07-23  Ulrich Drepper  <drepper@redhat.com>
70          (get_ifunc_reloc_section_name): Delete.  
71          (_bfd_elf_make_ifunc_reloc_section): Delete.          * elf-bfd.h (struct elf_link_hash_entry): Add unique_global field.
72          * syms.c (BSF_INDIRECT_FUNCTION): Delete.          * elf.c (swap_out_syms): Set binding to STB_GNU_UNIQUE for symbols
73          (bfd_print_symbol_vandf): Remove STT_IFUNC support.          with the BSF_GNU_UNIQUE flag bit set.
74          (bfd_decode_symclass): Likewise.          * elfcode.h (elf_slurp_symbol_table): Set the BSF_GNU_UNIQUE flag
75            for symbols with STB_GNU_UNIQUE binding.
76            * elflink.c (_bfd_elf_merge_symbol): Set unique_global for symbols
77            with the STB_GNU_UNIQUE binding.
78            (elf_link_add_object_symbols): Set the BSF_GNU_UNIQUE flag for
79            symbols with STB_GNU_UNIQUE binding.  Set STB_GNU_UNIQUE for
80            symbols with the unique_global field set.
81            (elf_link_output_extsym): Set unique_global field for symbols with
82            the STB_GNU_UNIQUE binding.
83            * syms.c (struct bfd_symbol): Define BSF_GNU_UNIQUE flag bit.
84            (bfd_print_symbol_vandf): Print a 'u' character for BSF_GNU_UNIQUE
85            symbols.
86            (bfd_decode_symclass): Return a 'u' character for BSF_GNU_UNIQUE
87            symbols.
88          * bfd-in2.h: Regenerate.          * bfd-in2.h: Regenerate.
89    
90  2008-12-20  Hans-Peter Nilsson  <hp@axis.com>  2009-07-22  H.J. Lu  <hongjiu.lu@intel.com>
91    
92          * elf32-cris.c  (cris_elf_howto_table): Add entry for R_CRIS_32_IE.           * elflink.c (elf_link_output_extsym): Revert the last change.
         (cris_reloc_map): Similarly.  
         (cris_elf_relocate_section, cris_elf_gc_sweep_hook)  
         (cris_elf_check_relocs): Handle R_CRIS_32_IE.  
         * reloc.c (bfd_reloc_code_type): Add entry for R_CRIS_32_IE.  
         * bfd-in2.h, libbfd.h: Regenerate.  
93    
94  2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>  2009-07-22  H.J. Lu  <hongjiu.lu@intel.com>
95    
96          * configure: Regenerate.           PR ld/10433
97             * elflink.c (elf_link_output_extsym): Special case ifunc syms
98             when ref_regular, not def_regular.
99    
100  2008-12-17  Hans-Peter Nilsson  <hp@axis.com>  2009-07-21  H.J. Lu  <hongjiu.lu@intel.com>
101    
102          * elf32-cris.c (elf_cris_copy_indirect_symbol): Return without           PR ld/10426
103          action for symbols other than bfd_link_hash_indirect.           * elflink.c (elf_link_add_object_symbols): Turn an IFUNC symbol
104          (cris_elf_relocate_section) <R_CRIS_8, R_CRIS_16, R_CRIS_32>: Add missing           from a DSO into a normal FUNC symbol.
105          gate h != NULL for h->def_regular test.           (elf_link_output_extsym): Turn an undefined IFUNC symbol into
106             a normal FUNC symbol.
107  2008-12-15  Hans-Peter Nilsson  <hp@axis.com>  
108    2009-07-17  Chao-ying Fu  <fu@mips.com>
109          * elf32-cris.c (elf_cris_copy_indirect_symbol): New function.  
110          (elf_backend_copy_indirect_symbol): Define to above.          * elfxx-mips.c (LOAD_INTERLOCKS_P): New define.
111            (_bfd_mips_elf_size_dynamic_sections): For CPUs without load
112          * elf32-cris.c (struct elf_cris_pcrel_relocs_copied): New member          interlocking, the last PLT entry needs a nop in the branch delay slot.
113          r_type.  Fix formatting.          (_bfd_mips_elf_finish_dynamic_symbol): For CPUs with load itnerlocking,
114          (cris_elf_relocate_section) <R_CRIS_8_PCREL, R_CRIS_16_PCREL>          output the last two PLT entries in reverse order.
115          <R_CRIS_32_PCREL>: Also break early if the symbol doesn't get  
116          emitted as a dynamic one.  2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>
117          (cris_elf_check_relocs) <R_CRIS_7, R_CRIS_16, R_CRIS_32>: Fork  
118          from PCREL relocs code and simplify; don't fall through.          * elf32-i386.c (elf_i386_relocate_section): Don't get local
119          <R_CRIS_8_PCREL, R_CRIS_16_PCREL, R_CRIS_32_PCREL>: Simplify for          STT_GNU_IFUNC symbol for relocatable link.
120          pcrel only.  For non-local or overridable symbols in a DSO, always          * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
121          keep count of relocs, not just when -Bsymbolic.  Don't emit  
122          message nor mark as TEXTREL here.  2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>
123          (elf_cris_discard_excess_dso_dynamics): Emit warning and mark as  
124          TEXTREL here, if there are nondiscarded pcrel relocs.          * bfdio.c (bfd_iovec): Add comments for bmmap.
125            * bfd-in2.h: Regenerated.
126          * elf32-cris.c (elf_cris_got_elt_size) <symtab_hdr>: Initialize  
127          using ibfd, not abfd.  2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>
128    
129  2008-12-11  Alan Modra  <amodra@bigpond.net.au>          * Makefile.am: Run "make dep-am".
130            * Makefile.in: Regenerated.
131          PR 7041  
132          * elf64-ppc.c (func_desc_adjust): Correct logic making fake function  2009-07-10  Doug Kwan  <dougkwan@google.com>
133          descriptors.  Similarly correct making function descriptors dynamic.  
134            * elf32-arm.c (stub_hash_newfunc): Initialize fields
135  2008-12-10  Alan Modra  <amodra@bigpond.net.au>          target_addend and orig_insn.
136    
137          * elf32-spu.h (struct spu_elf_params): Add num_regions.  2009-07-10  Tom Tromey  <tromey@redhat.com>
138          * elf32-spu.c (spu_elf_auto_overlay): Handle multiple overlay regions.  
139            * Makefile.am (dwarf2.lo): Use dwarf2.h, not elf/dwarf2.h.
140  2008-12-10  Alan Modra  <amodra@bigpond.net.au>          (elf-eh-frame.lo): Likewise.
141            (elf32-bfin.lo): Likewise.
142          * elf32-spu.g (struct spu_elf_params, enum _ovly_flavour): New.          (elf32-frv.lo): Likewise.
143          (spu_elf_setup): Declare.          (elf32-xc16x.lo): Likewise.
144          (spu_elf_create_sections, spu_elf_size_stubs): Update prototype.          * Makefile.in: Rebuild.
145          (spu_elf_build_stubs, spu_elf_check_vma): Likewise.          * dwarf2.c: Included dwarf.h, not elf/dwarf2.h.
146          * elf32-spu.c (struct spu_link_hash_table): Add "params". Remove          * elf-eh-frame.c: Likewise.
147          various other fields now in "params".  Adjust code throughout.          * elf32-bfin.c: Likewise.
148          (struct call_info, struct function_info): Move earlier in file.          * elf32-frv.c: Likewise.
149          (struct spu_elf_stack_info): Likewise.          * elf32-xc16x.c: Likewise.
150          (spu_elf_setup): New function.  
151          (spu_elf_create_sections): Remove args other than "info".  2009-07-10  Julian Brown  <julian@codesourcery.com>
152          (spu_elf_size_stubs, spu_elf_build_stubs, spu_elf_check_vma): Likewise.  
153          (maybe_needs_stubs): Remove "output_bfd" arg.  Adjust all calls.          * elf32-arm.c (arm_build_one_stub): Use the hash entry of the
154          (interesting_section): Similarly with "obfd" arg.          symbol a stub entry is derived from, not the entry for the stub
155          (needs_ovl_stub): Adjust output_section test.          itself, in call to elf32_arm_final_link_relocate.
156          (allocate_spuear_stubs): Likewise.  
157          (OVL_STUB_SIZE): Don't define.  2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>
158          (ovl_stub_size): New function, use in place of OVL_STUB_SIZE.  
159          (build_stub): Test params->ovly_flavour rather than OVL_STUB_SIZE.          * elf.c (_bfd_elf_get_synthetic_symtab): Remove leading zeros
160          (spu_elf_auto_overlay): Remove args other than "info".  Make use          when reporting  addends.
161          of size returned from spu_elf_load_ovl_mgr.  
162          (spu_elf_stack_analysis): Remove args other than "info".  2009-07-10  Alan Modra  <amodra@bigpond.net.au>
163          (spu_elf_relocate_section): Tidy setting of "ea".  
164            * elf32-spu.c (spu_elf_size_stubs): Do set up soft-icache manager
165  2008-12-10  Alan Modra  <amodra@bigpond.net.au>          data even when no stubs.
166            (spu_elf_place_overlay_data, spu_elf_build_stubs): Adjust.
167          * elf32-spu.c (find_function_stack_adjust): Don't limit number  
168          of insns scanned.  Correct sp tests.  Handle "fsmbi" and "andbi".  2009-07-10  Alan Modra  <amodra@bigpond.net.au>
169          (mark_detached_root): New function.  
170          (build_call_tree): Call it.          * elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_IRELATIVE.
171          (sort_calls): Don't do void* arithmetic.          (ppc_elf_get_synthetic_symtab): Report addend.
172          (define_ovtab_symbol): Don't abort on symbols defined in linker scripts.          (PLT_IFUNC): Define.
173          (discover_functions): Consider STT_SECTION symbols too.          (struct ppc_elf_link_hash_table): Add iplt and reliplt.
174          (collect_lib_sections): Don't cut short call tree traversal          (ppc_elf_create_glink): New function.
175          when function size is too large.          (ppc_elf_create_dynamic_sections): Use it.
176            (ppc_elf_add_symbol_hook): Set has_ifunc_symbols.
177  2008-12-09  Tom Tromey  <tromey@redhat.com>          (update_local_sym_info): Allocate space for local_plt array.
178            Don't bump local_got_refcounts for PLT_IFUNC.  Return local_plt
179          * pef.c (bfd_pef_parse_traceback_table): Add parens to placate gcc          entry pointer.
180          4.4.          (is_branch_reloc): New function.
181            (ppc_elf_check_relocs): Handle STT_GNU_IFUNC symbols.
182  2008-12-09  Tristan Gingold  <gingold@adacore.com>          (ppc_elf_gc_sweep_hook): Likewise.
183            (ppc_elf_adjust_dynamic_symbol): Likewise.
         * cpu-avr.c (compatible): Makes avr-6 compatible only with itself.  
   
 2008-12-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>  
   
         * elf64-s390.c (elf_s390_check_relocs): Initialize  
         htab->elf.dynobj if necessary.  
   
 2008-12-03  Nick Clifton  <nickc@redhat.com>  
   
         * syms.c (struct bfd_symbol): Add new flag BSF_INDIRECT_FUNCTION.  
         Remove redundant flag BFD_FORT_COMM_DEFAULT_VALUE.  Renumber flags  
         to remove gaps.  
         (bfd_print_symbol_vandf): Return 'i' for BSF_INDIRECT_FUNCTION.  
         (bfd_decode_symclass): Likewise.  
         * elf.c (swap_out_syms): Translate BSF_INDIRECT_FUNCTION into  
         STT_IFUNC.  
         (elf_find_function): Treat STT_IFUNC in the same way as STT_FUNC.  
         (_bfd_elf_is_function_type): Likewise.  
         * elf32-arm.c (arm_elf_find_function): Likewise.  
         (elf32_arm_adjust_dynamic_symbol): Likewise.  
         (elf32_arm_swap_symbol_in): Likewise.  
         (elf32_arm_additional_program_headers): Likewise.  
         * elf32-i386.c (is_indirect_symbol): New function.  
         (elf_i386_check_relocs): Also generate dynamic relocs for  
         relocations against STT_IFUNC symbols.  
184          (allocate_dynrelocs): Likewise.          (allocate_dynrelocs): Likewise.
185          (elf_i386_relocate_section): Likewise.          (ppc_elf_size_dynamic_sections): Likewise.
186          * elf64-x86-64.c (is_indirect_symbol): New function.          (ppc_elf_relocate_section): Likewise.
187          (elf64_x86_64_check_relocs): Also generate dynamic relocs for          (branch_reloc_hash_match): Use is_branch_reloc.
188          relocations against STT_IFUNC symbols.          (ppc_elf_tls_optimize): Adjust for local_plt.
189            (write_glink_stub): New function, extracted from..
190            (ppc_elf_finish_dynamic_symbol): ..here.  Handle STT_GNU_IFUNC.
191            (ppc_elf_finish_dynamic_sections): Only write plt resolver and
192            branch table when dynamic.
193            (elf_backend_post_process_headers): Define.
194            * elf64-ppc.c (elf_backend_post_process_headers): Define.
195            (ppc64_elf_howto_raw): Add R_PPC64_IRELATIVE.
196            (ppc64_elf_get_synthetic_symtab): Report addend.
197            (struct ppc_stub_hash_entry): Add plt_ent.
198            (PLT_IFUNC): Define.
199            (struct ppc_link_hash_table): Add iplt and reliplt.
200            (create_linkage_sections): Make .iplt and .rela.iplt sections.
201            (ppc64_elf_add_symbol_hook): Set has_ifunc_symbols.
202            (update_local_sym_info): Allocate space for local_plt array.
203            Don't bump local_got_ents for PLT_IFUNC.  Return local_plt
204            entry pointer.
205            (update_plt_info): Pass pointer to plt_entry rather than sym hash,
206            and don't change hash flags here.
207            (is_branch_reloc): New function.
208            (ppc64_elf_check_relocs): Handle STT_GNU_IFUNC.
209            (ppc64_elf_gc_sweep_hook): Likewise.
210            (ppc64_elf_adjust_dynamic_symbol): Likewise.
211          (allocate_dynrelocs): Likewise.          (allocate_dynrelocs): Likewise.
212          (elf64_x86_64_relocate_section): Likewise.          (ppc64_elf_size_dynamic_sections): Likewise.
213          * elfcode.h (elf_slurp_symbol_table): Translate STT_IFUNC into          (ppc_build_one_stub, ppc_size_one_stub): Likewise.
214          BSF_INDIRECT_FUNCTION.          (ppc64_elf_size_stubs): Likewise.
215          * elflink.c (_bfd_elf_adjust_dynamic_reloc_section): Add support          (ppc64_elf_relocate_section): Likewise.
216          for STT_IFUNC symbols.          (get_sym_h): Adjust for local_plt.
217          (get_ifunc_reloc_section_name): New function.          (branch_reloc_hash_match): Use is_branch_reloc.
218          (_bfd_elf_make_ifunc_reloc_section): New function.          (ppc_type_of_stub): Pass plt_entry pointer and handle ifunc.
219          * elf-bfd.h (struct bfd_elf_section_data): Add indirect_relocs field.          (ppc64_elf_toc): Ignore SEC_EXCLUDE sections.
         * bfd-in2.h: Regenerate.  
220    
221  2008-12-02  Tristan Gingold  <gingold@adacore.com>  2009-07-10  Alan Modra  <amodra@bigpond.net.au>
222    
223          * config.bfd: Add x86_64-*-darwin*          * elf.c (_bfd_elf_get_synthetic_symtab): Report addends.
224    
225  2008-11-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>  2009-07-10  Alan Modra  <amodra@bigpond.net.au>
226    
227          * hpux-core.c: Don't include sys/file.h.          * elf-bfd.h (struct elf_link_hash_entry): Clarify ref_regular
228            and ref_regular_nonweak comment.
229            * elflink.c (elf_link_output_extsym): Special case ifunc syms
230            when def_regular, not ref_regular.
231            (elf_link_add_object_symbols): Don't set needs_plt on ifunc syms,..
232            * elf32-i386.c (elf_i386_check_relocs): ..set it here instead..
233            * elf64-x86-64.c (elf64_x86_64_check_relocs): ..and here.
234    
235  2008-11-28  Joshua Kinard  <kumba@gentoo.org>  2009-07-09  Alan Modra  <amodra@bigpond.net.au>
236    
237          * aoutx.h (NAME): Add case statements for bfd_mach_mips14000,          * elf32-spu.c (mark_functions_via_relocs): Init broken_cycle field
238          bfd_mach_mips16000.          of malloc'd struct call_info.
239          * archures.c (bfd_architecture): Add .#defines for bfd_mach_mips14000,          (pasted_function): Likewise, priority too.
         bfd_mach_mips16000.  
         * bfd-in2.h: Regenerate.  
         * cpu-mips.c: Add enums I_mips14000, I_mips16000.  
         (arch_info_struct): Add refs to R14000, R16000.  
         * elfxx-mips.c (mips_set_isa_flags): Handle bfd_mach_mips14000,  
         bfd_mach_mips16000.  
         (mips_mach_extensions): Map R14000, R16000 to R10000.  
   
 2008-11-27   M R Swami Reddy <MR.Swami.Reddy@nsc.com>  
   
         * Add PIC support for CR16 target.  
         * elf32-cr16.c (R_CR16_GOT_REGREL20, R_CR16_GOTC_REGREL20 and  
         R_CR16_GLOB_DAT): New macros  
         (cr16_elf_howto_table): Add entries for for R_CR16_GOT_REGREL20,  
         R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT.  
         (cr16_reloc_map): Ditto  
         (_bfd_cr16_elf_create_got_section): New function to create GOT section.  
         (_bfd_cr16_elf_create_dynamic_sections): New function to create dynamic  
         section.  
         (_bfd_cr16_elf_adjust_dynamic_symbol): New function to adjust symbol  
         defined by dynamic object.  
         (_bfd_cr16_elf_size_dynamic_sections): New function to find the size of  
         dynamic sections.  
         (_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic  
         symbols.  
         (_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic  
         sections.  
         (bfd_cr16_elf32_create_embedded_relocs): New function to create  
         embedded relocs in .emreloc section in memory for .data.rel section.  
         (_bfd_cr16_elf_reloc_type_class): New function for classify reloc types.  
         (cr16_elf_check_relocs): New function for checking reloc types in first  
         phase.  
         (cr16_elf_final_link_relocate): Update for handling the new reloc types  
         R_CR16_GOT_REGREL20 and R_CR16_GOTC_REGREL20.  
         (elf32_cr16_relax_section): Update relax implementation.  
         * reloc.c (bfd_reloc_code_type): Add entries for R_CR16_GOT_REGREL20,  
         R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT.  
         * bfd-in.h (bfd_boolean bfd_cr16_elf32_create_embedded_relocs): Declared  
         * libbfd.h, bfd-in2.h: Regenerate.  
240    
241  2008-11-26  Alan Modra  <amodra@bigpond.net.au>  2009-07-07  Alan Modra  <amodra@bigpond.net.au>
242    
243          PR 7047          * elf32-spu.c (spu_elf_auto_overlay): Take into account section
244          * configure.in: Bump version.          alignment when packing sections into overlays.
         * configure: Regenerate.  
         * elflink.c (_bfd_elf_link_assign_sym_version): Continue matching  
         against version nodes when a global match is a wildcard.  Similarly  
         continue matching on local wildcard matches, rather than only  
         continuing for "*".  Have any global wildcard match override a  
         local wildcard match.  Correct logic hiding unversioned symbol.  
         (bfd_elf_size_dynamic_sections): Update for changes to struct  
         bfd_elf_version_expr.  
245    
246  2008-11-25  Joel Brobecker  <brobecker@adacore.com>  2009-07-03  Cary Coutant  <ccoutant@google.com>
247    
248          * configure.in: Deactivate large-file support on native x86-solaris          * dwarf2.c (decode_line_info): Ignore DW_LNE_set_discriminator.
249          as well unless the user explicitly requested it.  
250    2009-07-03  Dave Korn  <dave.korn.cygwin@gmail.com>
251    
252            * coffcode.h (sec_to_styp_flags):  Partially revert (functional
253            changes only) earlier patch:-
254    
255      2009-06-25  Kai Tietz  <kai.tietz@onevision.com>
256    
257              * coffcode.h (sec_to_styp_flags): Set discardable for .reloc and
258              give .debug and .reloc data characteristics.
259              (DOT_RELOC): New define for .reloc section string.
260              (coff_write_object_contents): Use DOT_RELOC instead of string.
261    
262    2009-07-02  Tom Tromey  <tromey@redhat.com>
263    
264            * aoutx.h (aout_get_external_symbols): Declare 'amt' locally.
265            * bfdwin.c (bfd_free_window): Cast to unsigned long.
266    
267    2009-07-01  Nick Clifton  <nickc@redhat.com>
268    
269            * elf-m10300.c: Remove trailing white space.
270            * reloc.c: Likewise.
271    
272    2009-07-01  Douglas B Rupp  <rupp@gnat.com>
273    
274            * bfd.m4 (BFD_HAVE_TIME_TYPE_MEMBER,
275            BFD_HAVE_SYS_STAT_TYPE_MEMBER): New config functions.
276            * configure.in: Use them.
277          * configure: Regenerate.          * configure: Regenerate.
278            * config.in: Regnerate.
279            * vmsutil.c: Include sysdep.h, remove ansidecl.h.
280            #define _BSD_SOURCE. Add comments.
281            (vms_file_stats_name): Calculate creation date based on available
282            runtime data. Return 1 for version instead of 0.
283    
284    2009-07-01  Nick Clifton  <nickc@redhat.com>
285    
286            PR 10072
287            * elf32-arm.c (elf32_arm_final_link_relocate): Add code to handle
288            to R_ARM_THM_PC8 relocation.
289    
290    2009-06-29  Nick Clifton  <nickc@redhat.com>
291    
292            * elf-m10300.c (mn10300_elf_relax_section): Allow for the
293            different uses of the relocations addend when a symbol is in a
294            merged section.
295    
296    2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
297    
298            PR ld/10337
299            * elf.c (bfd_section_from_shdr): Don't change sh_link for
300            SHT_REL/SHT_RELA sections on executable nor shared library.
301            Treat SHT_REL/SHT_RELA sections with sh_link set to SHN_UNDEF
302            as a normal section.
303    
304    2009-06-25  Nick Clifton  <nickc@redhat.com>
305    
306            * elf-m10300.c (mn10300_elf_relax_section): Handle non-section
307            symbols with SEC_MERGE flag.
308    
309    2009-06-25  Kai Tietz  <kai.tietz@onevision.com>
310    
311            * coffcode.h (sec_to_styp_flags): Set discardable for .reloc and
312            give .debug and .reloc data characteristics.
313            (DOT_RELOC): New define for .reloc section string.
314            (coff_write_object_contents): Use DOT_RELOC instead of string.
315    
316    2009-06-25  Tristan Gingold  <gingold@adacore.com>
317    
318            * mach-o-target.c (bfd_mach_o_get_dynamic_symtab_upper_bound)
319            (bfd_mach_o_canonicalize_dynamic_symtab)
320            (bfd_mach_o_get_synthetic_symtab): Defines.
321            (TARGET_NAME_BACKEND): Add bfd_mach_o_print_thread entry.
322            (TARGET_NAME): Use Mach-O specific functions for dynamic.
323    
324            * mach-o-i386.c (bfd_mach_o_i386_swap_reloc_in): Fix howto indexes
325            for scattered relocations.
326            (bfd_mach_o_i386_print_thread): New function.
327            (bfd_mach_o_print_thread): Define.
328    
329            * mach-o.c (text_section_names_xlat): Add an entry for __const.
330            (bfd_mach_o_canonicalize_one_reloc, bfd_mach_o_canonicalize_relocs):
331            New functions extracted from ...
332            (bfd_mach_o_canonicalize_reloc): ... This.  Simplified.
333            (bfd_mach_o_get_dynamic_reloc_upper_bound): New function.
334            (bfd_mach_o_canonicalize_dynamic_reloc): New function.
335            (bfd_mach_o_i386_flavour_string): Adjusted after enum renaming.
336            (bfd_mach_o_ppc_flavour_string): Reindentation.  Add 64 bits cases.
337            (bfd_mach_o_scan_read_dylinker): Do not create a section anymore.
338            Set name_str field.
339            (bfd_mach_o_scan_read_dylib): Ditto.
340            (bfd_mach_o_scan_read_thread): Set mdata at declaration.  Add comments,
341            reindent.
342            (bfd_mach_o_scan_read_dysymtab): Set mdata at declaration.  Correctly
343            decode isym and flags on little endian targets.  Set dysymtab field.
344            (bfd_mach_o_scan_start_address): Adjust for enum names.
345            (bfd_mach_o_lookup_section): Do not look for segments anymore.
346            (bfd_mach_o_print_section): Display bfd section name.
347            (bfd_mach_o_print_segment): Display none if no name.
348            (bfd_mach_o_print_dysymtab): Display next index for local, external
349            and undefined symbols.
350            (bfd_mach_o_bfd_print_private_bfd_data): Adjust code by using name_str.
351            Display dylinker name. Display thread and unixthread commands content.
352            (bfd_mach_o_print_thread): New macro.
353    
354            * mach-o.h (bfd_mach_o_mach_header_magic): Align numbers.
355            (bfd_mach_o_ppc_thread_flavour): Ditto.
356            (bfd_mach_o_i386_thread_flavour): Ditto.
357            (BFD_MACH_O_PPC_THREAD_STATE_NONE): New enum.
358            (BFD_MACH_O_x86_THREAD_STATE_NONE): Replaces
359            BFD_MACH_O_THREAD_STATE_NONE.
360            (bfd_mach_o_segment_command): Remove segment field.
361            (bfd_mach_o_thread_flavour): Field offset is now unsigned long.
362            (bfd_mach_o_dylinker_command): Remove section field, add name_str.
363            (bfd_mach_o_prebound_dylib_command): Ditto.
364            (bfd_mach_o_dylib_command): Ditto.
365            (bfd_mach_o_prebound_dylib_command): Remove section field.
366            (mach_o_data_struct): Add dysymtab field.
367            (bfd_mach_o_backend_data): Add _bfd_mach_o_print_thread field.
368            (bfd_mach_o_get_reloc_upper_bound, bfd_mach_o_canonicalize_reloc)
369            (bfd_mach_o_build_commands): Remove parameter names and attributes.
370            (bfd_mach_o_get_dynamic_reloc_upper_bound)
371            (bfd_mach_o_canonicalize_dynamic_reloc): New prototypes.
372    
373    2009-06-25  Rafael Avila de Espindola  <espindola@google.com>
374    
375            * plugin.c (load_plugin): Use stat and S_ISREG instead of the d_type
376            field of struct dirent.
377    
378    2009-06-23  Tristan Gingold  <gingold@adacore.com>
379    
380            * vms.c (vms_get_synthetic_symtab): Remove duplicate definition
381            of this macro.  Fix indentation.
382    
383    2009-06-22  Christophe Lyon  <christophe.lyon@st.com>
384    
385            * elf32-arm.c (elf32_arm_size_stubs): Use PLT address as
386            destination for defined dynamic symbols when deciding whether to
387            insert a stub or not.
388            (allocate_dynrelocs): Make sure functions are not marked as Thumb
389            when actually accessed through a PLT, even when generating a
390            shared lib.
391    
392    2009-06-22  Tristan Gingold  <gingold@adacore.com>
393    
394            * mach-o.c (bfd_mach_o_canonicalize_reloc): Append a sentinel to
395            the relocs array.
396    
397    2009-06-22  Alan Modra  <amodra@bigpond.net.au>
398    
399            * elf32-ppc.c (ppc_elf_check_relocs): Handle R_PPC_RELAX* in switch.
400            * elf32-v850.c (v850_elf_relocate_section): Warning fix.
401    
402    2009-06-22  Alan Modra  <amodra@bigpond.net.au>
403    
404            * elf64-ppc.c (ppc64_elf_edit_opd): Avoid gcc warning.
405    
406    2009-06-19  H.J. Lu  <hongjiu.lu@intel.com>
407    
408  2008-11-25  Joseph Myers  <joseph@codesourcery.com>          * elflink.c (elf_link_add_object_symbols): Avoid warning
409            from -Wjump-misses-init in gcc 4.5.0.
410    
411          * elf32-arm.c (elf32_arm_final_link_relocate): Do not turn  2009-06-19  H.J. Lu  <hongjiu.lu@intel.com>
412          branches to undefine weak symbols into branches to the next  
413          instruction if creating PLT entries for those symbols.          * elf32-i386.c (elf_i386_check_relocs): Properly check local
414            symbol on error.
 2008-11-25  Nick Clifton  <nickc@redhat.com>  
   
         * elflink.c (is_reloc_section): New function.  Returns true if the  
         given name matches the name of the reloc-containing section  
         associated with the given section.  
         (get_dynamic_reloc_section_name): New function.  Computes the name  
         of the section that contains the dynamic relocs associated with  
         the given section.  
         (_bfd_elf_get_dynamic_reloc_section): New function.  Returns a  
         pointer to the section containing the dynamic relocs associated  
         with the given section.  
         (_bfd_elf_make_dynamic_reloc_section): New function.  Creates a  
         section to contain the dynamic relocs associated with a given  
         section.  
         * elf-bfd.h: Prototype the new functions.  
         * elf-m10300.c (mn10300_elf_check_relocs): Use new functions.  
         (mn10300_elf_final_link_relocs): Likewise.  
         * elf32-arm.c (reloc_section_p): Delete - replaced by new  
         functions.  
         (elf32_arm_final_link_relocate): Use new functions.  
         (elf32_arm_check_relocs): Likewise.  
         * elf32-cris.c (cris_elf_relocate_section): Likewise.  
         (elf_cris_check_relocs): Likewise.  
         * elf32-hppa.c (elf32_hppa_check_relocs): Likewise.  
         * elf32-i370.c (i370_elf_check_relocs): Likewise.  
         (i370_elf_relocate_section): Likewise.  
         * elf32-i386.c (elf_i386_check_relocs): Likewise.  
         * elf32-m32r.c (m32r_elf_relocate_section): Likewise.  
         (m32r_elf_check_relocs): Likewise.  
         * elf32-m68k.c (elf_m68k_check_relocs): Likewise.  
         * elf32_ppc.c (ppc_elf_check_relocs): Likewise.  
         (ppc_elf_relocate_section): Likewise.  
         * elf32-s390.c (elf_s390_check_relocs): Likewise.  
         * elf32-sh.c (sh_elf_relocate_section): Likewise.  
         (sh_elf_check_relocs): Likewise.  
         * elf32-vax.c (elf_vax_check_relocs): Likewise.  
         (elf_vax_relocate_section): Likewise.  
         * elf64-alpha.c (elf64_alpha_check_relocs): Likewise.  
         * elf64-ppc.c (ppc64_elf_check_relocs): Likewise.  
         * elf64-s390.c (elf_s390_check_relocs): Likewise.  
         * elf64-sh64.c (sh_elf64_relocate_section): Likewise.  
415          * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.          * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
         * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise.  
         * elf32-bfin.c (bfin_check_relocs): Remove redundant local  
         variable 'sreloc'.  
         (bfin_relocate_section): Likewise.  
         * elf32-v850.c (v850_elf_check_relocs): Likewise.  
   
 2008-11-23  Hans-Peter Nilsson  <hp@axis.com>  
   
         Implement TLS for CRIS.  
         * elf32-cris.c: Include limits.h.  
         (TLSHOWTO16): Redefine in terms of and move contents to...  
         (TLSHOWTO16X): New macro.  
         (TLSHOWTO16S, LGOT_REG_NDX, LGOT_DTP_NDX, LGOT_ALLOC_NELTS_FOR)  
         (elf_cris_hash_entry): New macros.  
         (cris_elf_howto_table): Make R_CRIS_16_DTPREL,  
         R_CRIS_16_GOT_TPREL, R_CRIS_16_TPREL check overflow for signed,  
         not unsigned values.  
         (cris_info_to_howto_rela): Make r_type a enum elf_cris_reloc_type,  
         not unsigned int.  
         (struct elf_cris_link_hash_entry): New members reg_got_refcount,  
         tprel_refcount, and dtp_refcount.  
         (struct elf_cris_link_hash_table): New member dtpmod_refcount.  
         (elf_cris_link_hash_newfunc): Initialize new members.  
         (elf_cris_link_hash_table_create): Similar.  
         (cris_final_link_relocate, elf_cris_reloc_type_class): Use a  
         temporary variable when testing the relocation type.  
         (cris_elf_gc_mark_hook): Ditto.  Add default case where needed.  
         (cris_elf_gc_sweep_hook): Ditto.  Handle reference-counting for  
         the new assembly-generated relocs.  Rewrite refcount handling to  
         set temporary variables to pointers to reloc-specific variables  
         and entry size and common code for the update.  
         (additional_relocation_error_msg_count): New variable.  
         (cris_elf_relocate_section): Use a function-local variable srelgot  
         for the .rela.got section instead of looking it up for every need.  
         Make r_type a enum elf_cris_reloc_type, not int.  Actually set  
         symname for non-local symbols.  Handle new assembly-generated  
         relocs.  For overflow, emit additional messages for the new 16-bit  
         relocs as well as R_CRIS_16_GOTPLT and R_CRIS_16_GOT.  
         (elf_cris_finish_dynamic_symbol): Use elf_cris_finish_dynamic_symbol  
         instead of plain casts.  Check new hash entry member  
         reg_got_refcount when checking whether to emit a GOT entry.  
         (elf_cris_finish_dynamic_sections): Update head comment to warn  
         about emitting relocs here.  Use a temporary variable when testing  
         the relocation type.  
         (elf_cris_discard_excess_program_dynamics)  
         (elf_cris_adjust_gotplt_to_got): Handle reference counting change  
         regarding h->reg_got_refcount.  
         (cris_elf_check_relocs): Rewrite refcount handling to set  
         temporary variables and entry size and common code for the update  
         for local symbols.  Use new macro elf_cris_hash_entry.  Adjust  
         allocation for change in reference counting of GOT entries for  
         local symbols.  
         (elf_cris_size_dynamic_sections): Adjust calculated size of  
         .got.plt and .rela.got if we need a GOT entry for a  
         R_CRIS_DTPMOD relocation.  
         (elf_cris_got_elt_size): New function.  
         (elf_backend_got_elt_size): Define.  
   
 2008-11-21  Sterling Augustine  <sterling@tensilica.com>  
   
         * xtensa-isa.c (xtensa_state_is_shared_or): New function.  
   
 2008-11-21  Hans-Peter Nilsson  <hp@axis.com>  
   
         * elf-bfd.h (struct elf_backend_data): New member got_elt_size.  
         (_bfd_elf_default_got_elt_size): Declare.  
         * elflink.c (struct alloc_got_off_arg): Replace member got_elt_size  
         by new member info.  
         (elf_gc_allocate_got_offsets): Adjust for calling bed->got_elt_size  
         to get the element size instead of using a gofarg entry.  
         (bfd_elf_gc_common_finalize_got_offsets): Similar.  
         (_bfd_elf_default_got_elt_size): New function.  
         * elfxx-target.h: New macro elf_backend_got_elt_size.  
         (elfNN_bed): Use it.  
   
 2008-11-20  Tristan Gingold  <gingold@adacore.com>  
   
         * bfdwin.c: Fix comment.  
   
 2008-11-20  Tristan Gingold  <gingold@adacore.com>  
   
         * bfd.c (is32bit): Use architecture information for non-ELF  
         targets.  
   
 2008-11-20  Alan Modra  <amodra@bigpond.net.au>  
   
         * elf32-ppc.c (allocate_dynrelocs): Always use tlsld_got for  
         TLS_LD even when symbol is used with other TLS reloc types.  
         (ppc_elf_relocate_section): Bypass symbol checks when using tlsld_got.  
         Leave addend zero on LD DTPMOD dynamic reloc.  
   
 2008-11-19  Bob Wilson  <bob.wilson@acm.org>  
   
         * xtensa-modules.c (sysregs): Add MMID, VECBASE, EPC5, EPC6, EPC7,  
         EXCSAVE5, EXCSAVE6, EXCSAVE7, EPS5, EPS6, EPS7, CPENABLE,  
         SCOMPARE1, and THREADPTR registers.  
         (NUM_SYSREGS, MAX_USER_REG): Update.  
         (states): Change width of INTERRUPT, WindowBase, WindowStart, and  
         INTENABLE.  Add VECBASE, EPC5, EPC6, EPC7, EXCSAVE5, EXCSAVE6,  
         EXCSAVE7, EPS6, EPS6, EPS7, THREADPTR, CPENABLE, and SCOMPARE1 states.  
         (NUM_STATES): Update.  
         (enum xtensa_state_id): Add entries for new states.  
         (enum xtensa_field_id): Add entries for xt_wbr15_imm and xt_wbr18_imm  
         fields, along with functions to extract and set them.  
         (regfiles): Change number of AR registers to 32.  
         (Operand_ar0_encode, Operand_ar4_encode, Operand_ar8_encode,  
         Operand_ar12_encode, Operand_ars_entry_encode): Update register mask.  
         (operands): Add entries for tp7, xt_wbr15_label, xt_wbr18_label,  
         xt_wbr15_imm, and xt_wbr18_imm operands, along with functions to  
         encode and decode them.  
         (enum xtensa_operand_id): Add entries for new operands.  
         (Iclass_xt_iclass_rfi_stateArgs): Add EPC5, EPC6, EPC7, EPS5, EPS6, and  
         EPC7 states.  
         (Iclass_xt_iclass_rfdo_stateArgs): Replace EPC4 and EPS4 by EPC6 and  
         EPS6, respectively.  
         (iclasses): Add entries for rur_threadptr, wur_threadptr,  
         xt_iclass_wsr_176, xt_iclass_rsr_epc5, xt_iclass_wsr_epc5,  
         xt_iclass_xsr_epc5, xt_iclass_rsr_excsave5, xt_iclass_wsr_excsave5,  
         xt_iclass_xsr_excsave5, xt_iclass_rsr_epc6, xt_iclass_wsr_epc6,  
         xt_iclass_xsr_epc6, xt_iclass_rsr_excsave6, xt_iclass_wsr_excsave6,  
         xt_iclass_xsr_excsave6, xt_iclass_rsr_epc7, xt_iclass_wsr_epc7,  
         xt_iclass_xsr_epc7, xt_iclass_rsr_excsave7, xt_iclass_wsr_excsave7,  
         xt_iclass_xsr_excsave7, xt_iclass_rsr_eps5, xt_iclass_wsr_eps5,  
         xt_iclass_xsr_eps5, xt_iclass_rsr_eps6, xt_iclass_wsr_eps6,  
         xt_iclass_xsr_eps6, xt_iclass_rsr_eps7, xt_iclass_wsr_eps7,  
         xt_iclass_xsr_eps7, xt_iclass_rsr_vecbase, xt_iclass_wsr_vecbase,  
         xt_iclass_xsr_vecbase, xt_iclass_mul16, xt_iclass_wsr_mmid,  
         xt_iclass_icache_lock, xt_iclass_dcache_lock, xt_iclass_rsr_cpenable,  
         xt_iclass_wsr_cpenable, xt_iclass_xsr_cpenable, xt_iclass_clamp,  
         xt_iclass_minmax, xt_iclass_sx, xt_iclass_l32ai, xt_iclass_s32ri,  
         xt_iclass_s32c1i, xt_iclass_rsr_scompare1, xt_iclass_wsr_scompare1,  
         xt_iclass_xsr_scompare1, xt_iclass_div, and xt_iclass_mul32, along  
         with corresponding argument and state argument arrays.  Change  
         number of state arguments for xt_iclass_rfi.  Add arguments for  
         xt_iclass_rfdo.  
         (enum xtensa_iclass_id): Add entries for new iclasses.  
         (opcodes): Add entries for RUR_THREADPTR, WUR_THREADPTR, WSR_176,  
         RSR_EPC5, WSR_EPC5, XSR_EPC5, RSR_EXCSAVE5, WSR_EXCSAVE5, XSR_EXCSAVE5,  
         RSR_EPC6, WSR_EPC6, XSR_EPC6, RSR_EXCSAVE6, WSR_EXCSAVE6, XSR_EXCSAVE6,  
         RSR_EPC7, WSR_EPC7, XSR_EPC7, RSR_EXCSAVE7, WSR_EXCSAVE7, XSR_EXCSAVE7,  
         RSR_EPS5, WSR_EPS5, XSR_EPS5, RSR_EPS6, WSR_EPS6, XSR_EPS6, RSR_EPS7,  
         WSR_EPS7, XSR_EPS7, RSR_VECBASE, WSR_VECBASE, XSR_VECBASE, MUL16U,  
         MUL16S, WSR_MMID, IPFL, IHU, IIU, DPFL, DHU, DIU, RSR_CPENABLE,  
         WSR_CPENABLE, XSR_CPENABLE, CLAMPS, MIN, MAX, MINU, MAXU, SEXT, L32AI,  
         S32RI, S32C1I, RSR_SCOMPARE1, WSR_SCOMPARE1, XSR_SCOMPARE1, QUOU, QUOS,  
         REMU, REMS, and MULL opcodes, along with the corresponding functions  
         to encode them.  
         (enum xtensa_opcode_id): Add entries for new opcodes.  
         (Slot_inst_decode): Handle new opcodes.  
         (Slot_inst_get_field_fns, Slot_inst_set_field_fns): Add entries for  
         xt_wbr15_imm and xt_wbr18_imm fields.  
         (Slot_inst16a_get_field_fns, Slot_inst16a_set_field_fns): Likewise.  
         (Slot_inst16b_get_field_fns, Slot_inst16b_set_field_fns): Likewise.  
         (xtensa_modules): Update number of fields, operands, iclasses and  
         opcodes.  
   
 2008-11-19  Nix  <nix@esperi.org.uk>  
   
         * elf.c (swap_out_syms) [USE_STT_COMMON]: Fix syntax error.  
   
 2008-11-19  Nick Clifton  <nickc@redhat.com>  
   
         PR 7027  
         * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Treat WPLT30 relocs  
         against local symbols in 64-bit binaries as if they were WDISP30  
         relocs.  
         (_bfd_sparc_elf_relocate_section): Likewise.  
416    
417  2008-11-18  Catherine Moore  <clm@codesourcery.com>  2009-06-19  H.J. Lu  <hongjiu.lu@intel.com>
418    
419          * elf32-arm.c (elf32_arm_merge_eabi_attributes): Merge          * elf32-i386.c (elf_i386_tls_transition): Add a parameter,
420          half-precision attributes.          r_symndx.  Report local symbol name on error.
421          (elf32_arm_copy_one_eabi_other_attribute): New.          (elf_i386_check_relocs): Updated.  Report local symbol name on
422          (elf32_arm_copy_other_attribute_list): New.          error.
423            (elf_i386_gc_sweep_hook): Updated.
424            (elf_i386_relocate_section): Likewise.
425    
426  2008-11-18  Nick Clifton  <nickc@redhat.com>          * elf64-x86-64.c (elf64_x86_64_tls_transition): Add a parameter,
427            r_symndx.  Report local symbol name on error.
428            (elf64_x86_64_check_relocs): Updated.  Report local symbol name
429            on error.
430            (elf64_x86_64_gc_sweep_hook): Updated.
431            (elf64_x86_64_relocate_section): Likewise.
432    
433          * dwarf2.c (read_section): Fix formatting.  2009-06-19  Tristan Gingold  <gingold@adacore.com>
         (read_n_bytes): Remove unhelpful comment.  
         (read_indirect_string): Pass symbol table to read_section in case  
         the .debug_str section needs relocating.  
434    
435          PR 7037          * mach-o.c (bfd_mach_o_print_private_header): Fix format character.
         * elf32-cr16.c (cr16_elf_howto_table): Zero the src_mask field of  
         the reloc descriptions.  
436    
437  2008-11-14  Eric B. Weddington  <eric.weddington@atmel.com>  2009-06-19  Tristan Gingold  <gingold@adacore.com>
438    
439          PR 7022          * mach-o.c (bfd_mach_o_scan_read_symtab_symbols): Add prototype.
440          * elf32-avr.c (bfd_elf_avr_final_write_processing):          (bfd_mach_o_version): Use bfd_mach_o_get_data instead of direct access.
441          Add missing break statements.          (bfd_mach_o_valid): Ditto.
442            (bfd_mach_o_wide_p): Ditto.
443  2008-11-14  Bob Wilson  <bob.wilson@acm.org>          (bfd_mach_o_canonicalize_reloc): Ditto.
444            (bfd_mach_o_build_commands): Ditto.
445          * xtensa-modules.c (xtensa_state_id): New enum, replacing STATE macros.          (bfd_mach_o_scan_read_thread): Ditto.
446          (xtensa_field_id, xtensa_regfile_id, xtensa_operand_id)          (bfd_mach_o_flatten_sections): Ditto.
447          (xtensa_iclass_id, xtensa_opcode_id): New enums.          (bfd_mach_o_scan_start_address): Ditto.
448          Replace hardcoded constants throughout this file with enum values.          (bfd_mach_o_lookup_section): Ditto.
449            (bfd_mach_o_core_fetch_environment): Ditto.
450  2008-11-14  Nathan Sidwell  <nathan@codesourcery.com>          (bfd_mach_o_write_contents): Ditto.  Handle reexport_dylib.
451            (bfd_mach_o_scan_write_relocs): Adjust for bfd_mach_o_get_data.
452          * elf.c (assign_file_positions_for_load_sections): Use header_size          (bfd_mach_o_scan_write_symtab): Ditto.
453          to avoid moving the load address of file headers.          Use macros instead of hard-coded values.
454          (assign_file_positions_for_load_sections): Set header_size for          (bfd_mach_o_scan_read_symtab_symbol): Make the function static.
455          segments containing the file header.          Use bfd_mach_o_get_data instead of direct access.  Use macros
456            instead of hard-coded values.
457  2008-11-14  Tristan Gingold  <gingold@adacore.com>          (bfd_mach_o_scan_read_symtab_strtab): Make the function static.
458            Remove sym argument and get section from mdata.
459          * configure.com: Handle bfd_default_target_size, BFD_HOST_LONG_LONG,          Move code into the else branch.
460          BFD_HOST_64BIT_LONG_LONG, BFD_HOSTPTR_T, bfd_file_ptr.          (bfd_mach_o_scan_read_symtab_symbols): Make the function static.
461          Generate bfdver.h.          Remove sym argument and get section from mdata.  Adjust code.
462          * vms-hdr.c (_bfd_vms_write_hdr): Use strdup/free instead of alloca.          (bfd_mach_o_scan_read_dylib): Move assertion into the created
463          * hosts/alphavms.h: Defines macros to bypass i18n.          switch (which replaces consecutive if statements).
464          * makefile.vms (OBJS): Update file list.          (bfd_mach_o_scan_read_dysymtab): Rename seg to cmd.  Load
465          (DEFS): Remove VMS_DEBUG, const, add DEBUGDIR.          module table, table of content, indirect symbols and external
466          (CFLAGS): Update flags.          referenced symbols.
467          * bfdio.c (real_fopen): Add code specific to VMS: extract attributes          (bfd_mach_o_scan_read_symtab): Renames seg to symtab.  Set symtab
468          from modes.          field.
469            (bfd_mach_o_scan_read_linkedit): New function.
470            (bfd_mach_o_scan_read_str): Ditto.
471            (bfd_mach_o_count_symbols): Simplify the code by using the symtab
472            field of mdata.
473            (bfd_mach_o_get_symtab_upper_bound): Remove check as
474            bfd_mach_o_count_symbols never returns an error.
475            (bfd_mach_o_canonicalize_symtab): Simplify the code by using the
476            symtab field (there might be only one symtab).
477            (bfd_mach_o_scan_read_command): Handle reexported dylib.
478            Handle sub frameworks, sub umbrella, sub library and sub client.
479            Read code signature and segment split info commands.
480            (bfd_mach_o_scan): Reindent.
481            (bfd_mach_o_xlat_name): New type.
482            (bfd_mach_o_print_flags): New function.
483            (bfd_mach_o_get_name): Ditto.
484            (bfd_mach_o_cpu_name): New variable.
485            (bfd_mach_o_filetype_name, bfd_mach_o_header_flags_name)
486            (bfd_mach_o_section_type_name)
487            (bfd_mach_o_section_attribute_name)
488            (bfd_mach_o_load_command_name): New variables.
489            (bfd_mach_o_print_private_header): New function.
490            (bfd_mach_o_print_section_map): New function extracted from
491            bfd_mach_o_print_private_bfd_data.
492            (bfd_mach_o_print_section): Ditto.  Print more infos.
493            (bfd_mach_o_print_segment): Ditto.
494            (bfd_mach_o_print_dysymtab): Ditto.
495            (bfd_mach_o_bfd_print_private_bfd_data): Reworked.  Handle
496            load weak dylib, reexport dylib and id dylib.
497            Handle code signature and segment_split info.
498            Handle sub frameworks, sub umbrella, sub library and sub client.
499            (bfd_mach_o_section_get_nbr_indirect): New function.
500    
501            * mach-o.h (BFD_MACH_O_REFERENCE_MASK): New macro.  Add comment.
502            (bfd_mach_o_header_flags): New enum to define header flags.
503            (bfd_mach_o_section_attribute): New enum to replace ...
504            (BFD_MACH_O_S_ATTR_LOC_RELOC, BFD_MACH_O_S_ATTR_EXT_RELOC,
505            BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS, BFD_MACH_O_S_ATTR_DEBUG,
506            BFD_MACH_O_S_SELF_MODIFYING_CODE, BFD_MACH_O_S_ATTR_LIVE_SUPPORT,
507            BFD_MACH_O_S_ATTR_NO_DEAD_STRIP, BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS,
508            BFD_MACH_O_S_ATTR_NO_TOC, BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS): ...
509            these removed macros.
510            (BFD_MACH_O_NLIST_SIZE, BFD_MACH_O_NLIST_64_SIZE): New macros.
511            (bfd_mach_o_dylib_module): New type.
512            (BFD_MACH_O_DYLIB_MODULE_SIZE, BFD_MACH_O_DYLIB_MODULE_64_SIZE): New
513            macros.
514            (bfd_mach_o_dylib_table_of_content): New type.
515            (BFD_MACH_O_TABLE_OF_CONTENT_SIZE): New macro.
516            (bfd_mach_o_dylib_reference): New type.
517            (BFD_MACH_O_REFERENCE_SIZE): New macro.
518            (bfd_mach_o_dysymtab_command): Add fields for loaded and decoded
519            modules, toc, references and indirect syms.
520            (BFD_MACH_O_INDIRECT_SYMBOL_SIZE): New macro.
521            (bfd_mach_o_dylinker_command): Remove cmd and cmdsize fields (were
522            unused).  Add comment.
523            (bfd_mach_o_dylib_command): Ditto.
524            (bfd_mach_o_prebound_dylib_command): Ditto.
525            (bfd_mach_o_linkedit_command): New type.
526            (bfd_mach_o_str_command): New type.
527            (bfd_mach_o_load_command): Add linkedit and str fields.
528            (mach_o_data_struct): Add symtab field.
529            (bfd_get_mach_o_data): Renamed to ...
530            (bfd_mach_o_get_data): ... this new macro.
531            (bfd_mach_o_scan_read_symtab_symbol,
532            bfd_mach_o_scan_read_symtab_strtab,
533            bfd_mach_o_scan_read_symtab_symbols): Prototypes removed.
534    
535  2008-11-13  Joel Brobecker  <brobecker@adacore.com>          * mach-o-i386.c (bfd_mach_o_i386_mkobject): Use bfd_mach_o_get_data
536            instead of direct access.
537    
538          * configure.in: Deactivate large-file support on native 32bit  2009-06-19  Alan Modra  <amodra@bigpond.net.au>
         sparc-solaris unless the user explicitly requested it.  
         * configure: Regenerate.  
539    
540  2008-11-13  Hans-Peter Nilsson  <hp@axis.com>          * elf32-ppc.c (ppc_elf_check_relocs): Allow local symbols for
541            R_PPC_PLTREL24 relocs.
542            (ppc_elf_relocate_section): Likewise.
543    
544          PR ld/7028  2009-06-19  Alan Modra  <amodra@bigpond.net.au>
         * elf.c (assign_file_positions_for_load_sections): Allocate phrds  
         with bfd_zalloc2 instead of bfd_alloc2.  For the amount, use  
         the possibly-preset header-size, not the computed one.  
545    
546  2008-11-13  Alan Modra  <amodra@bigpond.net.au>          * elf32-ppc.c (find_plt_ent): Pass pointer to plist rather than
547            pointer to sym hash.  Update all uses.
548            (update_plt_info): Likewise.  Don't check addend here.
549    
550          PR 7023  2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
         * elf.c (bfd_section_from_shdr <SHT_SYMTAB>): Fail on invalid sh_info.  
551    
552  2008-11-11  Alan Modra  <amodra@bigpond.net.au>          * elf32-i386.c (elf_i386_check_relocs): Remove isymbuf and use
553            bfd_sym_from_r_symndx.
554            * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
555    
556          * elf.c (assign_file_positions_for_non_load_sections): Consolidate  2009-06-18  Alan Modra  <amodra@bigpond.net.au>
         PT_GNU_RELRO handling.  
557    
558  2008-11-11  Alan Modra  <amodra@bigpond.net.au>          * elf-bfd.h (struct sym_sec_cache): Delete.
559            (struct sym_cache): New.
560            (bfd_section_from_r_symndx): Delete prototype.
561            (bfd_sym_from_r_symndx): Define prototype.
562            * elf.c (bfd_section_from_r_symndx): Delete, replace with..
563            (bfd_sym_from_r_symndx): ..new function.
564            * elf32-arm.c: Update all uses of struct sym_sec_cache and
565            bfd_section_from_r_symndx to new struct and function.
566            * elf32-bfin.c: Likewise.
567            * elf32-hppa.c: Likewise.
568            * elf32-i386.c: Likewise.
569            * elf32-m32r.c: Likewise.
570            * elf32-m68hc1x.c: Likewise.
571            * elf32-m68hc1x.h: Likewise.
572            * elf32-m68k.c: Likewise.
573            * elf32-ppc.c: Likewise.
574            * elf32-s390.c: Likewise.
575            * elf32-sh.c: Likewise.
576            * elf64-ppc.c: Likewise.
577            * elf64-s390.c: Likewise.
578            * elf64-x86-64.c: Likewise.
579            * elfxx-sparc.c: Likewise.
580            * elfxx-sparc.h: Likewise.
581    
582          PR 7012  2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
         * dwarf2.c (find_line): Don't keep stale pointers into realloc'd  
         memory.  Return on errors.  Fix memory leak.  
         (_bfd_dwarf2_cleanup_debug_info): Free dwarf_str_buffer.  
583    
584  2008-11-10  Andreas Schwab  <schwab@suse.de>          * elf32-i386.c (elf_i386_check_relocs): Cache or free isymbuf.
585            * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
586    
587          PR 7011  2009-06-18  Nick Clifton  <nickc@redhat.com>
         * elf.c (assign_file_positions_for_non_load_sections): Handle  
         PT_GNU_RELRO specially.  
588    
589  2008-11-06  Joel Sherrill <joel.sherrill@oarcorp.com>          * elflink.c (elf_link_sort_relocs): Return early if there are no
590            relocs to sort.
591    
592          * config.bfd: Add m32c-*-rtems* and m32r-*-rtems*.  2009-06-18  Dave Korn  <dave.korn.cygwin@gmail.com>
593    
594  2008-11-06  Tom Tromey  <tromey@redhat.com>          Merge cegcc and mingw32ce target name changes from
595            CeGCC project:
596    
597          * configure, config.in: Rebuild.          2007-12-25  Pedro Alves  <pedro_alves@portugalmail.pt>
         * configure.in: Check for fileno.  
         * bfdio.c (close_on_exec): New function.  
         (real_fopen): Use it.  
         (FD_CLOEXEC): New define.  
598    
599  2008-11-06  Tristan Gingold  <gingold@adacore.com>          * config.bfd: Add arm*-*-cegcc* target.
600    
601          * mach-o.h (BFD_MACH_O_NO_SECT): Add; reorders the macros.          2007-12-17  Pedro Alves  <pedro_alves@portugalmail.pt>
         (BFD_MACH_O_SYM_NTYPE, BFD_MACH_O_SYM_NSECT,  
         BFD_MACH_O_SYM_NDESC): New macros.  
         (bfd_mach_o_i386_thread_flavour): Define according to the latest  
         definition from system header.  
         (bfd_mach_o_load_command_type): Add BFD_MACH_O_LC_RPATH,  
         BFD_MACH_O_LC_CODE_SIGNATURE.  
         (BFD_MACH_O_SECTION_TYPE_MASK, BFD_MACH_O_SECTION_ATTRIBUTES_MASK,  
         BFD_MACH_O_SECTION_ATTRIBUTES_SYS, BFD_MACH_O_SECTION_ATTRIBUTES_USR,  
         BFD_MACH_O_S_ATTR_LOC_RELOC, BFD_MACH_O_S_ATTR_EXT_RELOC,  
         BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS, BFD_MACH_O_S_ATTR_DEBUG,  
         BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS): Add.  
         (bfd_mach_o_segment_command): Add room for a nul terminator in  
         segname field.  
         (BFD_MACH_O_PROT_READ, BFD_MACH_O_PROT_WRITE,  
         BFD_MACH_O_PROT_EXECUTE): Add.  
         (INDIRECT_SYMBOL_LOCAL): Renames to BFD_MACH_O_INDIRECT_SYMBOL_LOCAL.  
         (INDIRECT_SYMBOL_ABS): Renames to BFD_MACH_O_INDIRECT_SYMBOL_ABS.  
         (bfd_mach_o_uuid_command): Add the structure.  
         (bfd_mach_o_load_command): Add uuid field.  
         (bfd_get_mach_o_data): New macro.  
         * mach-o.c (bfd_mach_o_bfd_print_private_bfd_data): New function which  
         replaces the macro.  
         (SECTION_TYPE, SECTION_ATTRIBUTES, SECTION_ATTRIBUTES_USR,  
         S_ATTR_PURE_INSTRUCTIONS, SECTION_ATTRIBUTES_SYS,  
         S_ATTR_SOME_INSTRUCTIONS, S_ATTR_EXT_RELOC, S_ATTR_LOC_RELOC): Renamed  
         and moved to mach-o.h.  
         (N_STAB, N_TYPE, N_EXT, N_UNDF, N_ABS, N_TEXT, N_DATA, N_BSS,  
         N_SECT, N_INDR): Removed as they duplicated macros in mach-o.h.  
         (bfd_mach_o_print_symbol): Print much more details.  
         (bfd_mach_o_make_bfd_section): Add prot argument, use canonical  
         dwarf name for dwarf sections.  Precisely set section flags.  
         (bfd_mach_o_scan_read_section_32): Add prot argument.  
         (bfd_mach_o_scan_read_section_64): Ditto.  
         (bfd_mach_o_scan_read_section): Ditto.  
         (bfd_mach_o_scan_read_symtab_symbol): Set section for debugging  
         stabs, set BSF_GLOBAL and LOCAL flags correctly.  Fix section  
         for N_SECT symbols.  
         (bfd_mach_o_i386_flavour_string): Reindent and adjust for new  
         names.  
         (bfd_mach_o_scan_read_symtab): Set HAS_SYMS flags on bfd if there  
         are symbols.  
         (bfd_mach_o_scan_read_uuid): New function.  
         (bfd_mach_o_scan_read_segment): Add a trailing nul.  Segments  
         flags are now simply HAS_CONTENTS.  Pass protection to  
         bfd_mach_o_scan_read_section.  
         (bfd_mach_o_scan_read_command): Decode UUID command.  
         (bfd_mach_o_flatten_sections): Add comments.  Fix flavour names.  
         (bfd_mach_o_scan): Set flags according to file type.  
         (mach_o_fat_archentry): Remove abfd field.  
         (bfd_mach_o_archive_p): Remove initialization of abfd field.  
         (bfd_mach_o_openr_next_archived_file): Find previous archive  
         by position and not by bfd (as former bfds may have been freed).  
         Give architecture name to archived file.  
         * mach-o-target.c (TARGET_NAME): Use generic archive for non fat  
         targets.  
   
 2008-10-30  Jay Krell  <jay.krell@cornell.edu>  
   
         * cache.c (cache_bread): Cast void * pointer before performing  
         arithmetic on it.  
   
 2008-10-20  Alan Modra  <amodra@bigpond.net.au>  
   
         * elf64-ppc.c (ppc64_elf_process_dot_syms): Renamed from  
         ppc64_elf_check_directives.  
         * elf32-sh-symbian.c (sh_symbian_process_directives): Combine..  
         (sh_symbian_check_directives): ..this  
         (bfd_elf32_sh_symbian_process_directives) ..and this function.  
   
 2008-10-20  Alan Modra  <amodra@bigpond.net.au>  
   
         * elflink.c (bfd_elf_final_link): Move code reading relocs to..  
         * elf32-spu.c (spu_elf_count_relocs): ..here.  Adjust params.  
         * elf-bfd.h (struct elf_backend_data): Update elf_backend_count_relocs  
         params.  
   
 2008-10-20  Alan Modra  <amodra@bigpond.net.au>  
   
         * elflink.c (bfd_elf_final_link): Use d_ptr rather than d_val  
         where Elf_Internal_Dyn holds an address.  
   
 2008-10-10  Nathan Froyd  <froydnj@codesourcery.com>  
   
         * elf32-ppc.c (ppc_elf_merge_obj_attributes): Merge  
         Tag_GNU_Power_ABI_Struct_Return.  
   
 2008-10-09  Kai Tietz  <kai.tietz@onevision.com>  
   
         * cofflink.c (_bfd_coff_generic_relocate_section): Dump bfd_vma  
         sized addresses instead of long sized.  
602    
603  2008-10-09  Alan Modra  <amodra@bigpond.net.au>          * config.bfd: Add arm-*-mingw32ce* target.
604    
605          * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't attempt to  2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
         read plt relocs if no dynamic syms.  
606    
607  2008-10-08  Nick Clifton  <nickc@redhat.com>          * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): New.
608            * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Likewise.
609            * elf32-i386.c (elf_i386_allocate_dynrelocs): Use it.
610            * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
611    
612          * configure.in (ALL_LINGUAS): Add "id".  2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
         * configure: Regenerate.  
         * po/id.po: New Indonesian translation.  
613    
614  2008-10-08  Alan Modra  <amodra@bigpond.net.au>          * elf-bfd.h (_bfd_elf_create_ifunc_dyn_reloc): New.
615            * elf-ifunc.c (_bfd_elf_create_ifunc_dyn_reloc): Likewise.
616            * elf32-i386.c (elf_i386_check_relocs): Use it.
617            * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
618    
619          * elf.c (assign_file_positions_for_load_sections): When checking  2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
         a segment for contents, don't assume that a non-TLS nobits section  
         must only be followed by nobits sections.  
   
 2008-10-04  Hans-Peter Nilsson  <hp@axis.com>  
   
         * elf32-cris.c (TLSHOWTO32, TLSHOWTO16): New macros.  
         (cris_elf_howto_table): Add entries for R_CRIS_32_GOT_GD,  
         R_CRIS_16_GOT_GD, R_CRIS_32_GD, R_CRIS_DTP, R_CRIS_32_DTPREL,  
         R_CRIS_16_DTPREL, R_CRIS_DTPMOD, R_CRIS_32_GOT_TPREL,  
         R_CRIS_16_GOT_TPREL,  R_CRIS_32_TPREL,  R_CRIS_16_TPREL.  
         (cris_reloc_map): Similarly.  
         * reloc.c (bfd_reloc_code_type): Add entries for  
         BFD_RELOC_CRIS_32_GOT_GD, BFD_RELOC_CRIS_16_GOT_GD,  
         BFD_RELOC_CRIS_32_GD, BFD_RELOC_CRIS_DTP,  
         BFD_RELOC_CRIS_32_DTPREL, BFD_RELOC_CRIS_16_DTPREL,  
         BFD_RELOC_CRIS_DTPMOD, BFD_RELOC_CRIS_32_GOT_TPREL,  
         BFD_RELOC_CRIS_16_GOT_TPREL, BFD_RELOC_CRIS_32_TPREL,  
         BFD_RELOC_CRIS_16_TPREL.  
         * libbfd.h, bfd-in2.h: Regenerate.  
   
 2008-10-03  Alan Modra  <amodra@bigpond.net.au>  
   
         PR 6931  
         * elf.c (bfd_elf_set_group_contents): Assign sh_info for ld -r when  
         the signature symbol is global.  
         * elflink.c (elf_link_input_bfd): Ensure group signature symbol  
         is output when ld -r.  Set group sh_info when local.  
         * linker.c (default_indirect_link_order): Handle group sections  
         specially.  
620    
621  2008-09-30  Wesley W. Terpstra  <wesley@terpstra.ca>          * elf-bfd.h (elf_dyn_relocs): New.
             Nick Clifton  <nickc@redhat.com>  
622    
623          * coffgen.c (coff_write_symbols): Check to see if a symbol's flags          * elf32-i386.c (elf_i386_dyn_relocs): Removed.
624          do not match it class and if necessary update the class.          (elf_i386_link_hash_entry): Replace elf_i386_dyn_relocs with
625          (null_error_handler): New function.  Suppresses the generation of          elf_dyn_relocs.
626          bfd error messages.          (elf_i386_copy_indirect_symbol): Likewise.
627          * coff64-rs6000.c (bfd_xcoff_backend_data): Update comment.          (elf_i386_check_relocs): Likewise.
628            (elf_i386_gc_sweep_hook): Likewise.
629            (elf_i386_allocate_dynrelocs): Likewise.
630            (elf_i386_readonly_dynrelocs): Likewise.
631            (elf_i386_size_dynamic_sections): Likewise.
632    
633  2008-09-30  Alan Modra  <amodra@bigpond.net.au>          * elf64-x86-64.c (elf64_x86_64_dyn_relocs): Removed.
634            (elf64_x86_64_link_hash_entry): Replace elf64_x86_64_dyn_relocs
635            with elf_dyn_relocs.
636            (elf64_x86_64_copy_indirect_symbol): Updated.
637            (elf64_x86_64_check_relocs): Likewise.
638            (elf64_x86_64_gc_sweep_hook): Likewise.
639            (elf64_x86_64_adjust_dynamic_symbol): Likewise.
640            (elf64_x86_64_allocate_dynrelocs): Likewise.
641            (elf64_x86_64_readonly_dynrelocs): Likewise.
642            (elf64_x86_64_size_dynamic_sections): Likewise.
643    
644          * Makefile.am: Run "make dep-am".  2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
         * Makefile.in: Regenerate.  
645    
646  2008-09-30  Alan Modra  <amodra@bigpond.net.au>          * elf32-arm.c (create_got_section): Get existing .rela.got
647            section.
648            * elf32-hppa.c (elf32_hppa_create_dynamic_sections): Likewise.
649            * elf32-lm32.c (create_got_section): Likewise.
650            * elf32-m32r.c (create_got_section): Likewise.
651            * elf32-ppc.c (ppc_elf_create_got): Likewise.
652            * elf32-s390.c (create_got_section): Likewise.
653            * elf32-sh.c (create_got_section): Likewise.
654            * elf32-xtensa.c (elf_xtensa_create_dynamic_sections): Likewise.
655            * elf64-s390.c (create_got_section): Likewise.
656            * elfxx-sparc.c (create_got_section): Likewise.
657    
658            * elflink.c (_bfd_elf_create_got_section): Properly initialize
659            the GOT size.
660    
661    2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
662    
663            * elf-bfd.h (ELF_LOCAL_SYMBOL_HASH): New.
664    
665            * elf32-i386.c (elf_i386_local_hash): Removed.
666            (elf_i386_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH.
667            (elf_i386_get_local_sym_hash): Likewise.
668    
669            * elf64-x86-64.c (elf64_x86_64_local_hash): Removed.
670            (elf64_x86_64_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH.
671            (elf64_x86_64_get_local_sym_hash): Likewise.
672            * elfxx-ia64.c (elfNN_ia64_local_htab_hash): Likewise.
673            (get_local_sym_hash): Likewise.
674    
675    2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
676    
677            * elfxx-ia64.c (elfNN_ia64_link_hash_table): Remove got_sec,
678            rel_got_sec and plt_sec.
679            (elfNN_ia64_relax_section): Updated.
680            (elfNN_ia64_create_dynamic_sections): Likewise.
681            (get_got): Likewise.
682            (allocate_dynrel_entries): Likewise.
683            (elfNN_ia64_size_dynamic_sections): Likewise.
684            (set_got_entry): Likewise.
685            (elfNN_ia64_choose_gp): Likewise.
686            (elfNN_ia64_relocate_section): Likewise.
687            (elfNN_ia64_finish_dynamic_symbol): Likewise.
688            (elfNN_ia64_finish_dynamic_sections): Likewise.
689    
690          * elflink.c (elf_link_add_object_symbols): Don't ignore returned  2009-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
         value of check_directives.  
691    
692  2008-09-29  Peter O'Gorman  <pogma@thewrittenword.com>          * elf32-spu.c (needs_ovl_stub): Respect .brinfo lrlive bits
693              Steve Ellcey  <sje@cup.hp.com>          also for calls.
694    
695          * configure: Regenerate for new libtool.  2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
         * aclocal.m4: Ditto.  
         * Makefile.in: Ditto.  
         * doc/Makefile.in: Ditto.  
696    
697  2008-09-29  Alan Modra  <amodra@bigpond.net.au>          * configure.in (elf): Add elf-ifunc.lo.
698    
699          PR 6789          * configure: Regenerated.
700          * elf.c (assign_file_positions_for_load_sections): Call          * Makefile.in: Likewise.
         _bfd_elf_map_sections_to_segments, not elf_modify_segment_map.  
         (get_program_header_size): Protect against NULL info.  
         (_bfd_elf_map_sections_to_segments): Likewise.  
         * elf32-spu.c (spu_elf_additional_program_headers): Likewise.  
701    
702  2008-09-29  Nick Clifton  <nickc@redhat.com>          * elf-bfd.h (elf_link_hash_table): Add sgot, sgotplt,
703            srelgot, splt, srelplt, igotplt, iplt, irelplt and irelifunc.
704    
705          * po/vi.po: Updated Vietnamese translation.          * elf32-i386.c (elf_i386_link_hash_table): Remove sgot,
706            sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and
707            irelifunc.
708            (elf_i386_link_hash_table_create): Likewise.
709            (elf_i386_create_dynamic_sections): Likewise.
710            (elf_i386_check_relocs): Likewise.
711            (elf_i386_allocate_dynrelocs): Likewise.
712            (elf_i386_size_dynamic_sections): Likewise.
713            (elf_i386_relocate_section): Likewise.
714            (elf_i386_finish_dynamic_symbol): Likewise.
715            (elf_i386_finish_dynamic_sections): Likewise.
716            (elf_i386_create_got_section): Removed.
717    
718            * elf64-x86-64.c (elf64_x86_64_link_hash_table): Remove sgot,
719            sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and
720            irelifunc.
721            (elf64_x86_64_compute_jump_table_size): Updated.
722            (elf64_x86_64_link_hash_table_create): Likewise.
723            (elf64_x86_64_create_dynamic_sections): Likewise.
724            (elf64_x86_64_check_relocs): Likewise.
725            (elf64_x86_64_allocate_dynrelocs): Likewise.
726            (elf64_x86_64_size_dynamic_sections): Likewise.
727            (elf64_x86_64_relocate_section): Likewise.
728            (elf64_x86_64_finish_dynamic_symbol): Likewise.
729            (elf64_x86_64_finish_dynamic_sections): Likewise.
730            (elf64_x86_64_create_got_section): Removed.
731    
732  2008-09-28  Alan Modra  <amodra@bigpond.net.au>          * elflink.c (_bfd_elf_create_got_section): Use log_file_align
733            for pointer alignment.  Set up section pointers.
734            (_bfd_elf_create_dynamic_sections): Likewise.
735            (_bfd_elf_create_ifunc_sections): Moved to ...
736            * elf-ifunc.c: Here.  New.
737    
738          * elf.c (_bfd_elf_init_private_section_data): Tweak union copy.          * Makefile.am (BFD32_BACKENDS): Add elf-ifunc.lo.
739          (bfd_section_from_shdr): Don't change SHT_GROUP section name.          (BFD32_BACKENDS_CFILES): Add elf-ifunc.c.
740          * elflink.c (section_signature): New function.          Run "make dep-am".
         (_bfd_elf_section_already_linked): Use it.  
741    
742  2008-09-19  Alan Modra  <amodra@bigpond.net.au>  2009-06-16  Doug Kwan  <dougkwan@google.com>
743    
744          * elf32-ppc.c (ppc_elf_finish_dynamic_sections): Handle vxworks          * elf32-arm.c (cortex_a8_erratum_scan): Change type of offset
745          _GLOBAL_OFFSET_TABLE_ in .got.plt section.  Add BFD_ASSERTs.          to bfd_signed_vma.  Cast constant operands which are used in
746            offset related expressions to bfd_signed_vma type as appropriate.
747    
748  2008-09-17  Bob Wilson  <bob.wilson@acm.org>  2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
749    
750          * elf32-xtensa.c (elf_xtensa_check_relocs): Check for negative          * elf32-vax.c (elf_vax_plt_sym_val): New function.
751          refcount.          (elf_backend_plt_sym_val): Define.
752    
753  2008-09-17  Jan Kratochvil  <jan.kratochvil@redhat.com>  2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
754    
755          PR 6893 - Do not consider FDEs for discarded sections as invalid.          * elf32-vax.c (elf_vax_reloc_type_class): New function.
756          * elf-eh-frame.c (_bfd_elf_parse_eh_frame): New REQUIRE_CLEARED_RELOCS.          (elf_backend_reloc_type_class): Define.
         Consider FDEs with cleared relocations as valid and ignorable.  
757    
758  2008-09-16  H.J. Lu  <hongjiu.lu@intel.com>  2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
759    
760          PR ld/6877          * elf32-vax.c (elf_vax_relocate_section): For symbol references
761          * elflink.c (_bfd_elf_merge_symbol): Allow a common symbol to          from an executable to a shared library treat R_VAX_PC32
762          override the function in a shared library.          relocations as R_VAX_PLT32 ones.
763    
764  2008-09-16  Alan Modra  <amodra@bigpond.net.au>  2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
765    
766          PR 6844          * elf32-vax.c (elf_vax_instantiate_got_entries): Skip local
767          * elf32-ppc.c (SYM_VAL): Define.  Use throughout to find symbol vma.          symbols in GOT space calculation.
768          (ppc_elf_relocate_section): Correct GOT offset calculation.          (elf_vax_relocate_section): Adjust accordingly.
769          (ppc_elf_finish_dynamic_symbol): Use PPC_HA and PPC_LO.  
770          (ppc_elf_finish_dynamic_sections): Likewise.  Error if  2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
771          htab->elf.hgot symbol is not defined in htab->got section.  
772            * elf32-vax.c (elf_vax_plt_entry): Set the entry mask to
773            include <R11:R2>.
774    
775    2009-06-16  Maciej W. Rozycki  <macro@linux-mips.org>
776    
777            * elf32-vax.c (elf_vax_check_relocs): Handle the visibility
778            attribute.
779            (elf_vax_relocate_section): Likewise.
780    
781  2008-09-16  Alan Modra  <amodra@bigpond.net.au>  2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>
782    
783          PR 6888          * elf32-i386.c (elf_i386_allocate_dynrelocs): Update comments.
784          * elf32-ppc.c (ppc_elf_relocate_section): Handle NULL symbol section          * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
         on R_PPC_TOC16, R_PPC_SDAREL16, R_PPC_EMB_SDA2REL, R_PPC_EMB_SDA21,  
         R_PPC_EMB_RELSDA, R_PPC_SECTOFF* relocs.  
785    
786  2008-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>  2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>
787    
788          Fix loading large elf64 binaries on 32bit hosts.          * elf32-i386.c (elf_i386_check_relocs): Reformat.
789          * configure.in: Call AC_SYS_LARGEFILE.          * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
790          * config.in: Regenerate.  
791    2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>
792    
793            * Makefile.am: Run "make dep-am".
794            * Makefile.in: Regenerated.
795    
796    2009-06-15  H.J. Lu  <hongjiu.lu@intel.com>
797    
798            * elf32-i386.c (elf_i386_allocate_dynrelocs): Fix a typo.
799            * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
800    
801    2009-06-15  Nick Clifton  <nickc@redhat.com>
802    
803            * po/ru.po: New Russian translation.
804            * configure.in (ALL_LINGUAS): Add ru.
805          * configure: Regenerate.          * configure: Regenerate.
806    
807  2008-09-08  Tom Tromey  <tromey@redhat.com>  2009-06-14  H.J. Lu  <hongjiu.lu@intel.com>
808    
809          * elfxx-mips.c (mips16_stub_symndx) <sec>: Mark argument as          * elf32-i386.c: Remove duplicated comments.
         unused.  
810    
811  2008-09-08  H.J. Lu  <hongjiu.lu@intel.com>  2009-06-14  H.J. Lu  <hongjiu.lu@intel.com>
             Daniel Jacobowitz  <dan@codesourcery.com>  
812    
813          PR ld/3191          PR ld/10270
814          * dwarf2.c (struct adjusted_section): Renamed from struct          * elf32-i386.c (elf_i386_allocate_dynrelocs): Disallow
815          loadable_section.          dynamic IFUNC pointer in non-shared object.  Use .got.plt
816          (struct dwarf2_debug): Adjust for renaming.  Add version field.          for IFUNC definition in PIE.
817          (read_attribute_value): Correctly handle DW_FORM_ref_addr for          (elf_i386_allocate_dynrelocs): Resolve IFUNC definition in
818          DWARF3.          PIE locally.
819          (find_abstract_instance_name): Pass a pointer to  
820          attribute instead of offset.  For DW_FORM_ref_addr, get the          * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Disallow
821          entry at the offset from the .debug_info section.          dynamic IFUNC pointer in non-shared object.  Use .got.plt
822          (scan_unit_for_symbols): Update.          for IFUNC definition in PIE.
823          (parse_comp_unit): Allow DWARF3.  Save the version.          (elf64_x86_64_relocate_section): Resolve IFUNC definition in
824          (unset_sections): Update for renaming.          PIE locally.
825          (place_sections): Likewise.  Set new VMAs for DWARF sections  
826          also.  2009-06-13  H.J. Lu  <hongjiu.lu@intel.com>
827    
828            * elf32-i386.c (elf_i386_check_relocs): Properly report
829            local symbol for unhandled relocation against STT_GNU_IFUNC
830            symbol.
831            (elf_i386_relocate_section): Likewise.
832            * elf64-x86-64.c (elf64_x86_64_check_relocs):  Likewise.
833            (elf64_x86_64_relocate_section): Likewise.
834    
835  2008-09-08  Tristan Gingold  <gingold@adacore.com>  2009-06-13  H.J. Lu  <hongjiu.lu@intel.com>
836    
837          * configure.in: Update version to 2.19.50          PR ld/10269
838          * configure: Regenerated.          * elf32-i386.c: Include "objalloc.h" and "hashtab.h".
839            (elf_i386_link_hash_table): Add loc_hash_table and
840            loc_hash_memory.
841            (elf_i386_local_hash): New.
842            (elf_i386_local_htab_hash): Likewise.
843            (elf_i386_local_htab_eq): Likewise.
844            (elf_i386_get_local_sym_hash): Likewise.
845            (elf_i386_link_hash_table_free): Likewise.
846            (elf_i386_allocate_local_dynrelocs): Likewise.
847            (elf_i386_finish_local_dynamic_symbol): Likewise.
848            (bfd_elf64_bfd_link_hash_table_free): Likewise.
849            (elf_i386_link_hash_table_create): Create loc_hash_table and
850            loc_hash_memory.
851            (elf_i386_check_relocs): Handle local STT_GNU_IFUNC symbols.
852            (elf_i386_size_dynamic_sections): Likewise.
853            (elf_i386_relocate_section): Likewise.
854            (elf_i386_finish_dynamic_sections): Likewise.
855            (elf_i386_finish_dynamic_symbol): Check _DYNAMIC only if sym
856            isn't NULL.
857    
858            * elf64-x86-64.c: Include "objalloc.h" and "hashtab.h".
859            (elf64_x86_64_link_hash_table): Add loc_hash_table and
860            loc_hash_memory.
861            (elf64_x86_64_local_hash): New.
862            (elf64_x86_64_local_htab_hash): Likewise.
863            (elf64_x86_64_local_htab_eq): Likewise.
864            (elf64_x86_64_get_local_sym_hash): Likewise.
865            (elf64_x86_64_link_hash_table_free): Likewise.
866            (elf64_x86_64_allocate_local_dynrelocs): Likewise.
867            (elf64_x86_64_finish_local_dynamic_symbol): Likewise.
868            (bfd_elf64_bfd_link_hash_table_free): Likewise.
869            (elf64_x86_64_link_hash_table_create): Create loc_hash_table
870            and loc_hash_memory.
871            (elf64_x86_64_check_relocs): Handle local STT_GNU_IFUNC
872            symbols.
873            (elf64_x86_64_size_dynamic_sections): Likewise.
874            (elf64_x86_64_relocate_section): Likewise.
875            (elf64_x86_64_finish_dynamic_sections): Likewise.
876            (elf64_x86_64_finish_dynamic_symbol): Check _DYNAMIC only if
877            sym isn't NULL.
878    
879  2008-09-05  Daniel Jacobowitz  <dan@codesourcery.com>  2009-06-10  Philip Blundell  <philb@gnu.org>
880    
881          * dwarf2.c: Change leading whitespace to tabs.          * elf32-arm.c (elf32_arm_fix_exidx_coverage): Avoid crash if
882            elf_sec->this_hdr == NULL.
883    
884  2008-09-05  Tristan Gingold  <gingold@adacore.com>  2009-06-12  Tristan Gingold  <gingold@adacore.com>
885    
886          Add MacOSX 64 bits support.          * reloc.c: Add BFD_RELOC_MACH_O_SECTDIFF and BFD_RELOC_MACH_O_PAIR.
887          * mach-o.h (bfd_mach_o_ppc_thread_flavour): Add          * bfd-in2.h: Regenerated.
888          BFD_MACH_O_PPC_THREAD_STATE_64.          * libbfd.h: Regenerated.
889          (bfd_mach_o_i386_thread_flavour): Add BFD_MACH_O_x86_THREAD_STATE64,  
890          BFD_MACH_O_x86_FLOAT_STATE64, BFD_MACH_O_x86_EXCEPTION_STATE64,          * mach-o.c (FILE_ALIGN): New macro.
891          BFD_MACH_O_x86_THREAD_STATE, BFD_MACH_O_x86_FLOAT_STATE,          (bfd_mach_o_canonicalize_symtab): Adjust for bfd_mach_o_asymbol.
892          BFD_MACH_O_x86_EXCEPTION_STATE.          (bfd_mach_o_print_symbol): Ditto.
893          (bfd_mach_o_load_command_type): Add          (bfd_mach_o_scan_write_thread): Adjust type of variable offset.
894          BFD_MACH_O_LC_SEGMENT_64, BFD_MACH_O_LC_ROUTINES_64,          (bfd_mach_o_get_reloc_upper_bound): New function.
895          BFD_MACH_O_LC_UUID.          (bfd_mach_o_canonicalize_reloc): Ditto.
896          (BFD_MACH_O_CPU_IS64BIT): Added.          (bfd_mach_o_scan_write_relocs): Ditto.
897          (bfd_mach_o_cpu_type): Add BFD_MACH_O_CPU_TYPE_POWERPC_64,          (bfd_mach_o_scan_write_section_32): Remove offset argument.
898          BFD_MACH_O_CPU_TYPE_X86_64.          (bfd_mach_o_scan_write_section_64): Ditto.
899          (bfd_mach_o_header): Add version field.          (bfd_mach_o_scan_write_segment_32): Write relocs.  Fix size of data
900          (bfd_mach_o_section) Add reserved3 field.          written for load command.  Do not compute section file offset.
901          (bfd_mach_o_segment_command): Add initprot and maxprot fields.          (bfd_mach_o_scan_write_segment_64): Ditto.
902            (bfd_mach_o_scan_write_symtab): Compute file offset first.
903          * mach-o.c (N_TEXT, N_DATA, N_BSS): Added.          Adjust for bfd_mach_o_asymbol.  Move code to convert from BFD to
904          (bfd_mach_o_version): New function.          Mach-O to ...
905          (bfd_mach_o_valid): Handle 64bits cpus.          (bfd_mach_o_mangle_symbols): ... this new function.
906          (bfd_mach_o_write_header): handler 64bits headers.          (bfd_mach_o_write_contents): Be sure to have load commands built.
907          (bfd_mach_o_scan_write_section_32, bfd_mach_o_scan_write_section_64):          Call bfd_mach_o_mangle_symbols.
908          New functions (from bfd_mach_o_scan_write_section) to handle both          (bfd_mach_o_build_commands): Adjust for filelen field.
909          flavors.          Use FILE_ALIGN macro.  Clear section file offset if section is empty.
910          (bfd_mach_o_scan_write_segment): Parameter wide added to support          Do not set symtab file offset anymore here.
911          both flavors.          (bfd_mach_o_make_empty_symbol): Allocate a bfd_mach_o_asymbol.
912          (bfd_mach_o_write_contents): Support both flavors.          (bfd_mach_o_make_bfd_section): Set SEC_RELOC if has reloc.
913          (bfd_mach_o_read_header): Ditto.          Set reloc_count and rel_filepos section fields.
914          (bfd_mach_o_scan_read_section_32, bfd_mach_o_scan_read_section_64):          (bfd_mach_o_scan_read_section_32): Type of argument offset is now
915          New functions (from bfd_mach_o_scan_read_section) to support both          unsigned int.
916          flavors.          (bfd_mach_o_scan_read_section_64): Ditto.
917          (bfd_mach_o_scan_read_symtab_symbol): Support both flavors.          (bfd_mach_o_scan_read_section): Ditto.
918            (bfd_mach_o_scan_read_symtab_symbol): Typr of argument s is now
919            bfd_mach_o_asymbol.  Use unsigned int for file offset type.
920            (bfd_mach_o_scan_read_symtab_symbol): Adjust for bfd_mach_o_asymbol.
921            Handle weak-ref symbols.
922            (bfd_mach_o_scan_read_symtab_symbols): Adjust for bfd_mach_o_asymbol.
923            (bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
924            (bfd_mach_o_scan): Remove assignment to removed field.
925            (bfd_mach_o_mkobject_init): Ditto.
926            (bfd_mach_o_bfd_print_private_bfd_data): Adjust printf formatter.
927            (bfd_mach_o_bfd_reloc_type_lookup): New macro.
928            (bfd_mach_o_bfd_reloc_name_lookup): Ditto.
929            (bfd_mach_o_swap_reloc_in): Ditto.
930            (bfd_mach_o_swap_reloc_out): Ditto.
931    
932            * mach-o.h (BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_NON_LAZY)
933            (BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_LAZY)
934            (BFD_MACH_O_REFERENCE_FLAG_DEFINED)
935            (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_DEFINED)
936            (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY)
937            (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY)
938            (BFD_MACH_O_REFERENCED_DYNAMICALLY, BFD_MACH_O_N_DESC_DISCARDED)
939            (BFD_MACH_O_N_NO_DEAD_STRIP, BFD_MACH_O_N_WEAK_REF)
940            (BFD_MACH_O_N_WEAK_DEF): New macros.
941            Add comments.
942            (bfd_mach_o_section_type): Add new enumeration values.
943            (BFD_MACH_O_S_SELF_MODIFYING_CODE)
944            (BFD_MACH_O_S_ATTR_LIVE_SUPPORT)
945            (BFD_MACH_O_S_ATTR_NO_DEAD_STRIP)
946            (BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS, BFD_MACH_O_S_ATTR_NO_TOC): New
947            macros.
948            (BFD_MACH_O_GENERIC_RELOC_VANILLA)
949            (BFD_MACH_O_GENERIC_RELOC_PAIR)
950            (BFD_MACH_O_GENERIC_RELOC_SECTDIFF)
951            (BFD_MACH_O_GENERIC_RELOC_PB_LA_PTR)
952            (BFD_MACH_O_GENERIC_RELOC_LOCAL_SECTDIFF): Ditto.
953            (BFD_MACH_O_RELENT_SIZE): Ditto.
954            (BFD_MACH_O_R_PCREL, BFD_MACH_O_GET_R_LENGTH)
955            (BFD_MACH_O_R_EXTERN, BFD_MACH_O_GET_R_TYPE)
956            (BFD_MACH_O_GET_R_SYMBOLNUM, BFD_MACH_O_SET_R_LENGTH)
957            (BFD_MACH_O_SET_R_TYPE, BFD_MACH_O_SET_R_SYMBOLNUM): Ditto.
958            (BFD_MACH_O_SR_SCATTERED, BFD_MACH_O_SR_PCREL)
959            (BFD_MACH_O_GET_SR_LENGTH, BFD_MACH_O_GET_SR_TYPE)
960            (BFD_MACH_O_GET_SR_ADDRESS, BFD_MACH_O_SET_SR_LENGTH)
961            (BFD_MACH_O_SET_SR_TYPE, BFD_MACH_O_SET_SR_ADDRESS): Ditto.
962            (bfd_mach_o_reloc_info): New struct.
963            (bfd_mach_o_asymbol): New struct.
964            (bfd_mach_o_symtab_command): The symbols field is now of type
965            bfd_mach_o_asymbol.
966            (bfd_mach_o_load_command): The offset and len fields are now of type
967            unsigned int.
968            (mach_o_data_struct): Remove symbols, nsymbols and ibfd fields.
969            Add a filelen field.  Add comments.
970            (bfd_mach_o_backend_data): New struct.
971            (bfd_mach_o_get_backend_data): New macro.
972            (bfd_mach_o_scan_read_symtab_symbol): Parameter symbol now of type
973            bfd_mach_o_asymbol.
974            (bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
975            (bfd_mach_o_get_reloc_upper_bound): New prototype.
976            (bfd_mach_o_canonicalize_reloc): Ditto.
977            
978            * mach-o-target.c (bfd_mach_o_bfd_is_local_label_name): Remove
979            duplicated macro.  Now defined to _bfd_generic_is_local_label.
980            (TARGET_NAME_BACKEND): New macro...
981            (TARGET_NAME_BACKEND): ... used to name a new variable.
982            (TARGET_NAME): Define relocs table using bfd_mach_o, reference
983            Mach-O backend data.
984    
985            * mach-o-i386.c (i386_howto_table): New variable.
986            (bfd_mach_o_i386_swap_reloc_in): New function.
987            (bfd_mach_o_i386_swap_reloc_out): Ditto.
988            (bfd_mach_o_i386_bfd_reloc_type_lookup): Ditto.
989            (bfd_mach_o_i386_bfd_reloc_name_lookup): Ditto.
990            (bfd_mach_o_swap_reloc_in, bfd_mach_o_swap_reloc_out): New macros.
991            (bfd_mach_o_bfd_reloc_type_lookup)
992            (bfd_mach_o_bfd_reloc_name_lookup): Ditto.
993    
994    2009-06-11  Eric Paris  <eparis@redhat.com>
995                Nick Clifton  <nickc@redhat.com>
996    
997            * opncls.c (_maybe_make_executable): New function.  Gives execute
998            permission to an executable bfd that was opened for writing
999            provided that it is a regular file.  Replaces common code found in...
1000            (bfd_close): here and ...
1001            (bfd_close_all_done): here.
1002    
1003    2009-06-11  Anthony Green  <green@moxielogic.com>
1004    
1005            * reloc.c: Add BFD_RELOC_MOXIE_10_PCREL.
1006            * bfd-in2.h: Rebuilt.
1007            * libbfd.h: Rebuilt.
1008            * elf32-moxie.c (moxie_elf_howto_table): Add R_MOXIE_PCREL10
1009            relocation support.
1010            (moxie_reloc_map): Ditto.
1011            Clean up copyright notice.
1012    
1013    2009-06-10  Paul Pluzhnikov  <ppluzhnikov@google.com>
1014            
1015            * bfd-in2.h: bfd_mmap prototype.
1016            * bfdio.c (bfd_mmap): New function.
1017            * libbfd.h (bfd_iovec): Add bmmap.
1018            * cache.c (cache_bmmap): New function.
1019            (cache_iovec): Initialize bmmap member.
1020            * opencls.c (opncls_bmmap): New function.
1021            (opncls_iovec): Initialize bmmap member.        
1022            
1023    2009-06-09  Tristan Gingold  <gingold@adacore.com>
1024    
1025            * mach-o.h (bfd_mach_o_symtab_command): Remove stabs_segment
1026            and stabstr_segment fields.
1027            (mach_o_be_vec, mach_o_le_vec): Removed
1028            (bfd_mach_o_version): New prototype.
1029    
1030            * mach-o.c (bfd_mach_o_version): Make this function public.
1031            (mach_o_wide_p): New function.
1032            (bfd_mach_o_wide_p): Ditto.
1033            (bfd_mach_o_convert_section_name_to_bfd): Add prefix only for
1034            weird names.
1035            (bfd_mach_o_convert_section_name_to_mach_o): Fix typo in comment.
1036            Search in the list only if the name starts with a dot.
1037            (bfd_mach_o_write_header): Use mach_o_wide_p instead of hard-coded
1038            test.  Check bfd_seek status.
1039            (bfd_mach_o_scan_write_thread): Check bfd_seek status.
1040            (bfd_mach_o_scan_write_section_32): Ditto.
1041            (bfd_mach_o_scan_write_section_64): Ditto.
1042            (bfd_mach_o_scan_write_section): Removed.
1043            (bfd_mach_o_scan_write_segment): Split into ...
1044            (bfd_mach_o_scan_write_segment_32): ... this and ...
1045            (bfd_mach_o_scan_write_segment_64): ... this.  Check bfd_seek status.
1046            (bfd_mach_o_scan_write_symtab_symbols): Moved into ...
1047            (bfd_mach_o_scan_write_symtab): ... this.  Write symtab from BFD
1048            symbol table.  Now returns a boolean.
1049            (bfd_mach_o_write_contents): Set filetype.  Check bfd_seek status.
1050            Adjust for status type.
1051            (bfd_mach_o_build_commands): Use mach_o_wide_p instead of hard-coded
1052            test.  Write symbol table.  Numbers the sections.
1053            (bfd_mach_o_read_header): Check bfd_seek status.
1054            Use mach_o_wide_p instead of hard-coded test.
1055            (bfd_mach_o_scan_read_section_32): Check bfd_seek status.
1056            (bfd_mach_o_scan_read_section_64): Ditto.
1057            (bfd_mach_o_scan_read_symtab_symbol): Ditto.  Check bfd_seek status.
1058            Use BFD_MACH_O_N_TYPE instead of hard-coded value.  Correctly
1059            handled common symbols.
1060            (bfd_mach_o_scan_read_symtab_strtab): Check bfd_seek status.
1061            (bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
1062            (bfd_mach_o_scan_read_dylinker): Ditto.
1063            (bfd_mach_o_scan_read_dylib): Ditto.
1064            (bfd_mach_o_scan_read_thread): Ditto.
1065          (bfd_mach_o_scan_read_symtab): Ditto.          (bfd_mach_o_scan_read_symtab): Ditto.
1066          (bfd_mach_o_scan_read_segment): Parameter wide added to support          Do not create a section for the stabs.
1067          both flavors.          (bfd_mach_o_scan_read_uuid): Check bfd_seek status.
1068          (bfd_mach_o_scan_read_segment_32, bfd_mach_o_scan_read_segment_64):          (bfd_mach_o_scan_read_segment): Ditto.
1069          New functions to call bfd_mach_o_scan_read_segment.          (bfd_mach_o_scan_read_command): Ditto.
         (bfd_mach_o_flatten_sections): Support both flavors.  
1070          (bfd_mach_o_scan_start_address): Ditto.          (bfd_mach_o_scan_start_address): Ditto.
1071          (bfd_mach_o_scan): Ditto.          (bfd_mach_o_scan): Use mach_o_wide_p instead of hard-coded test.
1072          (bfd_mach_o_lookup_section): Ditto.          (bfd_mach_o_archive_p): Check bfd_seek status.
1073            (bfd_mach_o_core_fetch_environment): Ditto.
1074    
1075            * mach-o-i386.c (bfd_mach_o_i386_mkobject): Don't set filetype.
1076    
1077    2009-06-06  H.J. Lu  <hongjiu.lu@intel.com>
1078    
1079            * elf32-i386.c (elf_i386_link_hash_table): Add irelifunc.
1080            (elf_i386_link_hash_table_create): Initialize irelifunc.
1081            (elf_i386_check_relocs): Updated.  Set up irelifunc for
1082            shared objects.
1083            (elf_i386_allocate_dynrelocs): Use irelifunc for dynamic
1084            relocation for non-GOT reference of STT_GNU_IFUNC symbol in
1085            shared objects.
1086            (elf_i386_relocate_section): Likewise.
1087    
1088  2008-08-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>          * elf64-x86-64.c (elf64_x86_64_link_hash_table): Add irelifunc.
1089            (elf64_x86_64_link_hash_table_create): Initialize irelifunc.
1090            (elf64_x86_64_check_relocs): Updated.  Set up irelifunc for
1091            shared objects.
1092            (elf64_x86_64_allocate_dynrelocs): Use irelifunc for dynamic
1093            relocation for non-GOT reference of STT_GNU_IFUNC symbol in
1094            shared objects.
1095            (elf64_x86_64_relocate_section): Likewise.
1096    
1097          * elf-hppa.h (elf_hppa_reloc_final_type): Handle R_PARISC_GPREL64,          * elf-bfd.h (_bfd_elf_create_static_ifunc_sections): Renamed to
1098          R_PARISC_SEGREL32 and R_PARISC_SEGREL64.          ...
1099          * som.c (som_fixup_formats): Add R_DATA_GPREL fixup.          (_bfd_elf_create_ifunc_sections): This.
1100          (som_hppa_howto_table): Likewise.  
1101          (hppa_som_gen_reloc_type): In case R_HPPA_GOTOFF, detect R_DATA_GPREL          * elflink.c (_bfd_elf_create_static_ifunc_sections): Renamed to
1102          final type.          ...
1103          (som_write_fixups): Handle R_DATA_GPREL.          (_bfd_elf_create_ifunc_sections): This.  Create .rel[a].ifunc
1104            for shared objects.
1105  2008-08-26  Nick Clifton  <nickc@redhat.com>  
1106    2009-06-06  H.J. Lu  <hongjiu.lu@intel.com>
1107          * elf32-arm.c: Fix up comment describing Thumb to ARM interworking  
1108          stub.          * elf32-i386.c (elf_i386_check_relocs): Make room for dynamic
1109            relocation for R_386_32 against STT_GNU_IFUNC symbol when
1110  2008-08-25  Christophe Lyon  <christophe.lyon@st.com>          building shared object.  Check info->executable instead of
1111            !info->shared when setting non_got_ref.
1112          * elf32-arm.c (arm_thumb_arm_v4t_short_branch_stub): Define.          (elf_i386_allocate_dynrelocs): Allocate dynamic relocation
1113          (elf32_arm_stub_type): Add arm_thumb_arm_v4t_stub_short_branch.          for non-GOT reference of STT_GNU_IFUNC symbol in shared
1114          (arm_type_of_stub): Handle armv4t short branches. Update          object. Allocate GOT relocation agsinst STT_GNU_IFUNC
1115          prototype.          symbol if needed.
1116          (arm_stub_is_thumb): Handle arm_thumb_arm_v4t_stub_short_branch.          (elf_i386_relocate_section): Output dynamic relocation for
1117          (arm_build_one_stub): Likewise.          R_386_32 against STT_GNU_IFUNC symbol to get the real
1118          (arm_size_one_stub): Likewise.          function address when building shared object.
1119          (elf32_arm_size_stubs): Use new arm_type_of_stub prototype.          (elf_i386_finish_dynamic_symbol): Output R_386_GLOB_DAT
1120          (arm_map_one_stub): Handle arm_thumb_arm_v4t_stub_short_branch.          relocation for STT_GNU_IFUNC symbol in shared object.
1121    
1122  2008-08-24  Andreas Schwab  <schwab@suse.de>          * elf64-x86-64.c (elf64_x86_64_check_relocs): Make room for
1123            dynamic relocation for R_X86_64_64 against STT_GNU_IFUNC
1124          * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Do proper          symbol when building shared object.  Check info->executable
1125          extension when calculating difference of offsets.          instead of !info->shared when setting non_got_ref.
1126            (elf64_x86_64_allocate_dynrelocs): Allocate dynamic relocation
1127  2008-08-24  Alan Modra  <amodra@bigpond.net.au>          for non-GOT reference of STT_GNU_IFUNC symbol in shared
1128            library. Allocate GOT relocation agsinst STT_GNU_IFUNC symbol
1129          * configure.in: Update a number of obsolete autoconf macros.          if needed.
1130          * aclocal.m4: Regenerate.          (elf64_x86_64_relocate_section): Output dynamic relocation
1131            for R_X86_64_64 against STT_GNU_IFUNC symbol to get the real
1132  2008-08-23  Andreas Schwab  <schwab@suse.de>          function address when building shared object.
1133            (elf64_x86_64_finish_dynamic_symbol): Output R_X86_64_GLOB_DAT
1134          * opncls.c (find_separate_debug_file): Use the canonical          relocation for STT_GNU_IFUNC symbol in shared object.
         absolute name of the bfd object for finding the debug file in  
         the global debugfile directory.  
   
 2008-08-22  Jakub Jelinek  <jakub@redhat.com>  
   
         Fix PR ld/3290 regression for cross-files DW_FORM_ref_addr relocations.  
         * elflink.c (elf_link_add_object_symbols): Make debug symbols local  
         now only for non-RELOCATABLE targets.  
   
 2008-08-20  Bob Wilson  <bob.wilson@acm.org>  
   
         * elf-bfd.h (elf_object_id): Add XTENSA_ELF_TDATA.  
         * elf32-xtensa.c (elf_howto_table): Add TLS relocations.  
         (elf_xtensa_reloc_type_lookup): Likewise.  
         (TCB_SIZE): Define.  
         (elf_xtensa_link_hash_entry): New.  
         (GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE, GOT_TLS_ANY): Define.  
         (elf_xtensa_hash_entry): Define.  
         (elf_xtensa_obj_tdata): New.  
         (elf_xtensa_tdata): Define.  
         (elf_xtensa_local_got_tls_type): Define.  
         (elf_xtensa_local_tlsfunc_refcounts): Define.  
         (is_xtensa_elf): Define.  
         (elf_xtensa_mkobject): New.  
         (elf_xtensa_link_hash_table): Add tlsbase field.  
         (elf_xtensa_link_hash_newfunc): New.  
         (elf_xtensa_link_hash_table_create): Use elf_xtensa_link_hash_newfunc.  
         Create an entry for "_TLS_MODULE_BASE_" and save it in tlsbase field.  
         (elf_xtensa_copy_indirect_symbol): New.  
         (elf_xtensa_check_relocs): Rewrite to handle TLS relocations.  
         (elf_xtensa_gc_sweep_hook): Likewise.  
         (elf_xtensa_allocate_dynrelocs): Optimize away GOT entries for  
         TLSDESC_FN relocations when an IE reference is seen.  
         (elf_xtensa_allocate_local_got_size): Likewise.  
         (elf_xtensa_always_size_sections): New.  
         (dtpoff_base, tpoff): New.  
         (elf_xtensa_do_reloc): Handle TLS relocations.  
         (replace_tls_insn): New.  
         (IS_XTENSA_TLS_RELOC): Define.  
         (elf_xtensa_relocate_section): Handle TLS relocations.  
         (get_indirect_call_dest_reg): New.  
         (bfd_elf32_mkobject): Define.  
         (elf_backend_always_size_sections): New.  
         (elf_backend_copy_indirect_symbol): New.  
         * reloc.c (BFD_RELOC_XTENSA_TLSDESC_FN, BFD_RELOC_XTENSA_TLSDESC_ARG)  
         (BFD_RELOC_XTENSA_TLS_DTPOFF, BFD_RELOC_XTENSA_TLS_TPOFF)  
         (BFD_RELOC_XTENSA_TLS_FUNC, BFD_RELOC_XTENSA_TLS_ARG)  
         (BFD_RELOC_XTENSA_TLS_CALL): New.  
         * bfd-in2.h: Regenerate.  
         * libbfd.h: Regenerate.  
1135    
1136  2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>  2009-06-06  Jan Kratochvil  <jan.kratochvil@redhat.com>
1137    
1138          * elfxx-mips.c (_bfd_mips_elf_copy_indirect_symbol): Copy MIPS16          * Makefile.am: Run "make dep-am".
1139          stub information.          (BFD32_BACKENDS): Add mach-o-i386.lo.
1140            (BFD32_BACKENDS_CFILES): Add mach-o-i386.c.
1141            * Makefile.in: Regenerate.
1142    
1143  2008-08-17  Nick Clifton  <nickc@redhat.com>  2009-06-06  Alan Modra  <amodra@bigpond.net.au>
1144    
1145          * elf32-arm.c: Tidy up the code.          * elf32-spu.c (spu_elf_relocate_section): Match overlay number
1146          (bfd_elf32_arm_allocate_interworking_sections): Move common code          when looking for soft-icache stubs.
         into...  
         (arm_allocate_glue_section_space): ... New function.  
         (bfd_elf32_arm_add_glue_sections_to_bfd): Move common code  
         into...  
         (arm_make_glue_section): ... New function.  
1147    
1148          * elfxx-mips.c (_bfd_mips_elf_check_relocs): Handle the situation  2009-06-05  Tristan Gingold  <gingold@adacore.com>
1149          where the sym_hashes are not available.  
1150            * mach-o.h: Update copyright year.
1151            (bfd_mach_o_mach_header_magic): New enum.
1152            (bfd_mach_o_cpu_subtype): Now an enum.
1153            (BFD_MACH_O_HEADER_SIZE, BFD_MACH_O_HEADER_64_SIZE): New macros.
1154            (BFD_MACH_O_SECTION_SIZE, BFD_MACH_O_SECTION_64_SIZE): Ditto.
1155            (BFD_MACH_O_LC_SEGMENT_SIZE, BFD_MACH_O_LC_SEGMENT_64_SIZE): Ditto.
1156            (bfd_mach_o_load_command): Field type_required is now a boolean.
1157            Reindent prototypes.
1158            (bfd_mach_o_object_p, bfd_mach_o_core_p): Remove.
1159            (bfd_mach_o_bfd_copy_private_symbol_data): Add a prototype.
1160            (bfd_mach_o_bfd_copy_private_section_data): Ditto.
1161            (bfd_mach_o_bfd_copy_private_bfd_data): Ditto.
1162            (bfd_mach_o_get_symtab_upper_bound): Ditto.
1163            (bfd_mach_o_canonicalize_symtab): Ditto.
1164            (bfd_mach_o_get_symbol_info): Ditto.
1165            (bfd_mach_o_print_symbol): Ditto.
1166            (bfd_mach_o_bfd_print_private_bfd_data): Ditto.
1167            (bfd_mach_o_make_empty_symbol): Ditto.
1168            (bfd_mach_o_write_contents): Ditto.
1169    
1170            * mach-o.c (bfd_mach_o_object_p, bfd_mach_o_core_p,
1171            bfd_mach_o_mkobject): Defines.
1172            (bfd_mach_o_valid): Returns FALSE/TRUE instead of 0/1.
1173            Do not check with target vector but with flavour.
1174            (struct mach_o_section_name_xlat): New declaration.
1175            (dwarf_section_names_xlat): Ditto.
1176            (text_section_names_xlat): Ditto.
1177            (data_section_names_xlat): Ditto.
1178            (struct mach_o_segment_name_xlat): Ditto.
1179            (segsec_names_xlat): Ditto.
1180            (bfd_mach_o_convert_section_name_to_bfd): New function.
1181            (bfd_mach_o_convert_section_name_to_mach_o): Ditto.
1182            (bfd_mach_o_bfd_copy_private_symbol_data): Make it public.
1183            (bfd_mach_o_bfd_copy_private_section_data): Ditto.
1184            (bfd_mach_o_bfd_copy_private_bfd_data): Ditto.
1185            Accept any input and output flavour.  Do not share private data
1186            anymore.
1187            (bfd_mach_o_count_symbols): Add a comment.
1188            (bfd_mach_o_get_symtab_upper_bound): Make it public.
1189            (bfd_mach_o_canonicalize_symtab): Ditto.
1190            (bfd_mach_o_get_symbol_info): Ditto.
1191            (bfd_mach_o_print_symbol): Ditto.
1192            (bfd_mach_o_write_header): Now returns a boolean instead of an int.
1193            Use constants instead of hard-coded values.
1194            (bfd_mach_o_scan_write_section_32): Use constants instead of hard-coded
1195            values.
1196            (bfd_mach_o_scan_write_section_64): Ditto.
1197            (bfd_mach_o_scan_write_segment): Ditto.
1198            Do not copy sections anymore.
1199            (bfd_mach_o_write_contents): Make it public.
1200            Remove dead code.  Rewrite typeflag assignment.
1201            (bfd_mach_o_build_commands): New function.
1202            (bfd_mach_o_set_section_contents): Ditto.
1203            (bfd_mach_o_make_empty_symbol): Make it public.
1204            (bfd_mach_o_read_header): Make it static.
1205            Convert to bfd_boolean.
1206            Use constants instead of hard-coded values.
1207            (bfd_mach_o_make_bfd_section): Call
1208            bfd_mach_o_convert_section_name_to_bfd to create name.
1209            (bfd_mach_o_scan_read_section_32): Use constants instead of hard-coded
1210            values.
1211            (bfd_mach_o_scan_read_section_64): Ditto.
1212            (bfd_mach_o_scan_read_segment): Do not create a bfd section for
1213            a segment anymore.  Use constants instead of hard-coded values.
1214            (bfd_mach_o_scan_read_command): Fix style.
1215            (bfd_mach_o_scan): Use constants instead of hard-coded values.
1216            Get rid of BFD_IO_FUNCS.
1217            (bfd_mach_o_mkobject_init): Renamed from bfd_mach_o_mkobject.
1218            (bfd_mach_o_header_p): Created from bfd_mach_o_object_p.
1219            (bfd_mach_o_gen_object_p): New function, replaces bfd_mach_o_object_p.
1220            (bfd_mach_o_object_p): Removed.
1221            (bfd_mach_o_gen_core_p): New function, replaces ...
1222            (bfd_mach_o_core_p): ... deleted.
1223            (bfd_mach_o_bfd_print_private_bfd_data): Make it public.
1224    
1225            * mach-o-i386.c: New file.
1226            * config.bfd: Use mach_o_i386_vec as targ_defvec for ix86-darwin.
1227            * configure.in (TDEFINES): Add mach_o_i386_vec.
1228            * configure: Regenerated.
1229            * targets.c: Add mach_o_i386_vec.
1230    
1231  2008-08-17  Alan Modra  <amodra@bigpond.net.au>          * mach-o.c: Update copyright years.
1232            (BFD_IO_FUNCS): Remove (was not used).
1233            (bfd_mach_o_mkarchive, bfd_mach_o_read_ar_hdr, bfd_mach_o_slurp_armap
1234            bfd_mach_o_slurp_extended_name_table,
1235            bfd_mach_o_construct_extended_name_table,
1236            bfd_mach_o_truncate_arname, bfd_mach_o_write_armap,
1237            bfd_mach_o_get_elt_at_index, bfd_mach_o_generic_stat_arch_elt,
1238            bfd_mach_o_update_armap_timestamp, bfd_mach_o_close_and_cleanup,
1239            bfd_mach_o_bfd_free_cached_info, bfd_mach_o_new_section_hook,
1240            bfd_mach_o_get_section_contents_in_window,
1241            bfd_mach_o_bfd_is_local_label_name,
1242            bfd_mach_o_bfd_is_target_special_symbol,
1243            bfd_mach_o_bfd_is_local_label_name, bfd_mach_o_get_lineno,
1244            bfd_mach_o_find_nearest_line, bfd_mach_o_find_inliner_info,
1245            bfd_mach_o_bfd_make_debug_symbol, bfd_mach_o_read_minisymbols,
1246            bfd_mach_o_minisymbol_to_symbol,
1247            bfd_mach_o_bfd_get_relocated_section_contents,
1248            bfd_mach_o_bfd_relax_section, bfd_mach_o_bfd_link_hash_table_create,
1249            bfd_mach_o_bfd_link_hash_table_free, bfd_mach_o_bfd_link_add_symbols,
1250            bfd_mach_o_bfd_link_just_syms, bfd_mach_o_bfd_final_link,
1251            bfd_mach_o_bfd_link_split_section, bfd_mach_o_set_arch_mach,
1252            bfd_mach_o_bfd_merge_private_bfd_data,
1253            bfd_mach_o_bfd_set_private_flags, bfd_mach_o_get_section_contents,
1254            bfd_mach_o_bfd_gc_sections, bfd_mach_o_bfd_merge_sections,
1255            bfd_mach_o_bfd_is_group_section, bfd_mach_o_bfd_discard_group,
1256            bfd_mach_o_section_already_linked, bfd_mach_o_bfd_define_common_symbol,
1257            bfd_mach_o_bfd_copy_private_header_data,
1258            bfd_mach_o_core_file_matches_executable_p): Move these defines ...
1259            * mach-o-target.c: ... here.
1260            Update copyright years.
1261    
1262    2009-06-04  Alan Modra  <amodra@bigpond.net.au>
1263    
1264            * dep-in.sed: Don't use \n in replacement part of s command.
1265            * Makefile.am (DEP1): LC_ALL for uniq.
1266            Run "make dep-am".
1267            * Makefile.in: Regenerate.
1268    
1269          * bfd.c (struct _bfd): Correct outsymbols comment.  2009-06-03  H.J. Lu  <hongjiu.lu@intel.com>
         * bfd-in2.h: Regenerate.  
         * linker.c (bfd_generic_link_read_symbols): Renamed from..  
         (generic_link_read_symbols): ..this, and made global.  
1270    
1271  2008-08-15  Alan Modra  <amodra@bigpond.net.au>          * elf32-i386.c (elf_i386_allocate_dynrelocs): Remove check of
1272            h->plt.refcount > 0 on STT_GNU_IFUNC symbol.
1273            * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
1274    
1275    2009-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1276    
1277            * elf32-i386.c (elf_i386_allocate_dynrelocs): Allocate
1278            GOT entry for STT_GNU_IFUNC symbol with pointer equality.
1279            (elf_i386_relocate_section): Adjust R_386_GOT32 relocation
1280            against STT_GNU_IFUNC symbols for static executables.
1281            (elf_i386_finish_dynamic_symbol): Load GOT entry with
1282            PLT entry for STT_GNU_IFUNC symbol with pointer equality.
1283    
1284            * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Allocate
1285            GOT entry for STT_GNU_IFUNC symbol with pointer equality.
1286            (elf64_x86_64_finish_dynamic_symbol): Load GOT entry with
1287            PLT entry for STT_GNU_IFUNC symbol with pointer equality.
1288    
1289    2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1290    
1291            * coff-rs6000.c (xcoff_ppc_relocate_section): Allow undefined
1292            symbols to be left unimported when linking statically.
1293            * xcofflink.c (xcoff_link_add_symbols): Ignore global linkage
1294            code when linking statically.
1295    
1296    2009-06-02  H.J. Lu  <hongjiu.lu@intel.com>
1297    
1298            * elf32-i386.c (elf_i386_check_relocs): Increment
1299            got.refcount for R_386_GOT32/R_386_GOTOFF relocations
1300            against STT_GNU_IFUNC symbol.
1301            (elf_i386_allocate_dynrelocs): Set got.refcount to 0 if
1302            local STT_GNU_IFUNC definition is used.
1303            (elf_i386_relocate_section): Handle got.offset != -1 for
1304            R_386_GOT32/R_386_GOTOFF relocations against STT_GNU_IFUNC
1305            symbol.
1306    
1307            * elf64-x86-64.c (elf64_x86_64_check_relocs): Increment
1308            got.refcount for R_X86_64_GOTPCREL/R_X86_64_GOTPCREL64
1309            relocations against STT_GNU_IFUNC symbol.
1310            (elf64_x86_64_allocate_dynrelocs): Set got.refcount to 0 if
1311            local STT_GNU_IFUNC definition is used.
1312            (elf64_x86_64_relocate_section): Handle got.offset != -1
1313            for R_X86_64_GOTPCREL/R_X86_64_GOTPCREL64 relocations against
1314            STT_GNU_IFUNC symbol.
1315    
1316    2009-06-01  H.J. Lu  <hongjiu.lu@intel.com>
1317    
1318            PR ld/10205
1319            * elf32-i386.c (elf_howto_table): Add R_386_IRELATIVE.
1320            (elf_i386_reloc_type_lookup): Likewise.
1321            (R_386_tls): Removed.
1322            (R_386_irelative): New.
1323            (R_386_vt_offset): Updated.
1324            (elf_i386_rtype_to_howto): Likewise.
1325            (elf_i386_link_hash_table): Add igotplt, iplt and irelplt.
1326            (elf_i386_link_hash_table_create): Initialize igotplt,
1327            iplt and irelplt.
1328            (elf_i386_check_relocs): Handle STT_GNU_IFUNC symbol first.
1329            (elf_i386_adjust_dynamic_symbol): Likewise.
1330            (elf_i386_allocate_dynrelocs): Likewise.
1331            (elf_i386_relocate_section): Likewise.
1332            (elf_i386_size_dynamic_sections): Set up .iplt and .igot.plt
1333            sections.
1334            (elf_i386_finish_dynamic_symbol): When building a static
1335            executable, use .iplt, .igot.plt and .rel.iplt sections for
1336            STT_GNU_IFUNC symbols.  Generate R_386_IRELATIVE relocation for
1337            locally defined STT_GNU_IFUNC symbol.
1338    
1339            * elf64-x86-64.c (x86_64_elf_howto): Add R_X86_64_IRELATIVE.
1340            (x86_64_reloc_map): Likewise.
1341            (R_X86_64_standard): Updated.
1342            (elf64_x86_64_link_hash_table): Add igotplt, iplt and irelplt.
1343            (elf64_x86_64_link_hash_table_create): Initialize igotplt,
1344            iplt and irelplt.
1345            (elf64_x86_64_check_relocs): Handle STT_GNU_IFUNC symbol first.
1346            (elf64_x86_64_adjust_dynamic_symbol): Likewise.
1347            (elf64_x86_64_allocate_dynrelocs): Likewise.
1348            (elf64_x86_64_relocate_section): Likewise.
1349            (elf64_x86_64_size_dynamic_sections): Set up .iplt and .igot.plt
1350            sections.
1351            (elf64_x86_64_finish_dynamic_symbol): When building a static
1352            executable, use .iplt, .igot.plt and .rela.iplt sections for
1353            STT_GNU_IFUNC symbols.  Generate R_X86_64_IRELATIVE relocation
1354            for locally defined STT_GNU_IFUNC symbol.
1355    
1356          PR 6526          * reloc.c (BFD_RELOC_386_IRELATIVE): New.
1357          * configure.in: Invoke AC_USE_SYSTEM_EXTENSIONS.          (BFD_RELOC_X86_64_IRELATIVE): Likewise.
         * Makefile.in: Regenerate.  
         * aclocal.m4: Regenerate.  
         * config.in: Regenerate.  
         * configure: Regenerate.  
1358    
1359  2008-08-14  Jaka Močnik  <jaka@xlab.si>          * bfd-in2.h: Regenerated.
1360            * libbfd.h: Likewise.
1361    
1362          * coffgen.c (coff_find_nearest_line): Correct cached line index.  2009-06-01  H.J. Lu  <hongjiu.lu@intel.com>
1363    
1364  2008-08-12  Alan Modra  <amodra@bigpond.net.au>          * elf-bfd.h (struct bfd_elf_section_data): Remove indirect_relocs.
1365            (_bfd_elf_make_ifunc_reloc_section): Removed.
1366            (_bfd_elf_is_ifunc_symbol): Likewise.
1367            (_bfd_elf_create_static_ifunc_sections): New.
1368    
1369            * elflink.c (_bfd_elf_adjust_dynamic_symbol): Move STT_GNU_IFUNC
1370            symbol check to ...
1371            (elf_link_add_object_symbols): Here.
1372            (_bfd_elf_link_hash_hide_symbol): Don't clean plt on
1373            STT_GNU_IFUNC symbol.
1374            (elf_link_output_extsym): Call elf_backend_finish_dynamic_symbol
1375            if a STT_GNU_IFUNC symbol is referenced in a non-shared object.
1376            (IFUNC_INFIX): Removed.
1377            (get_ifunc_reloc_section_name): Likewise.
1378            (_bfd_elf_make_ifunc_reloc_section): Likewise.
1379            (_bfd_elf_is_ifunc_symbol): Likewise.
1380            (_bfd_elf_create_static_ifunc_sections): New.
1381    
1382          * elf32-ppc.c (allocate_dynrelocs): Ignore dyn_relocs when  2009-05-29  H.J. Lu  <hongjiu.lu@intel.com>
         !dynamic_sections_created.  Don't make symbols with got  
         references dynamic if !dynamic_sections_created.  
         * elf64-ppc.c (allocate_dynrelocs): Likewise.  Alloc dynamic  
         relocs on undefined symbols.  
         (ppc64_elf_relocate_section): Allow dynamic relocs on  
         undefined symbols.  
1383    
1384  2008-08-11  Alan Modra  <amodra@bigpond.net.au>          * elf32-i386.c (link_hash_newfunc): Add elf_i386_ prefix.
1385            (create_got_section): Likewise.
1386            (allocate_dynrelocs): Likewise.
1387            (readonly_dynrelocs): Likewise.
1388            (set_tls_module_base): Likewise.
1389            (dtpoff_base): Likewise.
1390            (tpoff): Likewise.
1391            (elf_i386_link_hash_table_create): Updated.
1392            (elf_i386_create_dynamic_sections): Likewise.
1393            (elf_i386_check_relocs): Likewise.
1394            (elf_i386_size_dynamic_sections): Likewise.
1395            (elf_i386_relocate_section): Likewise.
1396    
1397          * elf64-ppc.c (toc_adjusting_stub_needed): Any call via the plt          * elf64-x86-64.c (link_hash_newfunc): Add elf64_x86_64_ prefix.
1398          needs r2 valid, not just those to external syms.          (create_got_section): Likewise.
1399            (allocate_dynrelocs): Likewise.
1400            (readonly_dynrelocs): Likewise.
1401            (set_tls_module_base): Likewise.
1402            (dtpoff_base): Likewise.
1403            (tpoff): Likewise.
1404            (elf64_x86_64_link_hash_table_create): Updated.
1405            (elf64_x86_64_create_dynamic_sections): Likewise.
1406            (elf64_x86_64_check_relocs): Likewise.
1407            (elf64_x86_64_size_dynamic_sections): Likewise.
1408            (elf64_x86_64_relocate_section): Likewise.
1409    
1410  2008-08-09  Pedro Alves  <pedro@codesourcery.com>  2009-05-28  Nick Clifton  <nickc@redhat.com>
1411    
1412          * archive.c (_bfd_archive_bsd_update_armap_timestamp): Cast stat          * targets.c (_bfd_target_vector): Only include plugin target in
1413          st_mtime to long before comparison.          all-targets build if BFD_SUPPORTS_PLUGINS is non-zero.
1414    
1415  2008-08-08  Anatoly Sokolov  <aesok@post.ru>  2009-05-28  Ulrich Weigand  <uweigand@de.ibm.com>
1416    
1417          * archures.c (bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35,          * elf32-spu.c (struct call_info): New member broken_cycle.
1418          bfd_mach_avr51): New.          (remove_cycle): Instead of physically removing call_info structures
1419          * bfd-in2.h: Regenerate.          to break call graph cycles, mark them using the broken_cycle flag.
1420          * cpu-avr.c (arch_info_struct): Add avr25, avr31, avr35, and avr51          (mark_overlay_section): Respect broken_cycle flag.
1421          architectures. Change comments to match architecture comments in GCC.          (unmark_overlay_section): Likewise.
1422          (compatible): Add test for new AVR architectures.          (collect_lib_sections): Likewise.
1423          * elf32-avr.c (bfd_elf_avr_final_write_processing): Recognize          (collect_overlays): Likewise.
1424          bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35 and bfd_mach_avr51.          (sum_stack): Likewise.
1425          (elf32_avr_object_p): Recognize E_AVR_MACH_AVR25, E_AVR_MACH_AVR31,  
1426          E_AVR_MACH_AVR35 and E_AVR_MACH_AVR51.  2009-05-28  Ulrich Weigand  <uweigand@de.ibm.com>
1427    
1428            * elf32-spu.c (insert_callee): Accumulate incoming callee->count.
1429            (mark_functions_via_relocs): Initialize callee->count to 1.
1430            (pasted_function): Likewise.
1431            (spu_elf_auto_overlay): Honor call counts when determining number
1432            of stubs required in software i-cache mode.
1433    
1434    2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
1435    
1436            * plugin.c (program_name): Remove.
1437            (plugin_program_name): New.
1438            (bfd_plugin_set_program_name): New.
1439            (try_load_plugin): Use plugin_program_name.
1440            * plugin.h (bfd_plugin_set_program_name): New.
1441    
1442    2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
1443    
1444  2008-08-08  Richard Sandiford  <rdsandiford@googlemail.com>          * aclocal.m4: Include ../config/plugins.m4.
1445              Daniel Jacobowitz  <dan@codesourcery.com>          * configure.in: Use AC_PLUGINS.
1446              Catherine Moore  <clm@codesourcery.com>          * configure: Regenerate.
1447              Mark Shinwell  <shinwell@codesourcery.com>          * Makefile.in: Regenerate.
1448              Maxim Kuvyrkov  <maxim@codesourcery.com>          * doc/Makefile.in: Regenerate.
1449    
1450          * elf32-mips.c (mips_vxworks_copy_howto_rela): Replace with...  2009-05-27  Nathan Sidwell  <nathan@codesourcery.com>
         (elf_mips_copy_howto): ...this howto.  Clear the size fields.  
         (mips_vxworks_jump_slot_howto_rela): Replace with...  
         (elf_mips_jump_slot_howto): ...this howto.  
         (bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY  
         and BFD_RELOC_MIPS_JUMP_SLOT.  
         (bfd_elf32_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and  
         "R_MIPS_JUMP_SLOT".  
         (mips_elf32_rtype_to_howto): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT.  
         (elf_backend_plt_readonly): Define.  
         (elf_backend_plt_sym_val): Define for non-VxWorks targets.  
         (mips_vxworks_bfd_reloc_type_lookup): Delete.  
         (mips_vxworks_bfd_reloc_name_lookup): Likewise.  
         (mips_vxworks_rtype_to_howto): Likewise.  
         (elf_backend_want_dynbss): Don't define for VxWorks.  
         (elf_backend_plt_readonly): Likewise.  
         (bfd_elf32_bfd_reloc_type_lookup): Likewise.  
         (bfd_elf32_bfd_reloc_name_lookup): Likewise.  
         (elf_backend_mips_rtype_to_howto): Likewise.  
         (elf_backend_adjust_dynamic_symbol): Likewise.  
         (elf_backend_got_symbol_offset): Don't define.  
         * elfn32-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto): New.  
         (bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY  
         and BFD_RELOC_MIPS_JUMP_SLOT.  
         (bfd_elf32_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and  
         "R_MIPS_JUMP_SLOT".  
         (mips_elf32_n32_rtype_to_howto): Handle R_MIPS_COPY and  
         R_MIPS_JUMP_SLOT.  
         (elf_backend_rela_plts_and_copies_p, elf_backend_plt_readonly)  
         (elf_backend_plt_sym_val): Define.  
         * elf64-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto): New.  
         (bfd_elf64_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY  
         and BFD_RELOC_MIPS_JUMP_SLOT.  
         (bfd_elf64_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and  
         "R_MIPS_JUMP_SLOT".  
         (mips_elf64_rtype_to_howto): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT.  
         (elf_backend_rela_plts_and_copies_p, elf_backend_plt_readonly)  
         (elf_backend_plt_sym_val): Define.  
         * elfxx-mips.h (_bfd_mips_vxworks_adjust_dynamic_symbol): Delete.  
         (_bfd_mips_elf_use_plts_and_copy_relocs, _bfd_mips_elf_init_stubs)  
         (_bfd_mips_elf_plt_sym_val, _bfd_mips_post_process_headers): Declare.  
         * elfxx-mips.c (mips_elf_la25_stub): New structure.  
         (LA25_LUI, LA25_J, LA25_ADDIU): New macros.  
         (mips_elf_link_hash_entry): Add "la25_stubs", "has_static_relocs"  
         and "has_nonpic_branches" fields.  Remove "is_relocation_target" and  
         "is_branch_target".  
         (mips_elf_link_hash_table): Add blank lines.  Add  
         "use_plts_and_copy_relocs", "reserved_gotno", "strampoline",  
         "la25_stubs" and "add_stub_section" fields.  
         (mips_htab_traverse_info): New structure.  
         (PIC_OBJECT_P, MIPS_ELF_LOAD_WORD): New macros.  
         (MIPS_RESERVED_GOTNO): Delete.  
         (mips_o32_exec_plt0_entry, mips_n32_exec_plt0_entry)  
         (mips_n64_exec_plt0_entry, mips_exec_plt_entry): New tables.  
         (mips_elf_link_hash_newfunc): Update after the changes to  
         mips_elf_link_hash_entry.  
         (mips_elf_check_mips16_stubs): Replace the DATA parameter with  
         an INFO parameter.  Don't look through warnings symbols here;  
         do it in mips_elf_check_symbols instead.  
         (mips_elf_create_stub_symbol): New function.  
         (mips_elf_la25_stub_hash, mips_elf_la25_stub_eq): New functions.  
         (_bfd_mips_elf_init_stubs, mips_elf_local_pic_function_p): Likewise.  
         (mips_elf_add_la25_intro, mips_elf_add_la25_trampoline): Likewise.  
         (mips_elf_add_la25_stub, mips_elf_check_symbols): New functions.  
         (mips_elf_gotplt_index): Check for VxWorks.  
         (mips_elf_output_dynamic_relocation): Take the relocation index  
         as an extra parameter.  Do not increment reloc_count here.  
         (mips_elf_initialize_tls_slots): Update the calls to  
         mips_elf_output_dynamic_relocation accordingly.  
         (mips_elf_multi_got): Use htab->reserved_gotno instead of  
         MIPS_RESERVED_GOTNO.  
         (mips_elf_create_got_section): Don't allocate reserved GOT  
         entries here.  Unconditionally create .got.plt, but don't  
         set its alignment here.  
         (mips_elf_relocation_needs_la25_stub): New function.  
         (mips_elf_calculate_relocation): Redirect branches and jumps to  
         a non-PIC stub if one exists.  Check !h->has_static_relocs instead  
         of !htab->is_vxworks when deciding whether to create dynamic  
         relocations for R_MIPS_32, R_MIPS_REL32 and R_MIPS_64.  
         (_bfd_mips_elf_create_dynamic_sections): Unconditionally call  
         _bfd_elf_create_dynamic_sections.  Unconditionally set up  
         htab->splt and htab->sdynbss.  Set htab->srelplt to ".rel.plt"  
         if !htab->is_vxworks.  Add non-VxWorks values of  
         htab->plt_header_size and htab->plt_entry_size.  
         (_bfd_mips_elf_check_relocs): Set pointer_equality_needed for  
         non-branch static relocations.  Set has_nonpic_branches when an la25  
         stub might be required.  Set can_make_dynamic_p to TRUE if R_MIPS_32,  
         R_MIPS_REL32 and R_MIPS_64 relocations can be made dynamic,  
         rather than duplicating the condition.  Do not make them dynamic  
         for read-only sections in non-PIC executable objects.  
         Do not protect this code with dynobj == NULL || htab->sgot == NULL;  
         handle each group of cases separately.  Add a default case that  
         sets has_static_relocs for non-GOT relocations that cannot be  
         made dynamic.  Don't set is_relocation_target and is_branch_target.  
         Reject non-PIC static relocations in shared objects.  
         (_bfd_mips_vxworks_adjust_dynamic_symbol): Fold into...  
         (_bfd_mips_elf_adjust_dynamic_symbol): ...here, using  
         htab->use_plts_and_copy_relocs instead of htab->is_vxworks  
         to select PLT and copy-reloc handling.  Set the alignment of  
         .plt and .got.plt when allocating the first entry.  Generalize  
         code to handle REL as well as RELA sections and 64-bit as well as  
         32-bit GOT entries.  Complain if we find a static-only reloc  
         against an externally-defined symbol and if we cannot create  
         dynamic relocations for it.  Allocate copy relocs using  
         mips_elf_allocate_dynamic_relocations on non-VxWorks targets.  
         Set possibly_dynamic_relocs to 0 when using PLTs or copy relocs.  
         Skip reserved .got.plt entries.  
         (_bfd_mips_elf_always_size_sections): Use mips_elf_check_symbols  
         instead of mips_elf_check_mips16_stubs to process each symbol.  
         Do the traversal for relocatable objects too.  
         (mips_elf_lay_out_got): Use htab->reserved_gotno instead of  
         MIPS_RESERVED_GOTNO.  
         (_bfd_mips_elf_size_dynamic_sections): Exclude sdynbss if it  
         is empty.  Extend the DT_PLTREL, DT_JMPREL and DT_PLTRELSZ handling  
         to non-VxWorks targets.  Only add DT_REL{,A}, DT_REL{,A}SZ and  
         DT_REL{,A}ENT if .rel.dyn is nonempty.  Create a symbol for the  
         PLT.  Allocate a nop at the end of the PLT.  Allocate DT_MIPS_PLTGOT.  
         (mips_elf_create_la25_stub_info): New function.  
         (_bfd_mips_elf_finish_dynamic_symbol): Write out PLT entries  
         and copy relocs where necessary.  Check pointer_equality_needed.  
         (mips_finish_exec_plt): New function.  
         (_bfd_mips_elf_finish_dynamic_sections): Always set DT_PLTGOT  
         to the beginning of htab->sgot.  Use htab->reserved_gotno instead  
         of MIPS_RESERVED_GOTNO.  Assert htab->use_plts_and_copy_relocs  
         instead of htab->is_vxworks for DT_PLTREL, DT_PLTRELSZ and DT_JMPREL.  
         Set DT_PLTREL to DT_REL instead of DT_RELA on non-VxWorks targets.  
         Use mips_finish_exec_plt to create non-VxWorks PLT headers.  Set  
         DT_MIPS_PLTGOT.  
         (_bfd_mips_elf_copy_indirect_symbol): Copy has_static_relocs  
         from the indirect symbol to the direct symbol.  Also copy  
         has_nonpic_branches for indirect symbols.  
         (_bfd_mips_elf_get_target_dtag): Handle DT_MIPS_PLTGOT and  
         DT_MIPS_RWPLT.  
         (_bfd_mips_elf_link_hash_table_create): Initialize the new  
         mips_elf_link_hash_table fields.  
         (_bfd_mips_vxworks_link_hash_table_create): Set  
         use_plts_and_copy_relocs to TRUE.  Use TRUE rather than 1  
         when setting is_vxworks.  
         (_bfd_mips_elf_use_plts_and_copy_relocs): New function.  
         (_bfd_mips_elf_final_link): Call mips_elf_create_la25_stub for  
         each la25_stub.  
         (_bfd_mips_elf_merge_private_bfd_data): Treat dynamic objects  
         as PIC.  Generalize message about linking PIC and non-PIC.  
         (_bfd_mips_elf_plt_sym_val, _bfd_mips_post_process_headers): New  
         functions.  
         * reloc.c: Update comment near BFD_RELOC_MIPS_JUMP_SLOT.  
         * bfd-in2.h: Regenerated.  
1451    
1452  2008-08-08  Alan Modra  <amodra@bigpond.net.au>          * elf32-ppc.c (ppc_elf_relax_section): Work with a partial
1453            link.
1454            * bout.c (b_out_bfd_relax_section): Reject relocatable links.
1455            * elf32-m10300.c (mn10300_elf_relax_section): Likewise.
1456            * elf32-avr.c (elf32_avr_relax_section): Likewise.
1457            * elf32-frv.c (elf32_avr_relax_section): Likewise.
1458            * elf32-xtensa.c (elf_xtensa_relax_section): Likewise.
1459            * elf64-mmix.c (mmix_elf_relax_section): Likewise.
1460            * elfxx-ia64.c (elfNN_ia64_relax_section): Likewise.
1461            * elfxx-sparc.c (_bfd_sparc_elf_relax_section): Likewise.
1462            * reloc.c (bfd_generic_relax_section): Likewise.
1463            * reloc16.c (bfd_coff_reloc16_relax_section): Likewise.
1464            * vms.c (vms_bfd_relax_section): Likewise.
1465    
1466          * elf.c (bfd_elf_get_elf_syms): Don't leak memory on error.  2009-05-26  H.J. Lu  <hongjiu.lu@intel.com>
         * elflink.c (_bfd_elf_link_read_relocs): bfd_release on error.  
         (elf_link_add_object_symbols): Don't leak memory on error.  
         (bfd_elf_size_dynsym_hash_dynstr): Likewise.  
         (elf_fixup_link_order): Free sections.  
   
 2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>  
   
         * elf-bfd.h (elf_backend_data): Add a "rela_plts_and_copies_p" field.  
         * elfxx-target.h (elf_backend_rela_plts_and_copies_p): New macro.  
         (elfNN_bed): Use it.  
         * elf.c (_bfd_elf_get_synthetic_symtab): Use rela_plts_and_copies_p  
         instead of default_use_rela_p to choose between ".rel.plt" and  
         ".rela.plt".  
         * elflink.c (_bfd_elf_create_dynamic_sections): Use  
         rela_plts_and_copies_p instead of default_use_rela_p to choose  
         between ".rel.plt" and ".rela.plt", and between ".rel.bss" and  
         ".rela.bss".  
   
 2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>  
   
         * elf-bfd.h (MIPS_ELF_TDATA): New elf_object_id.  
         * elf32-mips.c (bfd_elf32_mkobject): Define.  
         * elf64-mips.c (bfd_elf64_mkobject): Likewise.  
         * elfn32-mips.c (bfd_elf32_mkobject): Likewise.  
         * elfxx-mips.h (_bfd_mips_elf_mkobject): Declare.  
         * elfxx-mips.c (is_mips_elf): New macro.  
         (_bfd_mips_elf_mkobject): New function.  
         (_bfd_mips_elf_final_link): Use is_mips_elf.  
         (_bfd_mips_elf_merge_private_bfd_data): Likewise.  
   
 2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>  
   
         * elfxx-mips.c (mips_elf_record_relocs): Defer allocation of a  
         global GOT entry when deferring allocation of dynamic relocations.  
         (allocate_dynrelocs): When allocating deferred dynamic relocations,  
         also do the deferred allocation of a GOT entry.  
   
 2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>  
   
         * elfxx-mips.c (mips_got_info): Add a "reloc_only_gotno" field.  
         (mips_elf_got_section): Delete.  
         (mips_elf_sort_hash_table): Use g->reloc_only_gotno to decide  
         how many reloc-only entries there are.  
         (mips_elf_count_got_symbols): Adjust g->reloc_only_gotno as  
         well as g->global_gotno.  
         (mips_elf_make_got_per_bfd): Initialize reloc_only_gotno.  
         (mips_elf_multi_got): Likewise.  Use gg->reloc_only_gotno  
         rather than gg->assigned_gotno to store the number of  
         reloc-only GOT entries.  
         (mips_elf_create_got_section): Remove the MAYBE_EXCLUDE parameter.  
         Initialize reloc_only_gotno.  
         (mips_elf_calculate_relocation): Check htab->got_info instead of  
         dynobj when deciding whether to call mips_elf_adjust_gp,  
         (_bfd_mips_elf_create_dynamic_sections): Adjust the call  
         to mips_elf_create_got_section.  
         (mips_elf_record_relocs): Likewise.  Remove redundant  
         "dynobj == NULL" code.  Do not use mips_elf_create_got_section  
         or mips_elf_record_global_got_symbol for R_MIPS_32, R_MIPS_REL32  
         and R_MIPS_64; limit global_got_area to GGA_RELOC_ONLY instead.  
         (_bfd_mips_elf_finish_dynamic_symbol): Use htab->sgot instead  
         of mips_elf_got_section.  
         (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.  
         (_bfd_mips_elf_finish_dynamic_sections): Likewise.  
         Move the initial assignment of G to the block that uses it;  
         it is used for an unrelated purpose later.  
   
 2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>  
   
         * elfxx-mips.c (count_section_dynsyms): Move before the new first use.  
         (mips_elf_sort_hash_table): Take the output bfd as a parameter.  
         Remove the MAX_LOCAL parameter.  Exit early if there are no  
         dynamic symbols, if there is no dynobj, or if there is no  
         GOT section.  Use count_section_dynsyms instead of MAX_LOCAL.  
         Assert == rather than <= when checking hsd.max_unref_got_dynindx.  
         Also assert that g->global_gotno is right.  
         (mips_elf_count_forced_local_got_symbols): Rename to...  
         (mips_elf_count_got_symbols): ...and count global GOT entries too.  
         Set the global_got_area of a forced-local GGA_RELOC_ONLY symbol  
         to GGA_NONE.  
         (mips_elf_multi_got): Don't sort the symbol table.  
         (mips_elf_lay_out_got): Likewise.  Use mips_elf_count_got_symbols  
         to count the number of global GOT entries.  
         (_bfd_mips_elf_final_link): Unconditionally call  
         mips_elf_sort_hash_table.  
   
 2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>  
   
         * elfxx-mips.c (GGA_NORMAL, GGA_RELOC_ONLY, GGA_NONE): New macros.  
         (mips_elf_link_hash_entry): Add a "global_got_area" field.  
         (mips_elf_link_hash_newfunc): Initialize it.  
         (mips_elf_sort_hash_table_f): Use h->global_got_area instead of  
         h->root.got.offset.  Do not handle forced_local symbols specially.  
         (mips_elf_record_global_got_symbol): Set h->global_got_area  
         instead of h->root.got.offset.  
         (mips_elf_recreate_got): Assert that h->global_got_area == GGA_NONE  
         for indirect and warning symbols.  
         (mips_elf_count_forced_local_got_symbols): Change the argument  
         from a "elf_link_hash_entry" to "mips_elf_link_hash_entry".  
         Use and set h->global_got_area instead of h->root.got.offset.  
         Set it to GGA_NONE for all forced-local symbols.  
         (mips_elf_set_global_got_offset): Set h->global_got_area  
         instead of h->root.got.offset.  Use g->global_got_area instead  
         of a combination of dynindx, forced_local and tls_type.  
         (mips_elf_multi_got): Remove disabled code.  Pass GGA_* values to  
         mips_elf_set_global_got_offset.  
         (mips_elf_lay_out_got): Use mips_elf_link_hash_traverse instead  
         of elf_link_hash_traverse.  
         (_bfd_mips_elf_copy_indirect_symbol): Copy the indirect symbol's  
         global_got_area to the direct symbol if the latter's value is higher.  
         Set the indirect symbol's area to GGA_NONE.  
   
 2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>  
   
         * elf32-mips.c (elf_backend_hide_symbol): Delete.  
         * elfn32-mips.c (elf_backend_hide_symbol): Likewise.  
         * elf64-mips.c (elf_backend_hide_symbol): Likewise.  
         * elfxx-mips.h (elf_backend_hide_symbol): Likewise.  
         * elfxx-mips.c (mips_elf_link_hash_entry): Remove "forced_local"  
         and add "needs_lazy_stub".  
         (mips_elf_link_hash_newfunc): Update accordingly.  
         (mips_elf_link_hash_table): Remove "computed_got_sizes" and  
         add "lazy_stub_count".  
         (_bfd_mips_elf_link_hash_table_create): Update accordingly.  
         (mips_elf_output_extsym): Use hd->needs_lazy_stub to detect  
         cases where a lazy stub is being used.  
         (mips_elf_sort_hash_table_f): Use h->root.forced_local instead  
         of h->forced_local.  
         (mips_elf_record_global_got_symbol): Use _bfd_elf_link_hash_hide_symbol  
         instead of _bfd_mips_elf_hide_symbol.  Do not increment local_gotno  
         here.  
         (mips_elf_allocate_dynamic_relocations): Move before new first use.  
         (mips_elf_check_recreate_got, mips_elf_recreate_got): New functions.  
         (mips_elf_resolve_final_got_entries): Move earlier in file.  Make at  
         most two passes over the hash table.  Use mips_elf_check_recreate_got  
         to see if there are any indirect or warning entries and  
         mips_elf_recreate_got to create a new GOT without them.  
         Return a boolean success value.  
         (mips_elf_count_forced_local_got_entries): New function.  
         (mips_elf_make_got_per_bfd): Check h->root.forced_local instead of  
         h->forced_local.  
         (mips_elf_set_global_got_offset): Likewise.  
         (mips_elf_set_no_stub): Replace with...  
         (mips_elf_forbid_lazy_stubs): ...this new function.  
         (mips_elf_resolve_final_got_entry): Delete.  
         (mips_elf_multi_got): Fix formatting.  Use mips_elf_forbid_lazy_stubs  
         instead of mips_elf_set_no_stub.  Move the code that sets  
         global offsets and allocates dynamic relocations from the main  
         _bfd_mips_elf_size_dynamic_sections loop to here.  
         (_bfd_mips_elf_adjust_dynamic_symbol): Do not allocate room in  
         .MIPS.stubs here; just set hmips->needs_lazy_stub and increment  
         htab->lazy_stub_count.  
         (_bfd_mips_elf_always_size_sections): Move the stub-estimation  
         code to mips_elf_estimate_stub_size and the GOT-sizing code to  
         mips_elf_lay_out_got.  Do not call these functions here.  
         (mips_elf_estimate_stub_size): New function, split  
         out from _bfd_mips_elf_always_size_sections.  Call  
         mips_elf_resolve_final_got_entries earlier.  Count the number  
         of forced-local entries.  Do not add stub sizes to loadable_size;  
         after this patch, the stub sizes are already included in the main  
         estimate.  Allocate dynamic relocations here rather than in the  
         main _bfd_mips_elf_size_dynamic_sections loop.  
         (mips_elf_estimate_stub_size): New function, split out from  
         _bfd_mips_elf_always_size_sections.  
         (mips_elf_allocate_lazy_stub): New function.  
         (mips_elf_lay_out_lazy_stubs): Likewise.  
         (_bfd_mips_elf_size_dynamic_sections): Call mips_elf_estimate_stub_size,  
         mips_elf_lay_out_got and mips_elf_lay_out_lazy_stubs.  Do not handle  
         the allocation of sreldyn specially.  
         (_bfd_mips_elf_hide_symbol): Delete.  
1467    
1468  2008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>          * elf-bfd.h (_bfd_elf_is_ifunc_symbol): New.
1469    
1470          * elfxx-mips.c (allocate_dynrelocs): Ignore indirect and warning          * elf32-i386.c (is_indirect_symbol): Renamed to ...
1471          symbols.          * elflink.c (_bfd_elf_is_ifunc_symbol): This.
1472    
1473  2008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>          * elf32-i386.c (allocate_dynrelocs): Updated.
1474            (elf_i386_relocate_section): Likewise.
1475            * elf64-x86-64.c (allocate_dynrelocs): Likewise.
1476            (elf64_x86_64_relocate_section): Likewise.
1477    
1478          * elfxx-mips.c (mips_elf_link_hash_entry): Move bfd_boolean          * elf64-x86-64.c (is_indirect_symbol): Removed.
         fields to the end of the structure and make them single-bit  
         bitfields.  
         (mips_elf_link_hash_newfunc): Make the initialization statements  
         follow the new field order.  
   
 2008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>  
   
         * elfxx-mips.c (_mips_elf_section_data): Remove the "u.got_info" field.  
         (mips_elf_link_hash_table): Add "sgot" and "got_info" fields.  
         (_bfd_mips_elf_link_hash_table_create): Initialize them.  
         (mips_elf_got_section): Always apply the !maybe_excluded behavior.  
         (mips_elf_got_info): Delete.  
         (mips_elf_initialize_tls_slots): Remove the DYNOBJ local variable.  
         Adjust the call to mips_elf_got_section.  
         (mips_elf_local_got_index): Don't call mips_elf_got_info.  
         Update the call to mips_elf_create_local_got_entry.  
         Use htab->got_info.  
         (mips_elf_global_got_index): Don't call mips_elf_got_info;  
         use htab->got_info and htab->sgot instead.  
         (mips_elf_got_page): Don't call mips_elf_got_info.  Update the  
         call to mips_elf_create_local_got_entry.  
         (mips_elf_got16_entry): Likewise.  
         (mips_elf_got_offset_from_index): Replace with DYNOBJ parameter  
         with an INFO parameter.  Don't call mips_elf_got_info; use htab->sgot  
         and htab->got_info instead.  
         (mips_elf_create_local_got_entry): Remove the GG and SGOT parameters.  
         Use htab->sgot and htab->got_info.  
         (mips_elf_sort_hash_table): Remove the DYNOBJ local variable.  
         Don't call mips_elf_got_info; use htab->got_info instead.  
         (mips_elf_record_global_got_symbol): Turn G from a paramter to  
         a local variable and read it from htab->got_info.  
         (mips_elf_record_local_got_symbol): Replace the G parameter with  
         an INFO parameter.  Make G a local variable and read it from  
         htab->got_info instead.  
         (mips_elf_record_got_page_entry): Likewise.  
         (mips_elf_multi_got): Remove the G parameter and make it a local  
         variable instead.  Read it from htab->got_info.  
         (mips_elf_create_got_section): Cache the GOT section in htab->sgot.  
         Store the GOT information in htab->got_info.  
         (mips_elf_calculate_relocation): Don't call mips_elf_got_section  
         and mips_elf_got_info; use htab->sgot and htab->got_info instead.  
         Adjust the calls to mips_elf_got_offset_from_index and  
         mips_elf_adjust_gp.  
         (_bfd_mips_elf_check_relocs): Remove the G and SGOT local variables.  
         Adjust the calls to mips_elf_record_local_got_symbol,  
         mips_elf_record_global_got_symbol and mips_elf_record_got_page_entry.  
         Use htab->sgot.  
         (_bfd_mips_elf_always_size_sections): Remove the DYNOBJ local variable.  
         Don't call mips_elf_got_info; use htab->sgot and htab->got_info instead.  
         Update the call to mips_elf_multi_got.  
         (_bfd_mips_elf_size_dynamic_sections): Don't call mips_elf_got_info;  
         use htab->got_info instead.  
         (_bfd_mips_elf_finish_dynamic_symbol): Update the call to  
         mips_elf_got_section.  Get the got_info from the hash table  
         rather than the GOT section.  
         (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.  
         (_bfd_mips_elf_finish_dynamic_sections): Likewise.  
         (_bfd_mips_elf_hide_symbol): Don't call mips_elf_got_section;  
         get the got_info from the hash table instead.  Remove the GOT  
         local variable.  
         (_bfd_mips_elf_final_link): Likewise.  Also remove the DYNOBJ  
         local variable.  
1479    
1480  2008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>  2009-05-26  Nick Clifton  <nickc@redhat.com>
1481    
1482          * elfxx-mips.c (mips_elf_link_hash_table): Add an "sstubs" field.          * po/id.po: Updated Indonesian translation.
         (_bfd_mips_elf_create_dynamic_sections): Use it to cache the stubs  
         section.  Don't check whether the section already exists.  
         (_bfd_mips_elf_adjust_dynamic_symbol): Use htab->sstubs.  
         (_bfd_mips_elf_finish_dynamic_symbol): Likewise.  
         (_bfd_mips_elf_finish_dynamic_sections): Likewise.  
         (_bfd_mips_elf_size_dynamic_sections): Likewise.  Don't add the  
         dummy stub to an empty section.  
         (_bfd_mips_elf_link_hash_table_create): Initialize the "sstubs" field.  
   
 2008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>  
   
         * reloc.c (BFD_RELOC_MIPS16_GOT16, BFD_RELOC_MIPS16_CALL16): Declare.  
         * libbfd.h, bfd-in2.h: Regenerate.  
         * elf32-mips.c (elf_mips16_howto_table_rel): Fill in reserved  
         R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.  
         (mips16_reloc_map): Add mappings.  
         * elf64-mips.c (mips16_elf64_howto_table_rel): Fill in reserved  
         R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.  
         (mips16_elf64_howto_table_rela): Likewise.  
         (mips16_reloc_map): Add mappings.  
         * elfn32-mips.c (elf_mips16_howto_table_rel): Fill in reserved  
         R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.  
         (elf_mips16_howto_table_rela): Likewise.  
         (mips16_reloc_map): Add mappings.  
         * elfxx-mips.c (mips_elf_create_shadow_symbol): New function.  
         (section_allows_mips16_refs_p): Likewise.  
         (mips16_stub_symndx): Likewise.  
         (mips_elf_check_mips16_stubs): Treat the data argument as a  
         bfd_link_info.  Mark every dynamic symbol as needing MIPS16 stubs  
         and create a "shadow" symbol for the original MIPS16 definition.  
         (mips16_reloc_p, got16_reloc_p, call16_reloc_p, hi16_reloc_p)  
         (lo16_reloc_p, mips16_call_reloc_p): New functions.  
         (_bfd_mips16_elf_reloc_unshuffle): Use mips16_reloc_p to generalize  
         relocation checks.  
         (_bfd_mips16_elf_reloc_shuffle): Likewise.  
         (_bfd_mips_elf_lo16_reloc): Handle R_MIPS16_GOT16.  
         (mips_elf_got16_entry): Add comment.  
         (mips_elf_calculate_relocation): Use hi16_reloc_p,  
         lo16_reloc_p, mips16_call_reloc_p, call16_reloc_p and got16_reloc_p  
         to generalize relocation checks.  Use section_allows_mips16_refs_p  
         instead of mips16_stub_section_p.   Handle R_MIPS16_CALL16 and  
         R_MIPS16_GOT16, allowing the former to refer directly to a  
         MIPS16 function if its stub is not needed.  
         (mips16_stub_section_p): Delete.  
         (_bfd_mips_elf_symbol_processing): Convert odd-valued function  
         symbols into even MIPS16 symbols.  
         (mips_elf_add_lo16_rel_addend): Use mips16_reloc_p to generalize  
         a relocation check.  
         (_bfd_mips_elf_check_relocs): Calculate "bed" and "rel_end"  
         earlier in the function.  Use mips16_stub_symndx to identify  
         the target function.  Avoid out-of-bounds accesses when the  
         stub has no relocations; report an error instead.  Use  
         section_allows_mips16_refs_p instead of mips16_stub_section_p.  
         Use mips16_call_reloc_p and got16_reloc_p to generalize relocation  
         checks.  Handle R_MIPS16_CALL16 and R_MIPS16_GOT16.  Don't create  
         dynamic relocations for absolute references to __gnu_local_gp.  
         (_bfd_mips_elf_always_size_sections): Pass a bfd_link_info as  
         the argument to mips_elf_check_mips16_stubs.  Generalize comment.  
         (_bfd_mips_elf_relocate_section): Use hi16_reloc_p and got16_reloc_p  
         to generalize relocation checks.  
         (_bfd_mips_elf_finish_dynamic_symbol): If a dynamic MIPS16 function  
         symbol has a non-MIPS16 stub, redirect the symbol to the stub.  
         Fix an overly long line.  Don't give dynamic symbols type STO_MIPS16.  
         (_bfd_mips_elf_gc_sweep_hook): Handle R_MIPS16_CALL16 and  
         R_MIPS16_GOT16.  
   
 2008-08-06  Alan Modra  <amodra@bigpond.net.au>  
   
         * elf32-ppc.c (ppc_elf_relax_section): Clear R_PPC_PLTREL24 addend.  
         (ppc_elf_relocate_section <R_PPC_RELAX32_PLT>): Don't bother here.  
   
 2008-08-05  Alan Modra  <amodra@bigpond.net.au>  
             Jaka Močnik <jaka@xlab.si>  
   
         * coffcode.h (coff_slurp_line_table): bfd_alloc lineno_cache first  
         so that we don't inadvertently free it.  Use bfd_alloc for sort  
         arrays, and memcpy sorted line table.  
1483    
1484  2008-08-04  Alan Modra  <amodra@bigpond.net.au>  2009-05-26  Rafael Avila de Espindola  <espindola@google.com>
1485    
1486          * elf32-spu.c (spu_elf_auto_overlay): Use the maximum possible          * Makefile.am: Run "make dep-am".
1487          if --fixed-space request is too large.          (AM_CPPFLAGS): New.
1488            (LIBDL): New.
1489            (ALL_MACHINES): Add cpu-plugin.lo.
1490            (ALL_MACHINES_CFILES): Add cpu-plugin.c.
1491            (BFD32_BACKENDS): Add plugin.lo.
1492            (BFD32_BACKENDS_CFILES): Add plugin.c.
1493            (libbfd_la_LIBADD): Add LIBDL
1494            * archures.c (bfd_architecture): Add bfd_arch_plugin.
1495            (bfd_plugin_arch): Declare.
1496            * bfd-in.h (BFD_SUPPORTS_PLUGINS): New.
1497            * bfd.c (bfd): Add plugin_data.
1498            * config.bfd: Handle the plugin target.
1499            * configure.in: Check for --enable-plugins.
1500            (LT_INIT): Use the dlopen option.
1501            * cpu-plugin.c: New.
1502            * plugin.c: New.
1503            * plugin.h: New.
1504            * targets.c (plugin_vec): Declare.
1505            (_bfd_target_vector): Add plugin_vec.
1506            * Makefile.in: Regenerate.
1507            * bfd-in2.h: Regenerate.
1508            * configure: Regenerate.
1509    
1510  2008-08-04  Alan Modra  <amodra@bigpond.net.au>  2009-05-26  Alan Modra  <amodra@bigpond.net.au>
1511    
1512          * Makefile.am (SRC-POTFILES.in, BLD-POTFILES.in): Set LC_ALL=C.          * dep-in.sed: Don't modify .o to .lo here.  Output one filename
1513            per line with all lines having continuation backslash.  Prefix
1514            first line with "A", following lines with "B".
1515            * Makefile.am (DEP): Don't use dep.sed here.
1516            (DEP1): Run $MKDEP on single files, modify .o to .lo here.  Use
1517            dep.sed here on dependencies, sort and uniq.
1518          * Makefile.in: Regenerate.          * Makefile.in: Regenerate.
         * po/SRC-POTFILES.in: Regenerate.  
1519    
1520  2008-08-02  Alan Modra  <amodra@bigpond.net.au>  2009-05-25  Tristan Gingold  <gingold@adacore.com>
1521    
1522            * makefile.vms: Add verilog.obj to object list OBJS.
1523    
1524          * elf32-spu.c (mark_overlay_section): Move code calculating  2009-05-24  Alan Modra  <amodra@bigpond.net.au>
1525          max_overlay_size to correct block.  
1526          (spu_elf_auto_overlay): Don't use %x in einfo error message.         * bfdio.c (bfd_seek): Formatting.  Ensure newly allocated memory
1527           for BFD_IN_MEMORY is cleared.
1528  2008-08-01  Alan Modra  <amodra@bigpond.net.au>         (bfd_bwrite): Zero excess memory allocated.
1529              Jan Kratochvil  <jan.kratochvil@redhat.com>  
1530    2009-05-22  Julian Brown  <julian@codesourcery.com>
1531          * elfcore.h (elf_core_file_p): Ensure we have a backend match  
1532          with the correct arch size before rejecting the generic fallback.          * elf32-arm.c (THUMB16_BCOND_INSN, THUMB32_INSN, THUMB32_B_INSN): New
1533          * elfcode.h (elf_object_p): Likewise.  Ensure arch size matches          macros.
1534          before accepting a target.          (elf32_arm_stub_a8_veneer_b_cond, elf32_arm_stub_a8_veneer_b)
1535            (elf32_arm_stub_a8_veneer_blx): New stub sequences.
1536  2008-08-01  Alan Modra  <amodra@bigpond.net.au>          (elf32_arm_stub_type): Add arm_stub_a8_veneer_b_cond,
1537            arm_stub_a8_veneer_b and arm_stub_a8_veneer_blx.
1538          PR 6774          (elf32_arm_stub_hash_entry): Add target_addend, orig_insn fields.
1539          * elf.c (rewrite_elf_program_header): Don't wrap p_paddr to          (a8_erratum_fix, a8_erratum_reloc): New structs.
1540          include file or program headers.          (elf32_arm_link_hash_table): Add a8_erratum_fixes,
1541            num_a8_erratum_fixes, fix_cortex_a8 fields.
1542  2008-07-30  Alan Modra  <amodra@bigpond.net.au>          (elf32_arm_link_hash_table_create): Zero fix_cortex_a8.
1543            (elf32_arm_add_stub): Split into two parts, creating...
1544          * coff-ppc.c, coffgen.c, ecoff.c, ecofflink.c, elf.c, elf32-frv.c,          (elf32_arm_create_or_find_stub_sec): New function.
1545          elf32-iq2000.c, elf32-m32c.c, elf32-mep.c, elf32-mt.c,          (elf32_arm_final_link_relocate): Add forward declaration.
1546          elf32-sh-symbian.c, elf64-hppa.c, mach-o.c, peXXigen.c, pef.c,          (arm_build_one_stub): Add support for THUMB32_TYPE, Thumb-2
1547          ppcboot.c, vms-misc.c, xsym.c: Silence gcc warnings.          relocations, multiple relocations per stub.
1548            (find_stub_size_and_template): New (using parts of arm_size_one_stub).
1549  2008-07-28  Daniel Jacobowitz  <dan@codesourcery.com>          (arm_size_one_stub): Use find_stub_size_and_template.
1550            (a8_reloc_compare): New.
1551          * elfxx-mips.c (mips_elf_calculate_relocation): Avoid generating          (find_thumb_glue): Add forward declaration.
1552          relocations for undefined weak symbols with non-default visibility.          (cortex_a8_erratum_scan): New.
1553          (_bfd_mips_elf_check_relocs): Use possibly_dynamic_relocs for          (elf32_arm_size_stubs): Add Cortex-A8 erratum workaround support.
1554          global symbols in shared libraries.          (bfd_elf32_arm_set_cortex_a8_fix): New.
1555          (allocate_dynrelocs): New function.          (bfd_elf32_arm_set_target_relocs): Add fix_cortex_a8 argument.
1556          (_bfd_mips_elf_adjust_dynamic_symbol): Do not handle          (arm_map_one_stub): Add THUMB32_TYPE support.
1557          possibly_dynamic_relocs here.          (a8_branch_to_stub_data): New.
1558          (_bfd_mips_elf_size_dynamic_sections): Call allocate_dynrelocs.          (make_branch_to_a8_stub): New.
1559            (elf32_arm_write_section): Add Cortex-A8 erratum workaround support.
1560  2008-07-28  Alexandre Oliva  <aoliva@redhat.com>          * bfd-in.h (bfd_elf32_arm_set_cortex_a8_fix): New.
1561            (bfd_elf32_arm_set_target_relocs): Add argument for controlling
1562          * elf32-i386.c (struct elf_i386_link_hash_table): Added field          Cortex-A8 erratum workaround.
         tls_module_base.  
         (elf_i386_link_hash_table_create): Initialize it.  
         (elf_i386_always_size_sections): Set it.  
         (set_tls_module_base): New.  
         (elf_i386_relocate_sections): Call it.  
         * elf64-x86-64.c (struct elf64_x86_64_link_hash_table): Added  
         field tls_module_base.  
         (elf64_x86_64_link_hash_table_create): Initialize it.  
         (elf64_x86_64_always_size_sections): Set it.  
         (set_tls_module_base): New.  
         (elf64_x86_64_relocate_sections): Call it.  
         Reported by Cary Coutant <ccoutant@google.com>  
   
 2008-07-28  Ineiev  <ineiev@yahoo.co.uk>  
   
         * elf32-arm.c (arm_map_one_stub): Declare variables at beginning  
         of block.  
         * elf32-avr.c (get_local_syms): Likewise.  
   
 2008-07-28  Alan Modra  <amodra@bigpond.net.au>  
   
         PR 6769  
         * bfd-in.h (BFD_VMA_FMT): Define.  
         (printf_vma, sprintf_vma): Use the above.  
         (_bfd_int64_low, _bfd_int64_high): Delete.  
1563          * bfd-in2.h: Regenerate.          * bfd-in2.h: Regenerate.
1564    
1565  2008-07-27  Alan Modra  <amodra@bigpond.net.au>  2009-05-22  Alan Modra  <amodra@bigpond.net.au>
1566    
1567            * Makefile.am: Run "make dep-am".
1568            * Makefile.in: Regenerate.
1569            * po/SRC-POTFILES.in: Regenerate.
1570    
1571          * elf.c (_bfd_elf_make_section_from_shdr): Ignore return from  2009-05-21  Alan Modra  <amodra@bigpond.net.au>
         elf_parse_notes.  Use bfd_malloc_and_get_section.  
         (elf_parse_notes): Validate note namesz and descsz.  
1572    
1573  2008-07-26  Michael Eager <eager@eagercon.com>          * elflink.c (elf_link_input_bfd): Correct *pindex change in last
1574            commit.
1575    
1576          * elf32-ppc.c (ppc_elf_merge_obj_attributes): Check compatibility  2009-05-21  Alan Modra  <amodra@bigpond.net.au>
         between single-float, double-float, and soft-float.  
1577    
1578  2008-07-24  Daniel Jacobowitz  <dan@codesourcery.com>          * elf-bfd.h (struct elf_backend_data
1579            <elf_backend_link_output_symbol_hook>): Return an int.
1580            * elf64-ppc.c (ppc64_elf_output_symbol_hook): Return 2 to drop
1581            symbols on deleted .opd entries.
1582            * elflink.c (elf_link_output_sym): Return without outputting sym
1583            if output_symbol_hook returns 2.
1584            (elf_link_output_extsym): Don't assign h->indx when symbol discarded.
1585            Abort if we must not discard sym.
1586            (elf_link_input_bfd): Similarly, don't set finfo->indices for
1587            local syms.
1588            (bfd_elf_final_link): Adjust elf_link_output_sym calls.
1589            * elf-vxworks.c (elf_vxworks_link_output_symbol_hook): Adjust for
1590            elf_backend_link_output_symbol_hook return type change.
1591            * elf32-arm.c (output_arch_syminfo): Likewise.
1592            (elf32_arm_output_map_sym, elf32_arm_output_stub_sym): Likewise.
1593            (elf32_arm_output_arch_local_syms): Likewise.
1594            * elf32-cr16c.c (elf32_cr16c_link_output_symbol_hook): Likewise.
1595            * elf32-score.c (s3_bfd_score_elf_link_output_symbol_hook): Likewise.
1596            (bfd_score_elf_link_output_symbol_hook): Likewise.
1597            * elf32-score.h (s7_bfd_score_elf_link_output_symbol_hook): Likewise.
1598            * elf32-score7.c (s7_bfd_score_elf_link_output_symbol_hook): Likewise.
1599            * elf32-sh64.c (sh64_elf_link_output_symbol_hook): Likewise.
1600            * elf32-spu.c (spu_elf_output_symbol_hook): Likewise.
1601            * elf32-v850.c (v850_elf_link_output_symbol_hook): Likewise.
1602            * elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Likewise.
1603            * elf64-mmix.c (mmix_elf_link_output_symbol_hook): Likewise.
1604            * elf64-sh64.c (sh64_elf64_link_output_symbol_hook): Likewise.
1605            * elf64-sparc.c (elf64_sparc_output_arch_syms): Likewise.
1606            * elfxx-mips.c (_bfd_mips_elf_link_output_symbol_hook): Likewise.
1607            * elfxx-mips.h (_bfd_mips_elf_link_output_symbol_hook): Likewise.
1608    
1609          * elf32-mips.c (elf_backend_write_section): Define.  2009-05-21  Alan Modra  <amodra@bigpond.net.au>
1610    
1611  2008-07-24  Nick Clifton  <nickc@redhat.com>          * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't segfault on
1612            out of range .opd symbols.
1613    
1614          * elf.c (_bfd_elf_map_sections_to_segments): Catch off by one  2009-05-21  Dave Korn  <dave.korn.cygwin@gmail.com>
         error assigning sections to segments.  
1615    
1616  2008-07-22  Nick Clifton  <nickc@redhat.com>          * coffgen.c (coff_print_symbol):  Use bfd_fprintf_vma, not
1617            fprintf_vma directly.
1618            * peXXigen.c (pe_print_edata):  Likewise.
1619            (pe_print_pdata):  Likewise.
1620            (_bfd_XX_print_ce_compressed_pdata):  Likewise.
1621            (_bfd_XX_print_private_bfd_data_common):  Likewise.
1622    
1623          * elf.c (_bfd_elf_map_sections_to_segments): Allow sections in  2009-05-19  Dave Korn  <dave.korn.cygwin@gmail.com>
         adjoining pages to be included in the same segment.  
1624    
1625  2008-07-22  Simon Baldwin  <simonb@google.com>          * cofflink.c (process_embedded_commands):  Ignore "-aligncomm".
1626    
1627          * elflink.c (elf_link_output_extsym): Set st_size to zero for  2009-05-15  Andrew Stubbs  <ams@codesourcery.com>
1628          symbols from dynamic libraries.              Paul Brook  <paul@codesourcery.com>
1629    
1630  2008-07-21  H.J. Lu  <hongjiu.lu@intel.com>          * elf32-arm.c (elf32_arm_fix_exidx_coverage): Don't attempt to
1631            fix discarded sections.
1632    
1633          PR ld/4424  2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
         * elflink.c (_bfd_elf_merge_symbol): Call bed->relocs_compatible  
         to check if 2 inputs are compatible.  
1634    
1635  2008-07-21  Sterling Augustine  <sterling@tensilica.com>          * elf32-spu.c (mark_overlay_section): Move .init and .fini
1636            sections into the software icache.
1637    
1638          * elf.c (assign_file_positions_for_load_sections): Print vma in  2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
         error message about overlapping section vmas.  
1639    
1640  2008-07-21  H.J. Lu  <hongjiu.lu@intel.com>          * elf32-spu.c (build_stub): Always build "compact" sofware
1641            i-cache stubs.
1642    
1643          PR ld/6747  2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
         * elf32-frv.c (elf32_frv_relocate_section): Revert the change  
         for PR ld/6446 checked in by accident on May 21, 2008.  
1644    
1645  2008-07-21  Nick Clifton  <nickc@redhat.com>          * elf32-spu.c (struct spu_link_hash_table): Add fromelem_size_log2.
1646            (spu_elf_setup): Initialize it.
1647            (spu_elf_size_stubs): Move .ovtab into .bss for software i-cache.
1648            Update to new-sytle cache manager data structures.
1649            (spu_elf_build_stubs): Generate new-style cache manager data
1650            structures and symbols.
1651            (spu_elf_auto_overlay): Update size computation.
1652    
1653          * coff-sh.c (bfd_pe_print_pdata): Define to NULL for non  2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
         COFF_WITH_PE based SH ports.  
         * libpei.h (_bfd_XX_print_ce_compressed_pdata): Prototype.  
         * arm-wince-pe.c (bfd_pe_print_pdata): Use  
         _bfd_pe_print_ce_compressed_pdata.  
         (slurp_symcache, cleanup_syms, pe_print_ce_compressed_pdata): Move  
         to...  
         * peXXigen.c: ... here and rename pe_print_ce_compressed_pdata to  
         _bfd_XX_print_ce_compressed_pdata.  
1654    
1655  2008-07-21  Alan Modra  <amodra@bigpond.net.au>          * elf32-spu.c (spu_elf_modify_segment_map): Move all PF_OVERLAY
1656            segments first amongst the program headers.
1657    
1658          * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Drop  2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
         unwanted zero terminators.  
1659    
1660  2008-07-21  Alan Modra  <amodra@bigpond.net.au>          * elf32-spu.c (spu_elf_relocate_section): Only encode overlay index
1661            into addresses for relocation types that look at high bits.  Remove
1662            special handling of relocation overflow warnings.
1663    
1664          * elf32-spu.c (spu_elf_relocate_section): Expand  2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
         RELOC_FOR_GLOBAL_SYMBOL.  Don't warn about undefined symbols for  
         R_SPU_PPU32 and R_SPU_PPU64 relocations.  
1665    
1666  2008-07-21  Luis Machado  <luisgpm@br.ibm.com>          * elf32-spu.c (mark_functions_via_relocs): Handle cycles in the
1667            control flow graph between fragments of a function.
1668    
1669          * elf-bfd.h: Declare elfcore_write_ppc_vsx.  2009-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
         * elf.c (elfcore_grok_ppc_vsx): New function.  
         (elfcore_write_ppc_vsx): New function  
         (elfcore_grok_note): Handle VSX notes.  
         (elfcore_write_register_note): Handle VSX notes.  
1670    
1671  2008-07-18  Joseph Myers  <joseph@codesourcery.com>          * elf32-spu.c (spu_elf_size_stubs): Even in software i-cache mode,
1672            generate only a 16-byte .toe section.
1673            (spu_elf_build_stubs, spu_elf_auto_overlay): Likewise.
1674    
1675          * bfd-in.h (bfd_elf32_arm_set_target_relocs): Add new parameter.  2009-05-14  Alan Modra  <amodra@bigpond.net.au>
         * bfd-in2.h: Regenerate.  
         * elf32-arm.c (struct elf_arm_obj_tdata): Add field  
         no_wchar_size_warning.  
         (bfd_elf32_arm_set_target_relocs): Add new parameter  
         no_wchar_warn.  
         (elf32_arm_merge_eabi_attributes): Give a warning, not an error,  
         for conflicting wchar_t attributes.  Do not warn if  
         --no-wchar-size-warning.  Make diagnostic text more specific.  
   
 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>  
   
         PR ld/6748  
         * elf32-arm.c (elf32_arm_link_hash_table_create): Initialize  
         new fields added for ARM long call support.  
   
 2008-07-18  Danny Backx  <dannybackx@users.sourceforge.net>  
   
         * pe-arm-wince.c (pe_print_compressed_pdata): Define new function to  
         print compressed pdata structure as described on MSDN. This only  
         applies to a limited set of architectures (ARM, SH4).  
         (slurp_symtab, my_symbol_for_address): Define static helper  
         functions for pe_print_compressed_pdata.  
         * coffcode.h (bfd_coff_backend_data): Add _bfd_coff_print_pdata field.  
         (bfd_coff_have_print_pdata, bfd_coff_print_pdata): Define.  
         * bfd/peXXigen.c (_bfd_XX_print_private_bfd_data_common): Add check on  
         bfd_coff_backend_data, call the function if non-null.  
         * pei-mcore.c: Add target dependent initialisation for  
         bfd_coff_backend_data.  
         * coff-sh.c: Likewise.  
         * coff64-rs6000.c: Likewise.  
         * coff-rs6000.c: Likewise.  
         * libcoff-in.h: Likewise.  
         * cf-i386lynx.c: Likewise.  
         * coff-alpha.c: Likewise.  
         * coff-apollo.c: Likewise.  
         * coff-arm.c: Likewise.  
         * coff-aux.c: Likewise.  
         * coff-h8300.c: Likewise.  
         * coff-h8500.c: Likewise.  
         * coff-i386.c: Likewise.  
         * coff-i860.c: Likewise.  
         * coff-i960.c: Likewise.  
         * coff-ia64.c: Likewise.  
         * coff-m68k.c: Likewise.  
         * coff-m88k.c: Likewise.  
         * coff-maxq.c: Likewise.  
         * coff-mips.c: Likewise.  
         * coff-or32.c: Likewise.  
         * coff-sparc.c: Likewise.  
         * coff-tic30.c: Likewise.  
         * coff-tic4x.c: Likewise.  
         * coff-tic54x.c: Likewise.  
         * coff-tic80.c: Likewise.  
         * coff-w65.c: Likewise.  
         * coff-we32k.c: Likewise.  
         * coff-x86_64.c: Likewise.  
         * coff-z80.c: Likewise.  
         * coff-z8k.c: Likewise.  
         * pe-mcore.c: Likewise.  
         * pe-mips.c: Likewise.  
         * pe-ppc.c: Likewise.  
         * peXXigen.c: Likewise.  
         * pei-ppc.c: Likewise.  
         * libcoff.h: Regenerate.  
1676    
1677  2008-07-16  Bernd Schmidt  <bernd.schmidt@analog.com>          * elf32-spu.c (spu_elf_size_stubs): Split out section placement to..
1678            (spu_elf_place_overlay_data): ..here.  New function.
1679            * elf32-spu.h (spu_elf_place_overlay_data): Declare.
1680    
1681          * elf32-bfin.c (bfin_check_relocs, bfin_relocate_section,  2009-05-13  Andrew Jenner  <andrew@codesourcery.com>
         bfin_final_link_relocate, bfin_gc_mark_hook, bfin_gc_sweep_hook,  
         ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE,  
         struct _bfinfdpic_dynamic_got_info): Moved around to keep FD-PIC code  
         separate from non-FD-PIC.  
1682    
1683  2008-07-14  DJ Delorie  <dj@redhat.com>          * elf32-arm.c: Move sysdep.h to start of file.
1684    
1685          * elf-m10300.c (mn10300_elf_final_link_relocate): Correct overflow  2009-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
         checks for PCREL8, PCREL16, GOTPC16, GOTOFF16, PLT16, and GOT16  
         relocs.  
         (mn10300_elf_relax_section): Correct jump offset check when target  
         is in a different section.  
1686    
1687  2008-07-15  Jie Zhang  <jie.zhang@analog.com>          * elf32-spu.c (spu_elf_find_overlays): Don't use .ovl.init lma as
1688            start of overlays.
1689            (spu_elf_build_stubs): Don't define __icache_tagbase.  Define
1690            __icache_tag_array and __icache_tag_array_size.
1691    
1692          * elf32-bfin.c (elf32_bfin_special_sections[]): New.  2009-05-11  Masaki Muranaka  <monaka@monami-software.com>
         (elf_backend_special_sections): Define.  
1693    
1694  2008-07-13  Craig Silverstein  <csilvers@google.com>          * elf32-bfin.c (bfin_bfd_reloc_type_lookup): Remove unnecessary
1695            ATTRIBUTE_UNUSED.
1696          PR binutils/6743          (bfinfdpic_link_omit_section_dynsym): Likewise.
1697          * dwarf2.c (struct dwarf2_debug): New variable info_ptr_memory.          (elf32_bfinfdpic_finish_dynamic_sections): Likewise.
1698          (find_line): Use info_ptr_memory instead of sec_info_ptr.  
1699          (_bfd_dwarf2_cleanup_debug_info): Likewise.  2009-05-05  Paul Brook  <paul@codesourcery.com>
1700    
1701  2008-07-12  Jie Zhang  <jie.zhang@analog.com>          * bfd-in.h (elf32_arm_fix_exidx_coverage): Add prototype.
   
         Revert  
         2008-07-12  Jie Zhang  <jie.zhang@analog.com>  
         * elf.c (_bfd_elf_map_sections_to_segments): Don't put  
         executable sections into the same segment with other  
         read only sections if --sep-code.  
         * elf32-bfin.c (elf32_bfin_code_in_l1): New variable.  
         (elf32_bfin_data_in_l1): New variable.  
         (elf32_bfin_final_write_processing): New.  
         (elf32_bfin_special_sections[]): New.  
         (elf_backend_final_write_processing): Define.  
         (elf_backend_special_sections): Define.  
   
 2008-07-12  Jie Zhang  <jie.zhang@analog.com>  
   
         * elf.c (_bfd_elf_map_sections_to_segments): Don't put  
         executable sections into the same segment with other  
         read only sections if --sep-code.  
         * elf32-bfin.c (elf32_bfin_code_in_l1): New variable.  
         (elf32_bfin_data_in_l1): New variable.  
         (elf32_bfin_final_write_processing): New.  
         (elf32_bfin_special_sections[]): New.  
         (elf_backend_final_write_processing): Define.  
         (elf_backend_special_sections): Define.  
   
 2008-07-11  Andreas Schwab  <schwab@suse.de>  
   
         * dwarf2.c (read_section): Take pointer to bfd_size_type instead  
         of unsigned long as last parameter.  
         (struct dwarf2_debug): Define dwarf_abbrev_size, dwarf_line_size,  
         dwarf_str_size and dwarf_ranges_size as bfd_size_type instead of  
         unsigned long.  
   
 2008-07-10  Richard Sandiford  <rdsandiford@googlemail.com>  
   
         * elfxx-mips.c (mips_elf_calculate_relocation): Calculate GP and GP0  
         for all relocation types.  Allow any type of relocation to refer to  
         __gnu_local_gp.  
   
 2008-07-10  Richard Sandiford  <rdsandiford@googlemail.com>  
   
         * elfxx-mips.c (mips_elf_check_mips16_stubs): Use ELF_ST_IS_MIPS16.  
         (mips_elf_calculate_relocation): Likewise.  
         (_bfd_mips_elf_add_symbol_hook): Likewise.  
         (_bfd_mips_elf_finish_dynamic_symbol): Likewise.  
         (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.  
   
 2008-07-10  Andreas Schwab  <schwab@suse.de>  
   
         * elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Add missing  
         paren.  
   
 2008-07-09  Craig Silverstein  <csilvers@google.com>  
   
         * Makefile.am (BFD32_LIBS): Add compress.lo.  
         (BFD32_LIBS_CFILES): Add compress.c.  
         (BFD_H_FILES): Likewise.  
         * Makefile.in: Regenerate.  
1702          * bfd-in2.h: Regenerate.          * bfd-in2.h: Regenerate.
1703          * config.in: Add HAVE_ZLIB_H          * elf32-arm.c (arm_unwind_edit_type, arm_unwind_table_edit): Define.
1704          * configure.in: Add test for libz and zlib.h          (_arm_elf_section_data): Add text and exidx fields.
1705          * configure: Regenerate.          (add_unwind_table_edit, get_arm_elf_section_data, adjust_exidx_size,
1706          * dwarf2.c (read_section): New function.          insert_cantunwind_after, elf32_arm_fix_exidx_coverage, offset_prel31,
1707          (read_indirect_string): Call new function read_section.          copy_exidx_entry): New functions.
1708          (read_abbrevs): Likewise.          (elf32_arm_write_section): Fixup .ARM.exidx contents.
1709          (decode_line_info): Likewise.  
1710          (read_debug_ranges): Likewise.  2009-05-05  Christophe lyon  <christophe.lyon@st.com>
1711          (find_line): Call new function read_section when just one  
1712          .zdebug_info section is found, otherwise read and compress          * elf32-arm.c (DEF_STUBS): New helper define.
1713          multiple sections.          (DEF_STUB): Likewise.
1714          (_bfd_dwarf2_cleanup_debug_info): Free sec_info_ptr.          (stub_def): New type.
1715          * elf.c (_bfd_elf_make_section_from_shdr): Add zdebug prefix.          (stub_definitions): New array, containing stub template pointers
1716          (special_sections_z): New struct.          and sizes.
1717          (special_sections): Refer to special_sections_z.          (arm_size_one_stub): Make use of stub_definitions.
1718          * elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Recognize  
1719          sections named .zdebug_*.  2009-05-04  Dave Korn  <dave.korn.cygwin@gmail.com>
1720          (_bfd_mips_elf_fake_sections): Likewise.  
1721          * compress.c: New file.          * elflink.c (find_version_for_sym):  Remove from here, ...
1722          (bfd_uncompress_section_contents): New function.          * linker.c (bfd_find_version_for_sym):  ... rename, replace
1723            here, make public and update all callers.
1724  2008-07-07  Christophe Lyon  <christophe.lyon@st.com>          * bfd-in2.h:  Regenerate.
1725    
1726          * elf32-arm.c (arm_type_of_stub): Don't crash on local symbols in  2009-04-30  Nick Clifton  <nickc@redhat.com>
1727          the presence of a PLT.  
1728            * elf-bfd.h (struct bfd_elf_section_data): Add indirect_relocs
1729  2008-07-07  Alan Modra  <amodra@bigpond.net.au>          section pointer.
1730            (struct elf_obj_data): Add has_ifunc_symbols boolean.
1731          * bfd.c (bfd_demangle): Always trim off bfd_get_symbol_leading_char.          * elf.c (swap_out_syms): Convert BSF_GNU_INDIRECT_FUNCTION flags
1732            into a STT_GNU_IFUNC symbol type.
1733  2008-07-02  Alan Modra  <amodra@bigpond.net.au>          (_bfd_elf_is_function_type): Accept STT_GNU_IFUNC as a function
1734            type.
1735          * elf32-ppc.c (is_pic_glink_stub): New function.          (_bfd_elf_set_osabi): Set the osasbi field to ELFOSABI_LINUX if
1736          (ppc_elf_get_synthetic_symtab): Don't generate symbols when          the binary contains ifunc symbols.
1737          multiple shared/pie stubs per plt entry.          * elfcode.h (elf_slurp_symbol_table): Translate the STT_GNU_IFUNC
1738            symbol type into a BSF_GNU_INDIRECT_FUNCTION flag.
1739  2008-06-30  Richard Sandiford  <rdsandiford@googlemail.com>          * elf32-i386.c (is_indirect_function): New function.
1740            (elf_i386_check_relocs): Create an ifunc output section.
1741          * elf.c (_bfd_elf_get_synthetic_symtab): Increment p by          (allocate_dynrelocs): Create dynamic relocs in the ifunc output
1742          bed->s->int_rels_per_ext_rel.          section if necessary.
1743            (elf_i386_relocate_section): Emit a reloc against an ifunc symbol
1744  2008-06-30  Richard Sandiford  <rdsandiford@googlemail.com>          if necessary.
1745            (elf_i386_add_symbol_hook): New function. Set the
1746          * syms.c (BSF_SYNTHETIC): New flag.          has_ifunc_symbols field of the elf_obj_data structure if an ifunc
1747          * elf.c (_bfd_elf_get_synthetic_symtab): Set it.          symbol is encountered.
1748          * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Likewise.          (elf_backend_post_process_headers): Define.
1749          * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.          (elf_backend_add_symbol_hook): Define.
1750          * bfd-in.h (bfd_asymbol_flavour): Return bfd_target_unknown_flavour          (elf_i386_post_process_headers): Rename to
1751          for synthetic symbols.          elf_i388_fbsd_post_process_headers.
1752            * elf64-x86_64.c (IS_X86_64_PCREL_TYPE): New macro.
1753            (is_indirect_function): New function.
1754            (elf64_x86_64_check_relocs): Create an ifunc output section.
1755            (allocate_dynrelocs): Create dynamic relocs in the ifunc output
1756            section if necessary.
1757            (elf64_x86_64_relocate_section): Emit a reloc against an ifunc
1758            symbol if necessary.
1759            (elf_i386_add_symbol_hook): Set the has_ifunc_symbols field of the
1760            elf_obj_data structure if an ifunc symbol is encountered.
1761            (elf_backend_post_process_headers): Define.
1762            * elflink.c (_bfd_elf_adjust_dynamic_symbol): Always create a PLT
1763            if we have ifunc symbols to handle.
1764            (get_ifunc_reloc_section_name): New function.  Computes the name
1765            for an ifunc section.
1766            (_bfd_elf_make_ifunc_reloc_section): New function.  Creates a
1767            section to hold ifunc relocs.
1768            * syms.c (BSF_GNU_INDIRECT_FUNCTION): Define.
1769            (bfd_print_symbol_vandf): Handle ifunc symbols.
1770            (bfd_decode_symclass): Likewise.
1771          * bfd-in2.h: Regenerate.          * bfd-in2.h: Regenerate.
1772    
1773  2008-06-30  Daniel Jacobowitz  <dan@codesourcery.com>  2009-04-30  Joseph Myers  <joseph@codesourcery.com>
1774    
1775          * elf32-arm.c (record_arm_to_thumb_glue, record_thumb_to_arm_glue):          * elf32-arm.c (elf32_arm_check_relocs): Give errors for absolute
1776          Expand comments.          MOVW and MOVT relocations in a shared library link.
         (arm_map_one_stub): Use | 1 when setting the low bit.  
1777    
1778  2008-06-29  Andreas Schwab  <schwab@suse.de>  2009-04-27  Anthony Green  <green@moxielogic.com>
1779    
1780          * elf32-m68k.c (elf_m68k_relocate_section): Don't ignore existing          * verilog.c: New file.
1781          addend on _GLOBAL_OFFSET_TABLE_.          * Makefile.am (BFD32_LIBS): Add verilog.c.
1782            (BFD32_LIBS_CFILES): Add verilog.c.
1783            (verilog.lo): New build rule.
1784            * Makefile.in: Rebuilt.
1785            * targets.c: Add verilog support.
1786            * bfd.c (tdata union): Add Verilog private data field.
1787            * bfd-in2.h: Regenerate.
1788    
1789  2008-06-24  Daniel Jacobowitz  <dan@codesourcery.com>  2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
1790    
1791          * elf32-arm.c (STUB_ENTRY_NAME): Define.          * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Don't
1792          (arm_thumb_thumb_long_branch_stub): Use bx instead of b.n.          copy pe_opthdr.
         (arm_pic_long_branch_stub): Mention R_ARM_REL32 instead of  
         R_ARM_ABS32.  
         (struct elf32_arm_stub_hash_entry): Add output_name.  
         (arm_build_one_stub): Move offsets into the offset argument  
         of _bfd_final_link_relocate.  Correct offset for  
         arm_thumb_arm_v4t_stub_long_branch.  
         (elf32_arm_size_stubs): Set stub_entry->output_name.  
         (elf32_arm_ouput_plt_map_sym): Rename to elf32_arm_output_map_sym.  
         Update all callers.  
         (elf32_arm_output_stub_sym): New.  
         (arm_map_one_stub): Correct formatting.  Use elf32_arm_output_stub_sym.  
1793    
1794  2008-06-20  Alan Modra  <amodra@bigpond.net.au>  2009-04-23  Matthias Klose  <doko@ubuntu.com>
1795    
1796          * elf32-spu.c (needs_ovl_stub): Correctly return nonovl_stub for          * peXXigen.c (_bfd_XXi_swap_sym_in): Initialize `name'.
         non-branch insns.  
1797    
1798  2008-06-20  Alan Modra  <amodra@bigpond.net.au>  2009-04-22  Christophe Lyon  <christophe.lyon@st.com>
1799    
1800          * elf32-spu.c (build_stub): Allow wraparound on stub branches.          PR9743
1801          (allocate_spuear_stubs, build_spuear_stubs): Return value from          * elf32-arm.c (arm_type_of_stub): Handle R_ARM_THM_JUMP24,
1802          count_stub/build_stub.          R_ARM_JUMP24 and R_ARM_PLT32 relocations.
1803          (spu_elf_build_stubs): Correct location of stub reloc error message.          (elf32_arm_size_stubs): Likewise.
1804            (record_thumb_to_arm_glue): Deleted unused function.
1805            (bfd_elf32_arm_process_before_allocation): No longer handle
1806            R_ARM_THM_JUMP24, R_ARM_JUMP24 and R_ARM_PLT32 relocations here.
1807            (elf32_arm_final_link_relocate): Handle R_ARM_THM_JUMP24,
1808            R_ARM_JUMP24 and R_ARM_PLT32 relocations.
1809    
1810    2009-04-21  Daniel Jacobowitz  <dan@codesourcery.com>
1811    
1812            * elf32-arm.c (INTERWORK_FLAG): Check BFD_LINKER_CREATED.
1813            (elf32_arm_write_section): Declare early.
1814            (elf32_arm_size_stubs): Skip non-stub sections in the stub BFD.
1815            (arm_allocate_glue_section_space): Exclude empty sections.
1816            (ARM_GLUE_SECTION_FLAGS): Add SEC_LINKER_CREATED.
1817            (bfd_elf32_arm_add_glue_sections_to_bfd): Do not skip the stub
1818            BFD.
1819            (elf32_arm_output_glue_section, elf32_arm_final_link): New.
1820            (elf32_arm_merge_eabi_attributes): Skip the stub BFD.
1821            (elf32_arm_size_dynamic_sections): Allocate interworking
1822            sections here.
1823            (bfd_elf32_bfd_final_link): Define.
1824    
1825    2009-04-21  H.J. Lu  <hongjiu.lu@intel.com>
1826    
1827            * coff-ia64.c (COFF_PAGE_SIZE): Changed to 8K.
1828    
1829            * coffcode.h (coff_compute_section_file_positions): Clear
1830            D_PAGED if PE section alignment is smaller than COFF_PAGE_SIZE.
1831    
1832            * libcoff-in.h (pe_tdata): Remove force_minimum_alignment and
1833            force_minimum_alignment.
1834    
1835            * libcoff.h: Regenerated.
1836    
1837            * pei-ia64.c (PEI_TARGET_SUBSYSTEM): Removed.
1838            (PEI_FORCE_MINIMUM_ALIGNMENT): Likewise.
1839    
1840            * peicode.h (pe_mkobject): Don't set force_minimum_alignment
1841            nor target_subsystem.
1842    
1843            * peXXigen.c (_bfd_XXi_swap_aouthdr_out): Don't check
1844            force_minimum_alignment nor target_subsystem.
1845    
1846    2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
1847    
1848            * coff-x86_64.c (PEI_HEADERS): Protect includes.
1849            (bfd_pe_print_pdata): Remove #ifdef PE variation.
1850            * pei-x86_64.c (PEI_HEADERS): Define to prevent double
1851            include in coff-x86_64.c of headers.
1852            (PDATA_ROW_SIZE): New define.
1853            (pex_regs[]): New static array.
1854            (pex64_get_runtime_function): New static function.
1855            (pex64_get_unwind_info): Likewise.
1856            (pex64_get_scope_entry): Likewise.
1857            (pex64_xdata_print_uwd_codes): Likewise.
1858            (pex64_get_section_by_rva): Likewise.
1859            (pex64_dump_xdata): Likewise.
1860            (pex64_bfd_print_pdata): Likewise.
1861            (bfd_pe_print_pdata): Define as pex64_bfd_print_pdata.
1862            * peXXigen.c (_bfd_pex64_print_pdata): Removed implementation.
1863            * libpei.h (_bfd_pex64_print_pdata): Removed declaration.
1864    
1865  2008-06-18  M R Swami Reddy <MR.Swami.Reddy@nsc.com>  2009-04-19  Peter O'Gorman  <binutils@mlists.thewrittenword.com>
1866                Alan Modra  <amodra@bigpond.net.au>
1867                Dave Korn  <dave.korn.cygwin@gmail.com>
1868    
1869          * elf32-cr16.c (ELF_MACHINE_ALT1): Define to EM_CR16_OLD.          * peXXigen.c (_bfd_XXi_swap_sym_in): Fix name handling w.r.t
1870            long names and non-NUL-terminated strings.
1871    
1872  2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>  2009-04-17  H.J. Lu  <hongjiu.lu@intel.com>
1873    
1874          * configure: Regenerate.          * bfd-in2.h: Regenerated.
1875    
1876  2008-06-17  Alan Modra  <amodra@bigpond.net.au>  2009-04-17  H.J. Lu  <hongjiu.lu@intel.com>
1877    
1878          * elf32-spu.c (struct spu_link_hash_table): Add extra_stack_space.          * peXXigen.c (_bfd_XX_print_private_bfd_data_common): Replace
1879          (spu_elf_check_vma): Add extra_stack_space param, copy to htab.          IMAGE_SUBSYSTEM_EFI_ROM with IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER.
         (spu_elf_auto_overlay): Use it.  
         (RECURSE_UNMARK): Define as 0.  
         (unmark_overlay_section): Heed RECURSE_UNMARK.  
         * elf32-spu.h (spu_elf_check_vma): Update prototype.  
1880    
1881  2008-06-12  DJ Delorie  <dj@redhat.com>  2009-04-17  H.J. Lu  <hongjiu.lu@intel.com>
1882    
1883          * elf32-m32c.c (ELF_MACHINE_ALT1): Define as EM_M32C_OLD.          PR binutils/10074
1884            * coffcode.h (bfd_pei_p): New.
1885    
1886            * config.bfd: Remove bfd_efi_bsdrv_ia32_vec,
1887            bfd_efi_rtdrv_ia32_vec, bfd_efi_bsdrv_x86_64_vec,
1888            bfd_efi_rtdrv_x86_64_vec, bfd_efi_bsdrv_ia64_vec and
1889            bfd_efi_rtdrv_ia64_vec.  Replace bfd_efi_app_ia32_vec,
1890            bfd_efi_app_x86_64_vec and bfd_efi_app_ia64_vec with
1891            i386pei_vec, x86_64pei_vec and bfd_pei_ia64_vec, respectively.
1892    
1893            * configure.in: Remove bfd_efi_bsdrv_ia32_vec,
1894            bfd_efi_rtdrv_ia32_vec, bfd_efi_bsdrv_x86_64_vec,
1895            bfd_efi_rtdrv_x86_64_vec,
1896            bfd_efi_bsdrv_ia64_vec and bfd_efi_rtdrv_ia64_vec.  Replace
1897            bfd_efi_ia64_vec with bfd_pei_ia64_vec.
1898            * targets.c: Likewise.
1899    
1900  2008-06-09  Paul Brook  <paul@codesourcery.com>          * configure: Regenerated.
1901            * libcoff.h: Likewise.
1902            * Makefile.in: Likewise.
1903    
1904          bfd/          * efi-app-ia32.c: Removed.
1905          * elf32-arm.c (elf32_arm_merge_private_bfd_data): Allow BE8 shared          * efi-app-x86_64.c: Likewise.
1906          libraries.          * efi-bsdrv-ia32.c: Likewise.
1907            * efi-bsdrv-ia64.c: Likewise.
1908            * efi-bsdrv-x86_64.c: Likewise.
1909            * efi-rtdrv-ia32.c: Likewise.
1910            * efi-rtdrv-ia64.c: Likewise.
1911            * efi-rtdrv-x86_64.c: Likewise.
1912            * efi-rtdrv-ia32.c: Likewise.
1913    
1914            * efi-app-ia64.c: Moved to ...
1915            * pei-ia64.c: This.
1916            (TARGET_SYM): Set to bfd_pei_ia64_vec.
1917            (TARGET_NAME): Set to pei-ia64.
1918    
1919            * libpei.h (bfd_target_pei_p): Removed.
1920            (bfd_target_pei_arch): Likewise.
1921            (bfd_target_efi_app_p): Likewise.
1922            (bfd_target_efi_app_arch): Likewise.
1923            (bfd_target_efi_bsdrv_p): Likewise.
1924            (bfd_target_efi_bsdrv_arch): Likewise.
1925            (bfd_target_efi_rtdrv_p): Likewise.
1926            (bfd_target_efi_rtdrv_arch): Likewise.
1927            (bfd_pe_executable_p): Likewise.
1928    
1929            * Makefile.am (BFD32_BACKENDS): Remove efi-app-ia32.lo,
1930            efi-bsdrv-ia32.lo and efi-rtdrv-ia32.lo.
1931            (BFD32_BACKENDS_CFILES): Remove efi-app-ia32.c, efi-bsdrv-ia32.c
1932            and efi-rtdrv-ia32.c.
1933            (BFD64_BACKENDS): Remove efi-app-ia64.lo, efi-bsdrv-ia64.lo,
1934            efi-rtdrv-ia64.lo, efi-app-x86_64.lo, efi-bsdrv-x86_64.lo and
1935            efi-rtdrv-x86_64.lo. Add pei-ia64.lo.
1936            (BFD64_BACKENDS_CFILES): Remove efi-app-ia64.c, efi-bsdrv-ia64.c,
1937            efi-rtdrv-ia64.c, efi-app-x86_64.c, efi-bsdrv-x86_64.c and
1938            efi-rtdrv-x86_64.c. Add pei-ia64.c.
1939            (efi-app-ia64.lo): Removed.
1940            (efi-bsdrv-ia32.lo): Likewise.
1941            (efi-rtdrv-ia32.lo): Likewise.
1942            (efi-app-ia64.lo): Likewise.
1943            (efi-bsdrv-ia64.lo): Likewise.
1944            (efi-rtdrv-ia64.lo): Likewise.
1945            (efi-app-x86_64.lo): Likewise.
1946            (efi-bsdrv-x86_64.lo): Likewise.
1947            (efi-rtdrv-x86_64.lo): Likewise.
1948            (pei-ia64.lo): New.
1949    
1950            * peicode.h (coff_swap_scnhdr_in): Replace bfd_pe_executable_p
1951            with bfd_pei_p.
1952            (arch_type): Removed.
1953            (pe_arch): Likewise.
1954            (pe_bfd_object_p): Just return coff_object_p.
1955    
1956            * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Replace
1957            bfd_pe_executable_p with bfd_pei_p.
1958    
1959    2009-04-17  Christophe Lyon  <christophe.lyon@st.com>
1960    
1961            * elf32-arm.c (elf32_arm_size_stubs): Handle long branches through
1962            PLT entries to an undefined symbol when generating a shared
1963            library.
1964    
1965    2009-04-17  Nick Clifton  <nickc@redhat.com>
1966    
1967            PR 9909
1968            * coffcode.h (handle_COMDAT): Allow for external COMDAT symbols.
1969    
1970    2009-04-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
1971    
1972            * aout-adobe.c (aout_32_bfd_define_common_symbol): Define.
1973            * aout-target.h (MY_bfd_define_common_symbol): Likewise.
1974            * aout-tic30.c (MY_bfd_define_common_symbol): Likewise.
1975            * binary.c (binary_bfd_define_common_symbol): Likewise.
1976            * bout.c (b_out_bfd_define_common_symbol): Likewise.
1977            * coff-alpha.c (_bfd_ecoff_bfd_define_common_symbol): Likewise.
1978            * coff-mips.c (_bfd_ecoff_bfd_define_common_symbol): Likewise.
1979            * coffcode.h (coff_bfd_define_common_symbol): Likewise.
1980            * elfxx-target.h (bfd_elfNN_bfd_define_common_symbol): Likewise.
1981            * i386msdos.c (msdos_bfd_define_common_symbol): Likewise.
1982            * i386os9k.c (os9k_bfd_define_common_symbol): Likewise.
1983            * ieee.c (ieee_bfd_define_common_symbol): Likewise.
1984            * ihex.c (ihex_bfd_define_common_symbol): Likewise.
1985            * libbfd-in.h (_bfd_nolink_bfd_define_common_symbol): Likewise.
1986            * mach-o.c (bfd_mach_o_bfd_define_common_symbol): Likewise.
1987            * mmo.c (mmo_bfd_define_common_symbol): Likewise.
1988            * nlm-target.h (nlm_bfd_define_common_symbol): Likewise.
1989            * oasys.c (oasys_bfd_define_common_symbol): Likewise.
1990            * pef.c (bfd_pef_bfd_define_common_symbol): Likewise.
1991            * ppcboot.c (ppcboot_bfd_define_common_symbol): Likewise.
1992            * som.c (som_bfd_define_common_symbol): Likewise.
1993            * srec.c (srec_bfd_define_common_symbol): Likewise.
1994            * tekhex.c (tekhex_bfd_define_common_symbol): Likewise.
1995            * versados.c (versados_bfd_define_common_symbol): Likewise.
1996            * vms.c (vms_bfd_define_common_symbol): Likewise.
1997            * xcoff-target.h (_bfd_xcoff_bfd_define_common_symbol): Likewise.
1998            * xsym.c (bfd_sym_bfd_define_common_symbol): Likewise.
1999            * coff-rs6000.c (rs6000coff_vec): Add _bfd_xcoff_define_common_symbol.
2000            (pmac_xcoff_vec): Likewise.
2001            * coff64-rs6000.c (rs6000coff64_vec): Likewise.
2002            (aix5coff64_vec): Likewise.
2003            * linker.c (bfd_generic_define_common_symbol): New function.
2004            * targets.c (BFD_JUMP_TABLE_LINK): Add NAME##_bfd_define_common_symbol.
2005            (_bfd_define_common_symbol): New field.
2006            * libcoff-in.h (_bfd_xcoff_define_common_symbol): Declare.
2007            * xcofflink.c (_bfd_xcoff_define_common_symbol): New function.
2008            (xcoff_build_ldsyms): Don't set XCOFF_DEF_REGULAR for common
2009            symbols here.
2010            * bfd-in2.h: Regenerate.
2011            * libbfd.h: Likewise.
2012            * libcoff.h: Likewise.
2013    
2014  2008-06-09  Christophe Lyon  <christophe.lyon@st.com>  2009-04-15  Anthony Green  <green@moxielogic.com>
2015    
2016          * elf32-arm.c (arm_stub_is_thumb): Define.          * targets.c: Add moxie support.
2017          (elf32_arm_final_link_relocate): Handle near mode switching stubs.          * Makefile.am: Ditto.
2018            * Makefile.in: Rebuilt.
2019            * cpu-moxie.c, elf32-moxie.c: New files.
2020            * archures.c: Add moxie support.
2021            * configure.in: Add moxie support.
2022            * configure: Rebuilt.
2023            * config.bfd, archures.c: Add moxie support.
2024            * bfd-in2.h: Rebuilt.
2025    
2026  2008-06-07  Alan Modra  <amodra@bigpond.net.au>  2009-04-15  Christophe Lyon  <christophe.lyon@st.com>
2027    
2028          * elf32-spu.c (spu_elf_auto_overlay): Add valid area below sp          * elf32-arm.c (elf32_arm_final_link_relocate): Don't convert ARM
2029          to stack calculation.          branch to an undef weak symbol into a jump to next instruction if
2030            a PLT entry will be created.
2031    
2032  2008-06-06  Paul Brook  <paul@codesourcery.com>  2009-04-14  Dave Korn  <dave.korn.cygwin@gmail.com>
2033    
2034          bfd/          * coffgen.c (make_a_section_from_file):  Set the backend long
2035          * elf32-arm.c (elf32_arm_merge_private_bfd_data): Reject BE8 input.          section names enable if long section names found on input.
2036            * coffcode.h:  Extend long section names documentation to match.
2037    
2038  2008-06-06  Alan Modra  <amodra@bigpond.net.au>  2009-04-08  H.J. Lu  <hongjiu.lu@intel.com>
2039    
2040          * elf32-spu.c (spu_elf_auto_overlay): Relax requirement that          * elflink.c (elf_link_add_object_symbols): Warn alternate ELF
2041          file names be unique.  Specify archive:path in overlay script.          machine code.
2042    
2043  2008-06-05  Alan Modra  <amodra@bigpond.net.au>  2009-04-07  DJ Delorie  <dj@redhat.com>
2044    
2045          PR ld/6590          * archures.c: Add bfd_mach_mep_c5.
2046          * elf64-ppc.c (ppc_build_one_stub): Correct reloc offsets.          * bfd-in2.h: Likewise.
2047            * cpu-mep.c: Add bfd_c5_arch.
2048            * elf32-mep.c: Support it.
2049    
2050  2008-06-04  Alan Modra  <amodra@bigpond.net.au>  2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
2051    
2052          * elf.c (ignore_section_sym): Don't test section sym value here.          * elflink.c (_bfd_elf_section_already_linked): Add `\n' for
2053          (elf_map_symbols): Instead check zero value here as was done prior          info->callbacks->einfo.
2054          to 2006-05-26 change.          * linker.c (_bfd_generic_section_already_linked): Likewise.
2055    
2056  2008-06-04  Nick Clifton  <nickc@redhat.com>  2009-04-06  DJ Delorie  <dj@redhat.com>
2057    
2058          PR ld/6019          * elf32-h8300.c (elf32_h8_relax_section): Relax MOVA opcodes.
         * elf32-avr.c (elf32_avr_relax_section): Handle the case where  
         there are no local symbols.  
2059    
2060  2008-06-04  Alan Modra  <amodra@bigpond.net.au>  2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
2061    
2062          * elf32-spu.c (get_sym_h): Don't attempt to read global syms.          * coff-x86_64.c (bfd_pe_print_pdata): Defined to
2063          (process_stubs): Likewise.          _bfd_pex64_print_pdata only if PE is defined.
         (discover_functions): Don't used cached symbols.  
         (maybe_insert_function): Correct condition under which function  
         array is realloc'd.  
         (mark_functions_via_relocs): Delete unused variable.  
2064    
2065  2008-05-30  Frediano Ziglio  <frediano.ziglio@vodafone.com>          * libpei.h (_bfd_pep_print_x64_pdata): Renamed to ...
2066              Nick Clifton  <nickc@redhat.com>          (_bfd_pex64_print_pdata): This.
2067    
2068          PR ld/6511          * peXXigen.c (_bfd_pep_print_x64_pdata): Renamed to ...
2069          * elf64-hppa.c (allocate_global_data_opd): Default to using the          (_bfd_pex64_print_pdata): This.  Defined only if COFF_WITH_pex64
2070          dynamic symbol table for local function names in shared libraries.          is defined.
   
 2008-05-29  Jan Kratochvil  <jan.kratochvil@redhat.com>  
   
         * elf.c (assign_file_positions_for_load_sections): Adjust pre-section  
         gaps based on VMA and P_VADDR instead of LMA and P_PADDR addresses.  
   
 2008-05-28  Alan Modra  <amodra@bigpond.net.au>  
   
         * elf32-spu.c (spu_elf_object_p): New function.  
         (elf_backend_object_p): Define.  
         (build_stub): Correct second word of 8 byte overlay stubs.  
         (spu_elf_relocate_section): Formatting.  
   
 2008-05-24  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>  
   
         * elf.c (elfcore_write_register_note): New function.  
         * elf-bfd.h (elfcore_write_register_note): New prototype.  
   
 2008-05-22  Christophe Lyon  <christophe.lyon@st.com>  
   
         * elf32-arm.c (arm_type_of_stub): Ignore STT_SECTION symbols.  
         (elf32_arm_stub_add_mapping_symbol): Remove.  
         (elf32_arm_add_stub): Don't generate mapping symbols. Change  
         prototype.  
         (elf32_arm_size_stubs): Use new elf32_arm_add_stub  
         prototype. Don't generate thumb to arm glue for calls.  
         (arm_map_one_stub): Define.  
         (elf32_arm_output_arch_local_syms): Generate mapping symbols for  
         long calls stubs.  
   
 2008-05-21  Nick Clifton  <nickc@redhat.com>  
   
         * elf32-arm.c (group_sections): Reformat comments.  
   
         PR ld/6446  
         * elf32-frv.c (elf32_frv_relocate_section): Set EF_FRV_PIC by  
         default (for FDPIC). Clear it if any inter-segment relocations  
         are found.  
   
         * elf64-hppa.c (elf64_hppa_finalize_opd): Check NULL return  
         from elf_link_hash_lookup.  
   
 2008-05-21  Maxim Kuvyrkov  <maxim@codesourcery.com>  
   
         Add multi-GOT support for m68k.  
         * elf32-m68k.c (struct elf_m68k_link_hash_entry: got_entry_key,  
         glist): New fields.  
         (struct elf_m68k_got_entry_key, struct elf_m68k_got_entry,  
         struct elf_m68k_got, struct elf_m68k_bfd2got_entry,  
         struct elf_m68k_multi_got): New data structures.  
         (struct elf_m68k_link_hash_table: local_gp_p, use_neg_got_offsets_p,  
         allow_multigot_p, multi_got_): New fields.  
         (elf_m68k_multi_got): New macro.  
         (elf_m68k_link_hash_newfunc): Initialize new fields of  
         struct elf_m68k_link_hash_entry.  
         (elf_m68k_link_hash_table_create): Initialize new fields of  
         struct elf_m68k_link_hash_table.  
         (elf_m68k_link_hash_table_free): New static function implementing hook.  
         (elf_m68k_init_got, elf_m68k_clear_got, elf_m68k_create_empty_got): New  
         static functions for struct elf_m68k_got.  
         (elf_m68k_init_got_entry_key, elf_m68k_got_entry_hash,  
         elf_m68k_got_entry_eq): New static functions for  
         struct elf_m68k_got_entry.  
         (ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT,  
         ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): New macros.  
         (enum elf_m68k_get_entry_howto): New enum.  
         (elf_m68k_get_got_entry, elf_m68k_update_got_entry_type,  
         elf_m68k_remove_got_entry_type): New static functions for  
         struct elf_m68k_got_entry.  
         (elf_m68k_add_entry_to_got): New static function.  
         (elf_m68k_bfd2got_entry_hash, elf_m68k_bfd2got_entry_eq,  
         elf_m68k_bfd2got_entry_del, elf_m68k_get_bfd2got_entry): New static  
         functions for struct elf_m68k_bfd2got_entry.  
         (struct elf_m68k_can_merge_gots_arg, elf_m68k_can_merge_gots_1,  
         elf_m68k_can_merge_gots): New traversal.  
         (struct elf_m68k_merge_gots_arg, elf_m68k_merge_gots_1,  
         elf_m68k_merge_gots): Ditto.  
         (struct elf_m68k_finalize_got_offsets_arg,  
         elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Ditto.  
         (struct elf_m68k_partition_multi_got_arg,  
         elf_m68k_partition_multi_got_1, elf_m68k_init_symndx2h_1,  
         elf_m68k_partition_multi_got): Ditto.  
         (elf_m68k_find_got_entry_ptr, elf_m68k_remove_got_entry): New static  
         functions.  
         (elf_m68k_copy_indirect_symbol): New static function implementing  
         a hook.  
         (elf_m68k_check_relocs): Update to add entries to multi-GOT.  
         (elf_m68k_gc_sweep_hook): Update to remove entries from multi-GOT.  
         (elf_m68k_always_size_sections): Assign BFDs to GOTs.  
         (elf_m68k_relocate_section): Update to properly handle GOT relocations.  
         (elf_m68k_finish_dynamic_symbol): Update to traverse all GOT entries  
         of a global symbol.  
         (bfd_elf_m68k_set_target_options): New function.  
         (bfd_elf32_bfd_link_hash_table_free): Define hook.  
         (bfd_elf32_bfd_final_link): Change expansion to bfd_elf_final_link  
         to skip generic calculation of GOT offsets.  
         (elf_backend_copy_indirect_symbol): Define hook.  
         * bfd-in.h (bfd_elf_m68k_set_target_options): Declare function.  
         * bfd-in2.h: Regenerate.  
2071    
2072  2008-05-21  André Johansen  <andrejoh@gmail.com>  2009-04-05  Kai Tietz  <kai.tietz@onevision.com>
2073    
2074          PR 868          * coff-x86_64.c (bfd_pe_print_pdata): Define as
2075          * dwarf2.c (_bfd_dwarf2_cleanup_debug_info): Free memory allocated          _bfd_pep_print_x64_pdata.
2076          for filenames in function tables and variable tables.          * libpei.h (_bfd_pep_print_x64_pdata): Add prototype.
2077            * peXXigen.c (_bfd_pep_print_x64_pdata): New.
2078  2008-05-19  Alan Modra  <amodra@bigpond.net.au>  
2079    2009-04-02  Sterling Augustine  <sterling@jaw.hq.tensilica.com>
2080          PR 2995, PR 6473  
2081          * elf.c (_bfd_elf_make_section_from_shdr): Leave lma equal to          * elf32-xtensa.c (relax_property_section): Always set r_offset
2082          vma when all p_paddr fields are zero and there is more than          to zero.
2083          one PT_LOAD header.  
2084    2009-04-02  Christophe Lyon  <christophe.lyon@st.com>
2085  2008-05-15  Christophe Lyon  <christophe.lyon@st.com>  
2086            * elf32-arm.c (elf32_arm_stub_long_branch_v4t_thumb_thumb,
2087          Add long call support for ARM.          elf32_arm_stub_long_branch_v4t_thumb_thumb_pic): Two new long
2088          * elf32-arm.c (THM2_MAX_FWD_BRANCH_OFFSET): Define.          branch stubs.
2089          (THM2_MAX_BWD_BRANCH_OFFSET): Define.          (elf32_arm_stub_type): New enum values for the two new stubs.
2090          (ARM_MAX_FWD_BRANCH_OFFSET): Define.          (arm_type_of_stub): Make use of the two new stubs.
2091          (ARM_MAX_BWD_BRANCH_OFFSET): Define.          (arm_size_one_stub): Handle the two new stubs.
2092          (THM_MAX_FWD_BRANCH_OFFSET): Define.  
2093          (THM_MAX_BWD_BRANCH_OFFSET): Define.  2009-04-01  Matt Thomas  <matt@netbsd.org>
2094          (arm_long_branch_stub): Define.  
2095          (arm_pic_long_branch_stub): Define.          * elf32-vax.c (elf_vax_check_relocs): Do not put relocations against
2096          (arm_thumb_v4t_long_branch_stub): Define.          hidden symbols into the GOT or PLT.GOT.
2097          (arm_thumb_thumb_long_branch_stub): Define.          (elf_vax_relocate_section): Do not emit a PCREL reloc
2098          (arm_thumb_arm_v4t_long_branch_stub): Define.          into a shared object if it is against a hidden symbol.
2099          (STUB_SUFFIX): Define.  
2100          (elf32_arm_stub_type): Define.  2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
2101          (elf32_arm_stub_hash_entry): Define.  
2102          (elf32_arm_link_hash_entry): Add stub_cache field.          * xcofflink.c (xcoff_archive_info): Add contains_shared_object_p
2103          (arm_stub_hash_lookup): Define.          and know_contains_shared_object_p.
2104          (elf32_arm_link_hash_table): Add stub_hash_table, stub_bfd,          (xcoff_archive_contains_shared_object_p): Add an "info" parameter.
2105          add_stub_section, layout_sections_again, stub_group, bfd_count,          Cache the result in the archive_info table.
2106          top_index, input_list fields.          (xcoff_auto_export_p): Add an "info" parameter and update the
2107          (elf32_arm_link_hash_newfunc): Init new field.          call to xcoff_archive_contains_shared_object_p.
2108          (stub_hash_newfunc): New function.          (xcoff_mark_auto_exports): Update accordingly.
2109          (elf32_arm_link_hash_table_create): Init stub_hash_table.          (xcoff_post_gc_symbol): Likewise.
2110          (elf32_arm_hash_table_free): New function.  
2111          (arm_type_of_stub): New function.  2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
2112          (elf32_arm_stub_name): New function.  
2113          (elf32_arm_get_stub_entry): New function.          * xcofflink.c (bfd_link_input_bfd): Treat __rtinit as C_HIDEXT
2114          (elf32_arm_stub_add_mapping_symbol): New function.          rather than C_EXT.
2115          (elf32_arm_add_stub): New function.  
2116          (arm_build_one_stub): New function.  2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
2117          (arm_size_one_stub): New function.  
2118          (elf32_arm_setup_section_lists): New function.          * coff-rs6000.c (member_layout): New structure.
2119          (elf32_arm_next_input_section): New function.          (archive_iterator): Likewise.
2120          (group_sections): New function.          (member_layout_init): New function.
2121          (elf32_arm_size_stubs): New function.          (archive_iterator_begin): Likewise.
2122          (elf32_arm_build_stubs): New function.          (archive_iterator_next): Likewise.
2123          (bfd_elf32_arm_add_glue_sections_to_bfd): Skip stub sections.          (xcoff_write_armap_old): Use the new iterator functions.
2124          (bfd_elf32_arm_process_before_allocation): No longer handle          (do_shared_object_padding): Delete.
2125          R_ARM_CALL and R_ARM_THM_CALL.          (xcoff_write_armap_big): Use the new iterator functions.  Simplify
2126          (using_thumb_only): New function.          handling of arch_info.
2127          (elf32_arm_final_link_relocate): Redirect calls to stub if range          (xcoff_write_archive_contents_old): Allocate arelt_data in the
2128          exceeds encoding capabilities.          first loop rather than the second.  Allocate a member header if
2129          (bfd_elf32_bfd_link_hash_table_free): Define.          there isn't one, then work out the stat information and length
2130          * bfd-in.h (R_ARM_max): Fix value to 130.          in the first loop too.  Use the new iterators for the second loop.
2131          (elf32_arm_setup_section_lists): Protype.          (xcoff_write_archive_contents_big): Likewise.
2132          (elf32_arm_next_input_section): Protype.  
2133          (elf32_arm_size_stubs): Protype.  2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
2134          (elf32_arm_build_stubs): Protype.  
2135            * bfd-in.h (bfd_xcoff_split_import_path): Declare.
2136            (bfd_xcoff_set_archive_import_path): Likewise.
2137          * bfd-in2.h: Regenerate.          * bfd-in2.h: Regenerate.
2138            * xcofflink.c: Include libiberty.h.
2139            (xcoff_archive_info): New structure.
2140            (xcoff_archive_info_hash): New function.
2141            (xcoff_archive_info_eq): Likewise.
2142            (xcoff_get_archive_info): Likewise.
2143            (_bfd_xcoff_bfd_link_hash_table_create): Initialize archive_info.
2144            (bfd_xcoff_split_import_path): New function.
2145            (bfd_xcoff_set_archive_import_path): Likewise.
2146            (xcoff_set_import_path): Move earlier in file.
2147            (xcoff_link_add_dynamic_symbols): Set the import path of a non-archive
2148            object to the the directory part of the bfd's filename.  Get the
2149            import path and filename of an archive object from the archive's
2150            xcoff_tdata, initializing it if necessary.  Update use of
2151            import_file_id.
2152            (bfd_link_input_bfd): Update use of import_file_id.
2153            (xcoff_write_global_symbol): Likewise.
2154    
2155    2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
2156    
2157            * xcofflink.c (xcoff_link_hash_table): Moved from include/coff/xcoff.h.
2158    
2159    2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
2160    
2161            * xcofflink.c (xcoff_link_create_extra_sections): Don't create
2162            a .loader section for relocatable links.
2163            (xcoff_need_ldrel_p): New function.
2164            (xcoff_mark): Use it.
2165            (bfd_xcoff_link_count_reloc): Only count loader relocs if there's
2166            a loader section.
2167            (xcoff_build_ldsym): New function, split out from...
2168            (xcoff_build_ldsyms): ...here.  Rename to...
2169            (xcoff_post_gc_symbol): ...this.  Only export symbols, and only
2170            call xcoff_build_ldsym, if there's a loader section.
2171            (xcoff_build_loader_section): New function, extracted verbatim from...
2172            (bfd_xcoff_size_dynamic_sections): ...here.  Only call it if
2173            there's a loader section.  Only add an __rtinit loader symbol
2174            if there's a loader section.  Update after above name change.
2175            (xcoff_symbol_section, xcoff_create_ldrel): New functions.
2176            (bfd_link_input_bfd): Use xcoff_need_ldrel_p, xcoff_symbol_section
2177            and xcoff_create_ldrel.
2178            (xcoff_write_global_symbol): Use xcoff_create_ldrel.
2179            (xcoff_reloc_link_order): Likewise, but only call it if there's
2180            a loader section.  Use xcoff_symbol_section.
2181            (_bfd_xcoff_bfd_final_link): Only use fdinfo.ldrel and fdinfo.ldsym
2182            if there's a loader section.
2183    
2184    2009-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
2185    
2186            * xcofflink.c (bfd_link_input_bfd): Fix buffer overrun.
2187    
2188    2009-04-01  Christophe Lyon  <christophe.lyon@st.com>
2189    
2190            * elf32-arm.c (group_sections): Rewrite loops for better
2191            readability.
2192    
2193    2009-03-30  DJ Delorie  <dj@redhat.com>
2194    
2195            * elflink.c (elf_link_input_bfd): Don't try to resolve complex
2196            relocs when doing a relocatable link.
2197    
2198    2009-03-28  Mark Mitchell  <mark@codesourcery.com>
2199    
2200            * coff-arm.c (coff_arm_merge_private_bfd_data): Use "error:", not
2201            "ERROR:", in error messages.
2202            * cpu-arm.c (bfd_arm_merge_machines): Likewise.
2203            * elf-attrs.c (_bfd_elf_merge_object_attributes): Likewise.
2204            * elf32-arm.c (tag_cpu_arch_combine): Likewise.
2205            (elf32_arm_merge_eabi_attributes): Likewise.
2206            (elf32_arm_merge_private_bfd_data): Likewise.
2207    
2208    2009-03-27  Nick Clifton  <nickc@redhat.com>
2209    
2210            * section.c (bfd_get_section_contents): Detect and handle the case
2211            where a section has the SEC_IN_MEMORY flag set but no actual
2212            contents allocated.
2213    
2214    2009-03-26  Alan Modra  <amodra@bigpond.net.au>
2215    
2216            PR 6494
2217            * elf.c (copy_elf_program_header): Do not check that PT_GNU_RELRO
2218            p_filesz and p_memsz are equal.  Use p_memsz as the segment size.
2219            (assign_file_positions_for_non_load_sections): Zap PT_GNU_RELRO
2220            if we don't find matching PT_LOAD when copying.
2221    
2222  2008-05-14  Ulrich Weigand  <uweigand@de.ibm.com>  2009-03-25  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
2223    
2224          * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Fix memset calls.          * elf32-crx.c (crx_elf_howto_table): Zero the src_mask field of
2225          * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.          the reloc descriptions.
2226    
2227    2009-03-25  Hans-Peter Nilsson  <hp@axis.com>
2228    
2229            * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
2230            <R_CRIS_16_GOT_GD, case R_CRIS_32_GOT_GD>: Handle COMMON symbols.
2231            <case R_CRIS_16_TPREL, R_CRIS_32_TPREL>: Ditto.
2232    
2233    2009-03-24  H.J. Lu  <hongjiu.lu@intel.com>
2234    
2235            * cpu-i386.c (bfd_x86_64_arch_intel_syntax): Make it static.
2236            (bfd_i386_arch_intel_syntax): Likewise.
2237            (i8086_arch): Likewise.
2238            (bfd_x86_64_arch): Likewise.
2239