1 2008-12-29 Arnold Metselaar <arnold.metselaar@planet.nl>
3 * coff-z80.c (r_imm32): Fix copy-paste bug that caused z80-objdump to
4 issue warnings about stabs debugging symbols rather than to show them.
6 2008-12-23 Jon Beniston <jon@beniston.com>
8 * Makefile.am: Add LM32 object files and dependencies.
9 * Makefile.in: Regenerate.
10 * archures.c: Add LM32 architechiture info.
11 * targets.c: Likewise.
13 * bfd-in2.h: Regenerate.
14 * config.bfd: Add LM32 targets.
15 * configure.in: Likewise.
16 * configure: Regenerate.
17 * cpu-lm32.c: New file.
18 * elf32-lm32.c: New file.
20 2008-12-23 H.J. Lu <hongjiu.lu@intel.com>
23 * elfxx-ia64.c (elfNN_ia64_relax_section): Assume linker will
24 always insert 32byte between the .plt and .text sections after
25 the first relaxation pass.
27 2008-12-23 Nick Clifton <nickc@redhat.com>
30 * elf32-arm.c (bfd_elf32_arm_init_maps): Only process ARM ELF
33 2008-12-23 Tristan Gingold <gingold@adacore.com>
35 * mach-o.c (bfd_mach_o_make_bfd_section): Use the standard ELF name
36 .eh_frame for __TEXT.__eh_frame so that it is recognized by gdb.
37 Use shorter sections name for well known sections.
38 (bfd_mach_o_scan_read_dylinker): Only put dylinker name in the
40 (bfd_mach_o_scan_read_segment): Use shorter sections name for
42 (bfd_mach_o_scan_read_command): Ignore some new commands.
43 (bfd_mach_o_openr_next_archived_file): Use more descriptive names
45 (bfd_mach_o_fat_extract): New function to easily extract members
47 * mach-o.h (bfd_mach_o_load_command_type): Add new constants.
48 (bfd_mach_o_dylinker_command): Fix comment and reindent.
49 (bfd_mach_o_fat_extract): New prototype.
51 2008-12-23 Johan Olmutz Nielsen <jnielsen@ddci.com>
53 * coffcode.h (coff_write_object_contents): Always initialise
56 2008-12-23 Andreas Schwab <schwab@suse.de>
58 * elf32-m68k.c (elf_m68k_discard_copies): Use SYMBOL_CALLS_LOCAL.
59 (elf_m68k_relocate_section): Use SYMBOL_CALLS_LOCAL and
60 SYMBOL_REFERENCES_LOCAL.
61 (elf_m68k_relocate_section): Likewise.
63 2008-12-23 Nick Clifton <nickc@redhat.com>
65 * elf-bfd.h (struct bfd_elf_section_data): Remove indirect_relocs
67 (_bfd_elf_make_ifunc_reloc_section): Remove prototype.
68 * elf.c (swap_out_syms): Remove STT_IFUNC support.
69 (elf_find_function): Likewise.
70 * elf32-arm.c (arm_elf_find_function): Likewise.
71 (elf32_arm_adjust_dynamic_symbol): Likewise.
72 (elf32_arm_swap_symbol_in): Likewise.
73 (elf32_arm_is_function_type): Likewise.
74 * elf32-i386.c (is_indirect_symbol): Delete.
75 (elf_i386_check_relocs): Remove STT_IFUNC support.
76 (allocate_dynrelocs): Likewise.
77 (elf_i386_relocate_section): Likewise.
78 * elf64-x86-64.c (is_indirect_symbol): Delete.
79 (elf64_x86_64_check_relocs): Remove STT_IFUNC support.
80 (allocate_dynrelocs): Likewise.
81 (elf64_x86_64_relocate_section): Likewise.
82 * elfcode.h (elf_slurp_symbol_table): Likewise.
83 * elflink.c (_bfd_elf_adjust_symbol): Likewise.
84 (get_ifunc_reloc_section_name): Delete.
85 (_bfd_elf_make_ifunc_reloc_section): Delete.
86 * syms.c (BSF_INDIRECT_FUNCTION): Delete.
87 (bfd_print_symbol_vandf): Remove STT_IFUNC support.
88 (bfd_decode_symclass): Likewise.
89 * bfd-in2.h: Regenerate.
91 2008-12-20 Hans-Peter Nilsson <hp@axis.com>
93 * elf32-cris.c (cris_elf_howto_table): Add entry for R_CRIS_32_IE.
94 (cris_reloc_map): Similarly.
95 (cris_elf_relocate_section, cris_elf_gc_sweep_hook)
96 (cris_elf_check_relocs): Handle R_CRIS_32_IE.
97 * reloc.c (bfd_reloc_code_type): Add entry for R_CRIS_32_IE.
98 * bfd-in2.h, libbfd.h: Regenerate.
100 2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
102 * configure: Regenerate.
104 2008-12-17 Hans-Peter Nilsson <hp@axis.com>
106 * elf32-cris.c (elf_cris_copy_indirect_symbol): Return without
107 action for symbols other than bfd_link_hash_indirect.
108 (cris_elf_relocate_section) <R_CRIS_8, R_CRIS_16, R_CRIS_32>: Add missing
109 gate h != NULL for h->def_regular test.
111 2008-12-15 Hans-Peter Nilsson <hp@axis.com>
113 * elf32-cris.c (elf_cris_copy_indirect_symbol): New function.
114 (elf_backend_copy_indirect_symbol): Define to above.
116 * elf32-cris.c (struct elf_cris_pcrel_relocs_copied): New member
117 r_type. Fix formatting.
118 (cris_elf_relocate_section) <R_CRIS_8_PCREL, R_CRIS_16_PCREL>
119 <R_CRIS_32_PCREL>: Also break early if the symbol doesn't get
120 emitted as a dynamic one.
121 (cris_elf_check_relocs) <R_CRIS_7, R_CRIS_16, R_CRIS_32>: Fork
122 from PCREL relocs code and simplify; don't fall through.
123 <R_CRIS_8_PCREL, R_CRIS_16_PCREL, R_CRIS_32_PCREL>: Simplify for
124 pcrel only. For non-local or overridable symbols in a DSO, always
125 keep count of relocs, not just when -Bsymbolic. Don't emit
126 message nor mark as TEXTREL here.
127 (elf_cris_discard_excess_dso_dynamics): Emit warning and mark as
128 TEXTREL here, if there are nondiscarded pcrel relocs.
130 * elf32-cris.c (elf_cris_got_elt_size) <symtab_hdr>: Initialize
131 using ibfd, not abfd.
133 2008-12-11 Alan Modra <amodra@bigpond.net.au>
136 * elf64-ppc.c (func_desc_adjust): Correct logic making fake function
137 descriptors. Similarly correct making function descriptors dynamic.
139 2008-12-10 Alan Modra <amodra@bigpond.net.au>
141 * elf32-spu.h (struct spu_elf_params): Add num_regions.
142 * elf32-spu.c (spu_elf_auto_overlay): Handle multiple overlay regions.
144 2008-12-10 Alan Modra <amodra@bigpond.net.au>
146 * elf32-spu.g (struct spu_elf_params, enum _ovly_flavour): New.
147 (spu_elf_setup): Declare.
148 (spu_elf_create_sections, spu_elf_size_stubs): Update prototype.
149 (spu_elf_build_stubs, spu_elf_check_vma): Likewise.
150 * elf32-spu.c (struct spu_link_hash_table): Add "params". Remove
151 various other fields now in "params". Adjust code throughout.
152 (struct call_info, struct function_info): Move earlier in file.
153 (struct spu_elf_stack_info): Likewise.
154 (spu_elf_setup): New function.
155 (spu_elf_create_sections): Remove args other than "info".
156 (spu_elf_size_stubs, spu_elf_build_stubs, spu_elf_check_vma): Likewise.
157 (maybe_needs_stubs): Remove "output_bfd" arg. Adjust all calls.
158 (interesting_section): Similarly with "obfd" arg.
159 (needs_ovl_stub): Adjust output_section test.
160 (allocate_spuear_stubs): Likewise.
161 (OVL_STUB_SIZE): Don't define.
162 (ovl_stub_size): New function, use in place of OVL_STUB_SIZE.
163 (build_stub): Test params->ovly_flavour rather than OVL_STUB_SIZE.
164 (spu_elf_auto_overlay): Remove args other than "info". Make use
165 of size returned from spu_elf_load_ovl_mgr.
166 (spu_elf_stack_analysis): Remove args other than "info".
167 (spu_elf_relocate_section): Tidy setting of "ea".
169 2008-12-10 Alan Modra <amodra@bigpond.net.au>
171 * elf32-spu.c (find_function_stack_adjust): Don't limit number
172 of insns scanned. Correct sp tests. Handle "fsmbi" and "andbi".
173 (mark_detached_root): New function.
174 (build_call_tree): Call it.
175 (sort_calls): Don't do void* arithmetic.
176 (define_ovtab_symbol): Don't abort on symbols defined in linker scripts.
177 (discover_functions): Consider STT_SECTION symbols too.
178 (collect_lib_sections): Don't cut short call tree traversal
179 when function size is too large.
181 2008-12-09 Tom Tromey <tromey@redhat.com>
183 * pef.c (bfd_pef_parse_traceback_table): Add parens to placate gcc
186 2008-12-09 Tristan Gingold <gingold@adacore.com>
188 * cpu-avr.c (compatible): Makes avr-6 compatible only with itself.
190 2008-12-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
192 * elf64-s390.c (elf_s390_check_relocs): Initialize
193 htab->elf.dynobj if necessary.
195 2008-12-03 Nick Clifton <nickc@redhat.com>
197 * syms.c (struct bfd_symbol): Add new flag BSF_INDIRECT_FUNCTION.
198 Remove redundant flag BFD_FORT_COMM_DEFAULT_VALUE. Renumber flags
200 (bfd_print_symbol_vandf): Return 'i' for BSF_INDIRECT_FUNCTION.
201 (bfd_decode_symclass): Likewise.
202 * elf.c (swap_out_syms): Translate BSF_INDIRECT_FUNCTION into
204 (elf_find_function): Treat STT_IFUNC in the same way as STT_FUNC.
205 (_bfd_elf_is_function_type): Likewise.
206 * elf32-arm.c (arm_elf_find_function): Likewise.
207 (elf32_arm_adjust_dynamic_symbol): Likewise.
208 (elf32_arm_swap_symbol_in): Likewise.
209 (elf32_arm_additional_program_headers): Likewise.
210 * elf32-i386.c (is_indirect_symbol): New function.
211 (elf_i386_check_relocs): Also generate dynamic relocs for
212 relocations against STT_IFUNC symbols.
213 (allocate_dynrelocs): Likewise.
214 (elf_i386_relocate_section): Likewise.
215 * elf64-x86-64.c (is_indirect_symbol): New function.
216 (elf64_x86_64_check_relocs): Also generate dynamic relocs for
217 relocations against STT_IFUNC symbols.
218 (allocate_dynrelocs): Likewise.
219 (elf64_x86_64_relocate_section): Likewise.
220 * elfcode.h (elf_slurp_symbol_table): Translate STT_IFUNC into
221 BSF_INDIRECT_FUNCTION.
222 * elflink.c (_bfd_elf_adjust_dynamic_reloc_section): Add support
223 for STT_IFUNC symbols.
224 (get_ifunc_reloc_section_name): New function.
225 (_bfd_elf_make_ifunc_reloc_section): New function.
226 * elf-bfd.h (struct bfd_elf_section_data): Add indirect_relocs field.
227 * bfd-in2.h: Regenerate.
229 2008-12-02 Tristan Gingold <gingold@adacore.com>
231 * config.bfd: Add x86_64-*-darwin*
233 2008-11-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
235 * hpux-core.c: Don't include sys/file.h.
237 2008-11-28 Joshua Kinard <kumba@gentoo.org>
239 * aoutx.h (NAME): Add case statements for bfd_mach_mips14000,
241 * archures.c (bfd_architecture): Add .#defines for bfd_mach_mips14000,
243 * bfd-in2.h: Regenerate.
244 * cpu-mips.c: Add enums I_mips14000, I_mips16000.
245 (arch_info_struct): Add refs to R14000, R16000.
246 * elfxx-mips.c (mips_set_isa_flags): Handle bfd_mach_mips14000,
248 (mips_mach_extensions): Map R14000, R16000 to R10000.
250 2008-11-27 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
252 * Add PIC support for CR16 target.
253 * elf32-cr16.c (R_CR16_GOT_REGREL20, R_CR16_GOTC_REGREL20 and
254 R_CR16_GLOB_DAT): New macros
255 (cr16_elf_howto_table): Add entries for for R_CR16_GOT_REGREL20,
256 R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT.
257 (cr16_reloc_map): Ditto
258 (_bfd_cr16_elf_create_got_section): New function to create GOT section.
259 (_bfd_cr16_elf_create_dynamic_sections): New function to create dynamic
261 (_bfd_cr16_elf_adjust_dynamic_symbol): New function to adjust symbol
262 defined by dynamic object.
263 (_bfd_cr16_elf_size_dynamic_sections): New function to find the size of
265 (_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic
267 (_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic
269 (bfd_cr16_elf32_create_embedded_relocs): New function to create
270 embedded relocs in .emreloc section in memory for .data.rel section.
271 (_bfd_cr16_elf_reloc_type_class): New function for classify reloc types.
272 (cr16_elf_check_relocs): New function for checking reloc types in first
274 (cr16_elf_final_link_relocate): Update for handling the new reloc types
275 R_CR16_GOT_REGREL20 and R_CR16_GOTC_REGREL20.
276 (elf32_cr16_relax_section): Update relax implementation.
277 * reloc.c (bfd_reloc_code_type): Add entries for R_CR16_GOT_REGREL20,
278 R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT.
279 * bfd-in.h (bfd_boolean bfd_cr16_elf32_create_embedded_relocs): Declared
280 * libbfd.h, bfd-in2.h: Regenerate.
282 2008-11-26 Alan Modra <amodra@bigpond.net.au>
285 * configure.in: Bump version.
286 * configure: Regenerate.
287 * elflink.c (_bfd_elf_link_assign_sym_version): Continue matching
288 against version nodes when a global match is a wildcard. Similarly
289 continue matching on local wildcard matches, rather than only
290 continuing for "*". Have any global wildcard match override a
291 local wildcard match. Correct logic hiding unversioned symbol.
292 (bfd_elf_size_dynamic_sections): Update for changes to struct
293 bfd_elf_version_expr.
295 2008-11-25 Joel Brobecker <brobecker@adacore.com>
297 * configure.in: Deactivate large-file support on native x86-solaris
298 as well unless the user explicitly requested it.
299 * configure: Regenerate.
301 2008-11-25 Joseph Myers <joseph@codesourcery.com>
303 * elf32-arm.c (elf32_arm_final_link_relocate): Do not turn
304 branches to undefine weak symbols into branches to the next
305 instruction if creating PLT entries for those symbols.
307 2008-11-25 Nick Clifton <nickc@redhat.com>
309 * elflink.c (is_reloc_section): New function. Returns true if the
310 given name matches the name of the reloc-containing section
311 associated with the given section.
312 (get_dynamic_reloc_section_name): New function. Computes the name
313 of the section that contains the dynamic relocs associated with
315 (_bfd_elf_get_dynamic_reloc_section): New function. Returns a
316 pointer to the section containing the dynamic relocs associated
317 with the given section.
318 (_bfd_elf_make_dynamic_reloc_section): New function. Creates a
319 section to contain the dynamic relocs associated with a given
321 * elf-bfd.h: Prototype the new functions.
322 * elf-m10300.c (mn10300_elf_check_relocs): Use new functions.
323 (mn10300_elf_final_link_relocs): Likewise.
324 * elf32-arm.c (reloc_section_p): Delete - replaced by new
326 (elf32_arm_final_link_relocate): Use new functions.
327 (elf32_arm_check_relocs): Likewise.
328 * elf32-cris.c (cris_elf_relocate_section): Likewise.
329 (elf_cris_check_relocs): Likewise.
330 * elf32-hppa.c (elf32_hppa_check_relocs): Likewise.
331 * elf32-i370.c (i370_elf_check_relocs): Likewise.
332 (i370_elf_relocate_section): Likewise.
333 * elf32-i386.c (elf_i386_check_relocs): Likewise.
334 * elf32-m32r.c (m32r_elf_relocate_section): Likewise.
335 (m32r_elf_check_relocs): Likewise.
336 * elf32-m68k.c (elf_m68k_check_relocs): Likewise.
337 * elf32_ppc.c (ppc_elf_check_relocs): Likewise.
338 (ppc_elf_relocate_section): Likewise.
339 * elf32-s390.c (elf_s390_check_relocs): Likewise.
340 * elf32-sh.c (sh_elf_relocate_section): Likewise.
341 (sh_elf_check_relocs): Likewise.
342 * elf32-vax.c (elf_vax_check_relocs): Likewise.
343 (elf_vax_relocate_section): Likewise.
344 * elf64-alpha.c (elf64_alpha_check_relocs): Likewise.
345 * elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
346 * elf64-s390.c (elf_s390_check_relocs): Likewise.
347 * elf64-sh64.c (sh_elf64_relocate_section): Likewise.
348 * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
349 * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise.
350 * elf32-bfin.c (bfin_check_relocs): Remove redundant local
352 (bfin_relocate_section): Likewise.
353 * elf32-v850.c (v850_elf_check_relocs): Likewise.
355 2008-11-23 Hans-Peter Nilsson <hp@axis.com>
357 Implement TLS for CRIS.
358 * elf32-cris.c: Include limits.h.
359 (TLSHOWTO16): Redefine in terms of and move contents to...
360 (TLSHOWTO16X): New macro.
361 (TLSHOWTO16S, LGOT_REG_NDX, LGOT_DTP_NDX, LGOT_ALLOC_NELTS_FOR)
362 (elf_cris_hash_entry): New macros.
363 (cris_elf_howto_table): Make R_CRIS_16_DTPREL,
364 R_CRIS_16_GOT_TPREL, R_CRIS_16_TPREL check overflow for signed,
366 (cris_info_to_howto_rela): Make r_type a enum elf_cris_reloc_type,
368 (struct elf_cris_link_hash_entry): New members reg_got_refcount,
369 tprel_refcount, and dtp_refcount.
370 (struct elf_cris_link_hash_table): New member dtpmod_refcount.
371 (elf_cris_link_hash_newfunc): Initialize new members.
372 (elf_cris_link_hash_table_create): Similar.
373 (cris_final_link_relocate, elf_cris_reloc_type_class): Use a
374 temporary variable when testing the relocation type.
375 (cris_elf_gc_mark_hook): Ditto. Add default case where needed.
376 (cris_elf_gc_sweep_hook): Ditto. Handle reference-counting for
377 the new assembly-generated relocs. Rewrite refcount handling to
378 set temporary variables to pointers to reloc-specific variables
379 and entry size and common code for the update.
380 (additional_relocation_error_msg_count): New variable.
381 (cris_elf_relocate_section): Use a function-local variable srelgot
382 for the .rela.got section instead of looking it up for every need.
383 Make r_type a enum elf_cris_reloc_type, not int. Actually set
384 symname for non-local symbols. Handle new assembly-generated
385 relocs. For overflow, emit additional messages for the new 16-bit
386 relocs as well as R_CRIS_16_GOTPLT and R_CRIS_16_GOT.
387 (elf_cris_finish_dynamic_symbol): Use elf_cris_finish_dynamic_symbol
388 instead of plain casts. Check new hash entry member
389 reg_got_refcount when checking whether to emit a GOT entry.
390 (elf_cris_finish_dynamic_sections): Update head comment to warn
391 about emitting relocs here. Use a temporary variable when testing
393 (elf_cris_discard_excess_program_dynamics)
394 (elf_cris_adjust_gotplt_to_got): Handle reference counting change
395 regarding h->reg_got_refcount.
396 (cris_elf_check_relocs): Rewrite refcount handling to set
397 temporary variables and entry size and common code for the update
398 for local symbols. Use new macro elf_cris_hash_entry. Adjust
399 allocation for change in reference counting of GOT entries for
401 (elf_cris_size_dynamic_sections): Adjust calculated size of
402 .got.plt and .rela.got if we need a GOT entry for a
403 R_CRIS_DTPMOD relocation.
404 (elf_cris_got_elt_size): New function.
405 (elf_backend_got_elt_size): Define.
407 2008-11-21 Sterling Augustine <sterling@tensilica.com>
409 * xtensa-isa.c (xtensa_state_is_shared_or): New function.
411 2008-11-21 Hans-Peter Nilsson <hp@axis.com>
413 * elf-bfd.h (struct elf_backend_data): New member got_elt_size.
414 (_bfd_elf_default_got_elt_size): Declare.
415 * elflink.c (struct alloc_got_off_arg): Replace member got_elt_size
417 (elf_gc_allocate_got_offsets): Adjust for calling bed->got_elt_size
418 to get the element size instead of using a gofarg entry.
419 (bfd_elf_gc_common_finalize_got_offsets): Similar.
420 (_bfd_elf_default_got_elt_size): New function.
421 * elfxx-target.h: New macro elf_backend_got_elt_size.
424 2008-11-20 Tristan Gingold <gingold@adacore.com>
426 * bfdwin.c: Fix comment.
428 2008-11-20 Tristan Gingold <gingold@adacore.com>
430 * bfd.c (is32bit): Use architecture information for non-ELF
433 2008-11-20 Alan Modra <amodra@bigpond.net.au>
435 * elf32-ppc.c (allocate_dynrelocs): Always use tlsld_got for
436 TLS_LD even when symbol is used with other TLS reloc types.
437 (ppc_elf_relocate_section): Bypass symbol checks when using tlsld_got.
438 Leave addend zero on LD DTPMOD dynamic reloc.
440 2008-11-19 Bob Wilson <bob.wilson@acm.org>
442 * xtensa-modules.c (sysregs): Add MMID, VECBASE, EPC5, EPC6, EPC7,
443 EXCSAVE5, EXCSAVE6, EXCSAVE7, EPS5, EPS6, EPS7, CPENABLE,
444 SCOMPARE1, and THREADPTR registers.
445 (NUM_SYSREGS, MAX_USER_REG): Update.
446 (states): Change width of INTERRUPT, WindowBase, WindowStart, and
447 INTENABLE. Add VECBASE, EPC5, EPC6, EPC7, EXCSAVE5, EXCSAVE6,
448 EXCSAVE7, EPS6, EPS6, EPS7, THREADPTR, CPENABLE, and SCOMPARE1 states.
449 (NUM_STATES): Update.
450 (enum xtensa_state_id): Add entries for new states.
451 (enum xtensa_field_id): Add entries for xt_wbr15_imm and xt_wbr18_imm
452 fields, along with functions to extract and set them.
453 (regfiles): Change number of AR registers to 32.
454 (Operand_ar0_encode, Operand_ar4_encode, Operand_ar8_encode,
455 Operand_ar12_encode, Operand_ars_entry_encode): Update register mask.
456 (operands): Add entries for tp7, xt_wbr15_label, xt_wbr18_label,
457 xt_wbr15_imm, and xt_wbr18_imm operands, along with functions to
458 encode and decode them.
459 (enum xtensa_operand_id): Add entries for new operands.
460 (Iclass_xt_iclass_rfi_stateArgs): Add EPC5, EPC6, EPC7, EPS5, EPS6, and
462 (Iclass_xt_iclass_rfdo_stateArgs): Replace EPC4 and EPS4 by EPC6 and
464 (iclasses): Add entries for rur_threadptr, wur_threadptr,
465 xt_iclass_wsr_176, xt_iclass_rsr_epc5, xt_iclass_wsr_epc5,
466 xt_iclass_xsr_epc5, xt_iclass_rsr_excsave5, xt_iclass_wsr_excsave5,
467 xt_iclass_xsr_excsave5, xt_iclass_rsr_epc6, xt_iclass_wsr_epc6,
468 xt_iclass_xsr_epc6, xt_iclass_rsr_excsave6, xt_iclass_wsr_excsave6,
469 xt_iclass_xsr_excsave6, xt_iclass_rsr_epc7, xt_iclass_wsr_epc7,
470 xt_iclass_xsr_epc7, xt_iclass_rsr_excsave7, xt_iclass_wsr_excsave7,
471 xt_iclass_xsr_excsave7, xt_iclass_rsr_eps5, xt_iclass_wsr_eps5,
472 xt_iclass_xsr_eps5, xt_iclass_rsr_eps6, xt_iclass_wsr_eps6,
473 xt_iclass_xsr_eps6, xt_iclass_rsr_eps7, xt_iclass_wsr_eps7,
474 xt_iclass_xsr_eps7, xt_iclass_rsr_vecbase, xt_iclass_wsr_vecbase,
475 xt_iclass_xsr_vecbase, xt_iclass_mul16, xt_iclass_wsr_mmid,
476 xt_iclass_icache_lock, xt_iclass_dcache_lock, xt_iclass_rsr_cpenable,
477 xt_iclass_wsr_cpenable, xt_iclass_xsr_cpenable, xt_iclass_clamp,
478 xt_iclass_minmax, xt_iclass_sx, xt_iclass_l32ai, xt_iclass_s32ri,
479 xt_iclass_s32c1i, xt_iclass_rsr_scompare1, xt_iclass_wsr_scompare1,
480 xt_iclass_xsr_scompare1, xt_iclass_div, and xt_iclass_mul32, along
481 with corresponding argument and state argument arrays. Change
482 number of state arguments for xt_iclass_rfi. Add arguments for
484 (enum xtensa_iclass_id): Add entries for new iclasses.
485 (opcodes): Add entries for RUR_THREADPTR, WUR_THREADPTR, WSR_176,
486 RSR_EPC5, WSR_EPC5, XSR_EPC5, RSR_EXCSAVE5, WSR_EXCSAVE5, XSR_EXCSAVE5,
487 RSR_EPC6, WSR_EPC6, XSR_EPC6, RSR_EXCSAVE6, WSR_EXCSAVE6, XSR_EXCSAVE6,
488 RSR_EPC7, WSR_EPC7, XSR_EPC7, RSR_EXCSAVE7, WSR_EXCSAVE7, XSR_EXCSAVE7,
489 RSR_EPS5, WSR_EPS5, XSR_EPS5, RSR_EPS6, WSR_EPS6, XSR_EPS6, RSR_EPS7,
490 WSR_EPS7, XSR_EPS7, RSR_VECBASE, WSR_VECBASE, XSR_VECBASE, MUL16U,
491 MUL16S, WSR_MMID, IPFL, IHU, IIU, DPFL, DHU, DIU, RSR_CPENABLE,
492 WSR_CPENABLE, XSR_CPENABLE, CLAMPS, MIN, MAX, MINU, MAXU, SEXT, L32AI,
493 S32RI, S32C1I, RSR_SCOMPARE1, WSR_SCOMPARE1, XSR_SCOMPARE1, QUOU, QUOS,
494 REMU, REMS, and MULL opcodes, along with the corresponding functions
496 (enum xtensa_opcode_id): Add entries for new opcodes.
497 (Slot_inst_decode): Handle new opcodes.
498 (Slot_inst_get_field_fns, Slot_inst_set_field_fns): Add entries for
499 xt_wbr15_imm and xt_wbr18_imm fields.
500 (Slot_inst16a_get_field_fns, Slot_inst16a_set_field_fns): Likewise.
501 (Slot_inst16b_get_field_fns, Slot_inst16b_set_field_fns): Likewise.
502 (xtensa_modules): Update number of fields, operands, iclasses and
505 2008-11-19 Nix <nix@esperi.org.uk>
507 * elf.c (swap_out_syms) [USE_STT_COMMON]: Fix syntax error.
509 2008-11-19 Nick Clifton <nickc@redhat.com>
512 * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Treat WPLT30 relocs
513 against local symbols in 64-bit binaries as if they were WDISP30
515 (_bfd_sparc_elf_relocate_section): Likewise.
517 2008-11-18 Catherine Moore <clm@codesourcery.com>
519 * elf32-arm.c (elf32_arm_merge_eabi_attributes): Merge
520 half-precision attributes.
521 (elf32_arm_copy_one_eabi_other_attribute): New.
522 (elf32_arm_copy_other_attribute_list): New.
524 2008-11-18 Nick Clifton <nickc@redhat.com>
526 * dwarf2.c (read_section): Fix formatting.
527 (read_n_bytes): Remove unhelpful comment.
528 (read_indirect_string): Pass symbol table to read_section in case
529 the .debug_str section needs relocating.
532 * elf32-cr16.c (cr16_elf_howto_table): Zero the src_mask field of
533 the reloc descriptions.
535 2008-11-14 Eric B. Weddington <eric.weddington@atmel.com>
538 * elf32-avr.c (bfd_elf_avr_final_write_processing):
539 Add missing break statements.
541 2008-11-14 Bob Wilson <bob.wilson@acm.org>
543 * xtensa-modules.c (xtensa_state_id): New enum, replacing STATE macros.
544 (xtensa_field_id, xtensa_regfile_id, xtensa_operand_id)
545 (xtensa_iclass_id, xtensa_opcode_id): New enums.
546 Replace hardcoded constants throughout this file with enum values.
548 2008-11-14 Nathan Sidwell <nathan@codesourcery.com>
550 * elf.c (assign_file_positions_for_load_sections): Use header_size
551 to avoid moving the load address of file headers.
552 (assign_file_positions_for_load_sections): Set header_size for
553 segments containing the file header.
555 2008-11-14 Tristan Gingold <gingold@adacore.com>
557 * configure.com: Handle bfd_default_target_size, BFD_HOST_LONG_LONG,
558 BFD_HOST_64BIT_LONG_LONG, BFD_HOSTPTR_T, bfd_file_ptr.
560 * vms-hdr.c (_bfd_vms_write_hdr): Use strdup/free instead of alloca.
561 * hosts/alphavms.h: Defines macros to bypass i18n.
562 * makefile.vms (OBJS): Update file list.
563 (DEFS): Remove VMS_DEBUG, const, add DEBUGDIR.
564 (CFLAGS): Update flags.
565 * bfdio.c (real_fopen): Add code specific to VMS: extract attributes
568 2008-11-13 Joel Brobecker <brobecker@adacore.com>
570 * configure.in: Deactivate large-file support on native 32bit
571 sparc-solaris unless the user explicitly requested it.
572 * configure: Regenerate.
574 2008-11-13 Hans-Peter Nilsson <hp@axis.com>
577 * elf.c (assign_file_positions_for_load_sections): Allocate phrds
578 with bfd_zalloc2 instead of bfd_alloc2. For the amount, use
579 the possibly-preset header-size, not the computed one.
581 2008-11-13 Alan Modra <amodra@bigpond.net.au>
584 * elf.c (bfd_section_from_shdr <SHT_SYMTAB>): Fail on invalid sh_info.
586 2008-11-11 Alan Modra <amodra@bigpond.net.au>
588 * elf.c (assign_file_positions_for_non_load_sections): Consolidate
589 PT_GNU_RELRO handling.
591 2008-11-11 Alan Modra <amodra@bigpond.net.au>
594 * dwarf2.c (find_line): Don't keep stale pointers into realloc'd
595 memory. Return on errors. Fix memory leak.
596 (_bfd_dwarf2_cleanup_debug_info): Free dwarf_str_buffer.
598 2008-11-10 Andreas Schwab <schwab@suse.de>
601 * elf.c (assign_file_positions_for_non_load_sections): Handle
602 PT_GNU_RELRO specially.
604 2008-11-06 Joel Sherrill <joel.sherrill@oarcorp.com>
606 * config.bfd: Add m32c-*-rtems* and m32r-*-rtems*.
608 2008-11-06 Tom Tromey <tromey@redhat.com>
610 * configure, config.in: Rebuild.
611 * configure.in: Check for fileno.
612 * bfdio.c (close_on_exec): New function.
613 (real_fopen): Use it.
614 (FD_CLOEXEC): New define.
616 2008-11-06 Tristan Gingold <gingold@adacore.com>
618 * mach-o.h (BFD_MACH_O_NO_SECT): Add; reorders the macros.
619 (BFD_MACH_O_SYM_NTYPE, BFD_MACH_O_SYM_NSECT,
620 BFD_MACH_O_SYM_NDESC): New macros.
621 (bfd_mach_o_i386_thread_flavour): Define according to the latest
622 definition from system header.
623 (bfd_mach_o_load_command_type): Add BFD_MACH_O_LC_RPATH,
624 BFD_MACH_O_LC_CODE_SIGNATURE.
625 (BFD_MACH_O_SECTION_TYPE_MASK, BFD_MACH_O_SECTION_ATTRIBUTES_MASK,
626 BFD_MACH_O_SECTION_ATTRIBUTES_SYS, BFD_MACH_O_SECTION_ATTRIBUTES_USR,
627 BFD_MACH_O_S_ATTR_LOC_RELOC, BFD_MACH_O_S_ATTR_EXT_RELOC,
628 BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS, BFD_MACH_O_S_ATTR_DEBUG,
629 BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS): Add.
630 (bfd_mach_o_segment_command): Add room for a nul terminator in
632 (BFD_MACH_O_PROT_READ, BFD_MACH_O_PROT_WRITE,
633 BFD_MACH_O_PROT_EXECUTE): Add.
634 (INDIRECT_SYMBOL_LOCAL): Renames to BFD_MACH_O_INDIRECT_SYMBOL_LOCAL.
635 (INDIRECT_SYMBOL_ABS): Renames to BFD_MACH_O_INDIRECT_SYMBOL_ABS.
636 (bfd_mach_o_uuid_command): Add the structure.
637 (bfd_mach_o_load_command): Add uuid field.
638 (bfd_get_mach_o_data): New macro.
639 * mach-o.c (bfd_mach_o_bfd_print_private_bfd_data): New function which
641 (SECTION_TYPE, SECTION_ATTRIBUTES, SECTION_ATTRIBUTES_USR,
642 S_ATTR_PURE_INSTRUCTIONS, SECTION_ATTRIBUTES_SYS,
643 S_ATTR_SOME_INSTRUCTIONS, S_ATTR_EXT_RELOC, S_ATTR_LOC_RELOC): Renamed
644 and moved to mach-o.h.
645 (N_STAB, N_TYPE, N_EXT, N_UNDF, N_ABS, N_TEXT, N_DATA, N_BSS,
646 N_SECT, N_INDR): Removed as they duplicated macros in mach-o.h.
647 (bfd_mach_o_print_symbol): Print much more details.
648 (bfd_mach_o_make_bfd_section): Add prot argument, use canonical
649 dwarf name for dwarf sections. Precisely set section flags.
650 (bfd_mach_o_scan_read_section_32): Add prot argument.
651 (bfd_mach_o_scan_read_section_64): Ditto.
652 (bfd_mach_o_scan_read_section): Ditto.
653 (bfd_mach_o_scan_read_symtab_symbol): Set section for debugging
654 stabs, set BSF_GLOBAL and LOCAL flags correctly. Fix section
656 (bfd_mach_o_i386_flavour_string): Reindent and adjust for new
658 (bfd_mach_o_scan_read_symtab): Set HAS_SYMS flags on bfd if there
660 (bfd_mach_o_scan_read_uuid): New function.
661 (bfd_mach_o_scan_read_segment): Add a trailing nul. Segments
662 flags are now simply HAS_CONTENTS. Pass protection to
663 bfd_mach_o_scan_read_section.
664 (bfd_mach_o_scan_read_command): Decode UUID command.
665 (bfd_mach_o_flatten_sections): Add comments. Fix flavour names.
666 (bfd_mach_o_scan): Set flags according to file type.
667 (mach_o_fat_archentry): Remove abfd field.
668 (bfd_mach_o_archive_p): Remove initialization of abfd field.
669 (bfd_mach_o_openr_next_archived_file): Find previous archive
670 by position and not by bfd (as former bfds may have been freed).
671 Give architecture name to archived file.
672 * mach-o-target.c (TARGET_NAME): Use generic archive for non fat
675 2008-10-30 Jay Krell <jay.krell@cornell.edu>
677 * cache.c (cache_bread): Cast void * pointer before performing
680 2008-10-20 Alan Modra <amodra@bigpond.net.au>
682 * elf64-ppc.c (ppc64_elf_process_dot_syms): Renamed from
683 ppc64_elf_check_directives.
684 * elf32-sh-symbian.c (sh_symbian_process_directives): Combine..
685 (sh_symbian_check_directives): ..this
686 (bfd_elf32_sh_symbian_process_directives) ..and this function.
688 2008-10-20 Alan Modra <amodra@bigpond.net.au>
690 * elflink.c (bfd_elf_final_link): Move code reading relocs to..
691 * elf32-spu.c (spu_elf_count_relocs): ..here. Adjust params.
692 * elf-bfd.h (struct elf_backend_data): Update elf_backend_count_relocs
695 2008-10-20 Alan Modra <amodra@bigpond.net.au>
697 * elflink.c (bfd_elf_final_link): Use d_ptr rather than d_val
698 where Elf_Internal_Dyn holds an address.
700 2008-10-10 Nathan Froyd <froydnj@codesourcery.com>
702 * elf32-ppc.c (ppc_elf_merge_obj_attributes): Merge
703 Tag_GNU_Power_ABI_Struct_Return.
705 2008-10-09 Kai Tietz <kai.tietz@onevision.com>
707 * cofflink.c (_bfd_coff_generic_relocate_section): Dump bfd_vma
708 sized addresses instead of long sized.
710 2008-10-09 Alan Modra <amodra@bigpond.net.au>
712 * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't attempt to
713 read plt relocs if no dynamic syms.
715 2008-10-08 Nick Clifton <nickc@redhat.com>
717 * configure.in (ALL_LINGUAS): Add "id".
718 * configure: Regenerate.
719 * po/id.po: New Indonesian translation.
721 2008-10-08 Alan Modra <amodra@bigpond.net.au>
723 * elf.c (assign_file_positions_for_load_sections): When checking
724 a segment for contents, don't assume that a non-TLS nobits section
725 must only be followed by nobits sections.
727 2008-10-04 Hans-Peter Nilsson <hp@axis.com>
729 * elf32-cris.c (TLSHOWTO32, TLSHOWTO16): New macros.
730 (cris_elf_howto_table): Add entries for R_CRIS_32_GOT_GD,
731 R_CRIS_16_GOT_GD, R_CRIS_32_GD, R_CRIS_DTP, R_CRIS_32_DTPREL,
732 R_CRIS_16_DTPREL, R_CRIS_DTPMOD, R_CRIS_32_GOT_TPREL,
733 R_CRIS_16_GOT_TPREL, R_CRIS_32_TPREL, R_CRIS_16_TPREL.
734 (cris_reloc_map): Similarly.
735 * reloc.c (bfd_reloc_code_type): Add entries for
736 BFD_RELOC_CRIS_32_GOT_GD, BFD_RELOC_CRIS_16_GOT_GD,
737 BFD_RELOC_CRIS_32_GD, BFD_RELOC_CRIS_DTP,
738 BFD_RELOC_CRIS_32_DTPREL, BFD_RELOC_CRIS_16_DTPREL,
739 BFD_RELOC_CRIS_DTPMOD, BFD_RELOC_CRIS_32_GOT_TPREL,
740 BFD_RELOC_CRIS_16_GOT_TPREL, BFD_RELOC_CRIS_32_TPREL,
741 BFD_RELOC_CRIS_16_TPREL.
742 * libbfd.h, bfd-in2.h: Regenerate.
744 2008-10-03 Alan Modra <amodra@bigpond.net.au>
747 * elf.c (bfd_elf_set_group_contents): Assign sh_info for ld -r when
748 the signature symbol is global.
749 * elflink.c (elf_link_input_bfd): Ensure group signature symbol
750 is output when ld -r. Set group sh_info when local.
751 * linker.c (default_indirect_link_order): Handle group sections
754 2008-09-30 Wesley W. Terpstra <wesley@terpstra.ca>
755 Nick Clifton <nickc@redhat.com>
757 * coffgen.c (coff_write_symbols): Check to see if a symbol's flags
758 do not match it class and if necessary update the class.
759 (null_error_handler): New function. Suppresses the generation of
761 * coff64-rs6000.c (bfd_xcoff_backend_data): Update comment.
763 2008-09-30 Alan Modra <amodra@bigpond.net.au>
765 * Makefile.am: Run "make dep-am".
766 * Makefile.in: Regenerate.
768 2008-09-30 Alan Modra <amodra@bigpond.net.au>
770 * elflink.c (elf_link_add_object_symbols): Don't ignore returned
771 value of check_directives.
773 2008-09-29 Peter O'Gorman <pogma@thewrittenword.com>
774 Steve Ellcey <sje@cup.hp.com>
776 * configure: Regenerate for new libtool.
778 * Makefile.in: Ditto.
779 * doc/Makefile.in: Ditto.
781 2008-09-29 Alan Modra <amodra@bigpond.net.au>
784 * elf.c (assign_file_positions_for_load_sections): Call
785 _bfd_elf_map_sections_to_segments, not elf_modify_segment_map.
786 (get_program_header_size): Protect against NULL info.
787 (_bfd_elf_map_sections_to_segments): Likewise.
788 * elf32-spu.c (spu_elf_additional_program_headers): Likewise.
790 2008-09-29 Nick Clifton <nickc@redhat.com>
792 * po/vi.po: Updated Vietnamese translation.
794 2008-09-28 Alan Modra <amodra@bigpond.net.au>
796 * elf.c (_bfd_elf_init_private_section_data): Tweak union copy.
797 (bfd_section_from_shdr): Don't change SHT_GROUP section name.
798 * elflink.c (section_signature): New function.
799 (_bfd_elf_section_already_linked): Use it.
801 2008-09-19 Alan Modra <amodra@bigpond.net.au>
803 * elf32-ppc.c (ppc_elf_finish_dynamic_sections): Handle vxworks
804 _GLOBAL_OFFSET_TABLE_ in .got.plt section. Add BFD_ASSERTs.
806 2008-09-17 Bob Wilson <bob.wilson@acm.org>
808 * elf32-xtensa.c (elf_xtensa_check_relocs): Check for negative
811 2008-09-17 Jan Kratochvil <jan.kratochvil@redhat.com>
813 PR 6893 - Do not consider FDEs for discarded sections as invalid.
814 * elf-eh-frame.c (_bfd_elf_parse_eh_frame): New REQUIRE_CLEARED_RELOCS.
815 Consider FDEs with cleared relocations as valid and ignorable.
817 2008-09-16 H.J. Lu <hongjiu.lu@intel.com>
820 * elflink.c (_bfd_elf_merge_symbol): Allow a common symbol to
821 override the function in a shared library.
823 2008-09-16 Alan Modra <amodra@bigpond.net.au>
826 * elf32-ppc.c (SYM_VAL): Define. Use throughout to find symbol vma.
827 (ppc_elf_relocate_section): Correct GOT offset calculation.
828 (ppc_elf_finish_dynamic_symbol): Use PPC_HA and PPC_LO.
829 (ppc_elf_finish_dynamic_sections): Likewise. Error if
830 htab->elf.hgot symbol is not defined in htab->got section.
832 2008-09-16 Alan Modra <amodra@bigpond.net.au>
835 * elf32-ppc.c (ppc_elf_relocate_section): Handle NULL symbol section
836 on R_PPC_TOC16, R_PPC_SDAREL16, R_PPC_EMB_SDA2REL, R_PPC_EMB_SDA21,
837 R_PPC_EMB_RELSDA, R_PPC_SECTOFF* relocs.
839 2008-09-11 Jan Kratochvil <jan.kratochvil@redhat.com>
841 Fix loading large elf64 binaries on 32bit hosts.
842 * configure.in: Call AC_SYS_LARGEFILE.
843 * config.in: Regenerate.
844 * configure: Regenerate.
846 2008-09-08 Tom Tromey <tromey@redhat.com>
848 * elfxx-mips.c (mips16_stub_symndx) <sec>: Mark argument as
851 2008-09-08 H.J. Lu <hongjiu.lu@intel.com>
852 Daniel Jacobowitz <dan@codesourcery.com>
855 * dwarf2.c (struct adjusted_section): Renamed from struct
857 (struct dwarf2_debug): Adjust for renaming. Add version field.
858 (read_attribute_value): Correctly handle DW_FORM_ref_addr for
860 (find_abstract_instance_name): Pass a pointer to
861 attribute instead of offset. For DW_FORM_ref_addr, get the
862 entry at the offset from the .debug_info section.
863 (scan_unit_for_symbols): Update.
864 (parse_comp_unit): Allow DWARF3. Save the version.
865 (unset_sections): Update for renaming.
866 (place_sections): Likewise. Set new VMAs for DWARF sections
869 2008-09-08 Tristan Gingold <gingold@adacore.com>
871 * configure.in: Update version to 2.19.50
872 * configure: Regenerated.
874 2008-09-05 Daniel Jacobowitz <dan@codesourcery.com>
876 * dwarf2.c: Change leading whitespace to tabs.
878 2008-09-05 Tristan Gingold <gingold@adacore.com>
880 Add MacOSX 64 bits support.
881 * mach-o.h (bfd_mach_o_ppc_thread_flavour): Add
882 BFD_MACH_O_PPC_THREAD_STATE_64.
883 (bfd_mach_o_i386_thread_flavour): Add BFD_MACH_O_x86_THREAD_STATE64,
884 BFD_MACH_O_x86_FLOAT_STATE64, BFD_MACH_O_x86_EXCEPTION_STATE64,
885 BFD_MACH_O_x86_THREAD_STATE, BFD_MACH_O_x86_FLOAT_STATE,
886 BFD_MACH_O_x86_EXCEPTION_STATE.
887 (bfd_mach_o_load_command_type): Add
888 BFD_MACH_O_LC_SEGMENT_64, BFD_MACH_O_LC_ROUTINES_64,
890 (BFD_MACH_O_CPU_IS64BIT): Added.
891 (bfd_mach_o_cpu_type): Add BFD_MACH_O_CPU_TYPE_POWERPC_64,
892 BFD_MACH_O_CPU_TYPE_X86_64.
893 (bfd_mach_o_header): Add version field.
894 (bfd_mach_o_section) Add reserved3 field.
895 (bfd_mach_o_segment_command): Add initprot and maxprot fields.
897 * mach-o.c (N_TEXT, N_DATA, N_BSS): Added.
898 (bfd_mach_o_version): New function.
899 (bfd_mach_o_valid): Handle 64bits cpus.
900 (bfd_mach_o_write_header): handler 64bits headers.
901 (bfd_mach_o_scan_write_section_32, bfd_mach_o_scan_write_section_64):
902 New functions (from bfd_mach_o_scan_write_section) to handle both
904 (bfd_mach_o_scan_write_segment): Parameter wide added to support
906 (bfd_mach_o_write_contents): Support both flavors.
907 (bfd_mach_o_read_header): Ditto.
908 (bfd_mach_o_scan_read_section_32, bfd_mach_o_scan_read_section_64):
909 New functions (from bfd_mach_o_scan_read_section) to support both
911 (bfd_mach_o_scan_read_symtab_symbol): Support both flavors.
912 (bfd_mach_o_scan_read_symtab): Ditto.
913 (bfd_mach_o_scan_read_segment): Parameter wide added to support
915 (bfd_mach_o_scan_read_segment_32, bfd_mach_o_scan_read_segment_64):
916 New functions to call bfd_mach_o_scan_read_segment.
917 (bfd_mach_o_flatten_sections): Support both flavors.
918 (bfd_mach_o_scan_start_address): Ditto.
919 (bfd_mach_o_scan): Ditto.
920 (bfd_mach_o_lookup_section): Ditto.
922 2008-08-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
924 * elf-hppa.h (elf_hppa_reloc_final_type): Handle R_PARISC_GPREL64,
925 R_PARISC_SEGREL32 and R_PARISC_SEGREL64.
926 * som.c (som_fixup_formats): Add R_DATA_GPREL fixup.
927 (som_hppa_howto_table): Likewise.
928 (hppa_som_gen_reloc_type): In case R_HPPA_GOTOFF, detect R_DATA_GPREL
930 (som_write_fixups): Handle R_DATA_GPREL.
932 2008-08-26 Nick Clifton <nickc@redhat.com>
934 * elf32-arm.c: Fix up comment describing Thumb to ARM interworking
937 2008-08-25 Christophe Lyon <christophe.lyon@st.com>
939 * elf32-arm.c (arm_thumb_arm_v4t_short_branch_stub): Define.
940 (elf32_arm_stub_type): Add arm_thumb_arm_v4t_stub_short_branch.
941 (arm_type_of_stub): Handle armv4t short branches. Update
943 (arm_stub_is_thumb): Handle arm_thumb_arm_v4t_stub_short_branch.
944 (arm_build_one_stub): Likewise.
945 (arm_size_one_stub): Likewise.
946 (elf32_arm_size_stubs): Use new arm_type_of_stub prototype.
947 (arm_map_one_stub): Handle arm_thumb_arm_v4t_stub_short_branch.
949 2008-08-24 Andreas Schwab <schwab@suse.de>
951 * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Do proper
952 extension when calculating difference of offsets.
954 2008-08-24 Alan Modra <amodra@bigpond.net.au>
956 * configure.in: Update a number of obsolete autoconf macros.
957 * aclocal.m4: Regenerate.
959 2008-08-23 Andreas Schwab <schwab@suse.de>
961 * opncls.c (find_separate_debug_file): Use the canonical
962 absolute name of the bfd object for finding the debug file in
963 the global debugfile directory.
965 2008-08-22 Jakub Jelinek <jakub@redhat.com>
967 Fix PR ld/3290 regression for cross-files DW_FORM_ref_addr relocations.
968 * elflink.c (elf_link_add_object_symbols): Make debug symbols local
969 now only for non-RELOCATABLE targets.
971 2008-08-20 Bob Wilson <bob.wilson@acm.org>
973 * elf-bfd.h (elf_object_id): Add XTENSA_ELF_TDATA.
974 * elf32-xtensa.c (elf_howto_table): Add TLS relocations.
975 (elf_xtensa_reloc_type_lookup): Likewise.
977 (elf_xtensa_link_hash_entry): New.
978 (GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE, GOT_TLS_ANY): Define.
979 (elf_xtensa_hash_entry): Define.
980 (elf_xtensa_obj_tdata): New.
981 (elf_xtensa_tdata): Define.
982 (elf_xtensa_local_got_tls_type): Define.
983 (elf_xtensa_local_tlsfunc_refcounts): Define.
984 (is_xtensa_elf): Define.
985 (elf_xtensa_mkobject): New.
986 (elf_xtensa_link_hash_table): Add tlsbase field.
987 (elf_xtensa_link_hash_newfunc): New.
988 (elf_xtensa_link_hash_table_create): Use elf_xtensa_link_hash_newfunc.
989 Create an entry for "_TLS_MODULE_BASE_" and save it in tlsbase field.
990 (elf_xtensa_copy_indirect_symbol): New.
991 (elf_xtensa_check_relocs): Rewrite to handle TLS relocations.
992 (elf_xtensa_gc_sweep_hook): Likewise.
993 (elf_xtensa_allocate_dynrelocs): Optimize away GOT entries for
994 TLSDESC_FN relocations when an IE reference is seen.
995 (elf_xtensa_allocate_local_got_size): Likewise.
996 (elf_xtensa_always_size_sections): New.
997 (dtpoff_base, tpoff): New.
998 (elf_xtensa_do_reloc): Handle TLS relocations.
999 (replace_tls_insn): New.
1000 (IS_XTENSA_TLS_RELOC): Define.
1001 (elf_xtensa_relocate_section): Handle TLS relocations.
1002 (get_indirect_call_dest_reg): New.
1003 (bfd_elf32_mkobject): Define.
1004 (elf_backend_always_size_sections): New.
1005 (elf_backend_copy_indirect_symbol): New.
1006 * reloc.c (BFD_RELOC_XTENSA_TLSDESC_FN, BFD_RELOC_XTENSA_TLSDESC_ARG)
1007 (BFD_RELOC_XTENSA_TLS_DTPOFF, BFD_RELOC_XTENSA_TLS_TPOFF)
1008 (BFD_RELOC_XTENSA_TLS_FUNC, BFD_RELOC_XTENSA_TLS_ARG)
1009 (BFD_RELOC_XTENSA_TLS_CALL): New.
1010 * bfd-in2.h: Regenerate.
1011 * libbfd.h: Regenerate.
1013 2008-08-18 Richard Sandiford <rdsandiford@googlemail.com>
1015 * elfxx-mips.c (_bfd_mips_elf_copy_indirect_symbol): Copy MIPS16
1018 2008-08-17 Nick Clifton <nickc@redhat.com>
1020 * elf32-arm.c: Tidy up the code.
1021 (bfd_elf32_arm_allocate_interworking_sections): Move common code
1023 (arm_allocate_glue_section_space): ... New function.
1024 (bfd_elf32_arm_add_glue_sections_to_bfd): Move common code
1026 (arm_make_glue_section): ... New function.
1028 * elfxx-mips.c (_bfd_mips_elf_check_relocs): Handle the situation
1029 where the sym_hashes are not available.
1031 2008-08-17 Alan Modra <amodra@bigpond.net.au>
1033 * bfd.c (struct _bfd): Correct outsymbols comment.
1034 * bfd-in2.h: Regenerate.
1035 * linker.c (bfd_generic_link_read_symbols): Renamed from..
1036 (generic_link_read_symbols): ..this, and made global.
1038 2008-08-15 Alan Modra <amodra@bigpond.net.au>
1041 * configure.in: Invoke AC_USE_SYSTEM_EXTENSIONS.
1042 * Makefile.in: Regenerate.
1043 * aclocal.m4: Regenerate.
1044 * config.in: Regenerate.
1045 * configure: Regenerate.
1047 2008-08-14 Jaka Močnik <jaka@xlab.si>
1049 * coffgen.c (coff_find_nearest_line): Correct cached line index.
1051 2008-08-12 Alan Modra <amodra@bigpond.net.au>
1053 * elf32-ppc.c (allocate_dynrelocs): Ignore dyn_relocs when
1054 !dynamic_sections_created. Don't make symbols with got
1055 references dynamic if !dynamic_sections_created.
1056 * elf64-ppc.c (allocate_dynrelocs): Likewise. Alloc dynamic
1057 relocs on undefined symbols.
1058 (ppc64_elf_relocate_section): Allow dynamic relocs on
1061 2008-08-11 Alan Modra <amodra@bigpond.net.au>
1063 * elf64-ppc.c (toc_adjusting_stub_needed): Any call via the plt
1064 needs r2 valid, not just those to external syms.
1066 2008-08-09 Pedro Alves <pedro@codesourcery.com>
1068 * archive.c (_bfd_archive_bsd_update_armap_timestamp): Cast stat
1069 st_mtime to long before comparison.
1071 2008-08-08 Anatoly Sokolov <aesok@post.ru>
1073 * archures.c (bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35,
1074 bfd_mach_avr51): New.
1075 * bfd-in2.h: Regenerate.
1076 * cpu-avr.c (arch_info_struct): Add avr25, avr31, avr35, and avr51
1077 architectures. Change comments to match architecture comments in GCC.
1078 (compatible): Add test for new AVR architectures.
1079 * elf32-avr.c (bfd_elf_avr_final_write_processing): Recognize
1080 bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35 and bfd_mach_avr51.
1081 (elf32_avr_object_p): Recognize E_AVR_MACH_AVR25, E_AVR_MACH_AVR31,
1082 E_AVR_MACH_AVR35 and E_AVR_MACH_AVR51.
1085 2008-08-08 Richard Sandiford <rdsandiford@googlemail.com>
1086 Daniel Jacobowitz <dan@codesourcery.com>
1087 Catherine Moore <clm@codesourcery.com>
1088 Mark Shinwell <shinwell@codesourcery.com>
1089 Maxim Kuvyrkov <maxim@codesourcery.com>
1091 * elf32-mips.c (mips_vxworks_copy_howto_rela): Replace with...
1092 (elf_mips_copy_howto): ...this howto. Clear the size fields.
1093 (mips_vxworks_jump_slot_howto_rela): Replace with...
1094 (elf_mips_jump_slot_howto): ...this howto.
1095 (bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY
1096 and BFD_RELOC_MIPS_JUMP_SLOT.
1097 (bfd_elf32_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and
1099 (mips_elf32_rtype_to_howto): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT.
1100 (elf_backend_plt_readonly): Define.
1101 (elf_backend_plt_sym_val): Define for non-VxWorks targets.
1102 (mips_vxworks_bfd_reloc_type_lookup): Delete.
1103 (mips_vxworks_bfd_reloc_name_lookup): Likewise.
1104 (mips_vxworks_rtype_to_howto): Likewise.
1105 (elf_backend_want_dynbss): Don't define for VxWorks.
1106 (elf_backend_plt_readonly): Likewise.
1107 (bfd_elf32_bfd_reloc_type_lookup): Likewise.
1108 (bfd_elf32_bfd_reloc_name_lookup): Likewise.
1109 (elf_backend_mips_rtype_to_howto): Likewise.
1110 (elf_backend_adjust_dynamic_symbol): Likewise.
1111 (elf_backend_got_symbol_offset): Don't define.
1112 * elfn32-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto): New.
1113 (bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY
1114 and BFD_RELOC_MIPS_JUMP_SLOT.
1115 (bfd_elf32_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and
1117 (mips_elf32_n32_rtype_to_howto): Handle R_MIPS_COPY and
1119 (elf_backend_rela_plts_and_copies_p, elf_backend_plt_readonly)
1120 (elf_backend_plt_sym_val): Define.
1121 * elf64-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto): New.
1122 (bfd_elf64_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY
1123 and BFD_RELOC_MIPS_JUMP_SLOT.
1124 (bfd_elf64_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and
1126 (mips_elf64_rtype_to_howto): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT.
1127 (elf_backend_rela_plts_and_copies_p, elf_backend_plt_readonly)
1128 (elf_backend_plt_sym_val): Define.
1129 * elfxx-mips.h (_bfd_mips_vxworks_adjust_dynamic_symbol): Delete.
1130 (_bfd_mips_elf_use_plts_and_copy_relocs, _bfd_mips_elf_init_stubs)
1131 (_bfd_mips_elf_plt_sym_val, _bfd_mips_post_process_headers): Declare.
1132 * elfxx-mips.c (mips_elf_la25_stub): New structure.
1133 (LA25_LUI, LA25_J, LA25_ADDIU): New macros.
1134 (mips_elf_link_hash_entry): Add "la25_stubs", "has_static_relocs"
1135 and "has_nonpic_branches" fields. Remove "is_relocation_target" and
1137 (mips_elf_link_hash_table): Add blank lines. Add
1138 "use_plts_and_copy_relocs", "reserved_gotno", "strampoline",
1139 "la25_stubs" and "add_stub_section" fields.
1140 (mips_htab_traverse_info): New structure.
1141 (PIC_OBJECT_P, MIPS_ELF_LOAD_WORD): New macros.
1142 (MIPS_RESERVED_GOTNO): Delete.
1143 (mips_o32_exec_plt0_entry, mips_n32_exec_plt0_entry)
1144 (mips_n64_exec_plt0_entry, mips_exec_plt_entry): New tables.
1145 (mips_elf_link_hash_newfunc): Update after the changes to
1146 mips_elf_link_hash_entry.
1147 (mips_elf_check_mips16_stubs): Replace the DATA parameter with
1148 an INFO parameter. Don't look through warnings symbols here;
1149 do it in mips_elf_check_symbols instead.
1150 (mips_elf_create_stub_symbol): New function.
1151 (mips_elf_la25_stub_hash, mips_elf_la25_stub_eq): New functions.
1152 (_bfd_mips_elf_init_stubs, mips_elf_local_pic_function_p): Likewise.
1153 (mips_elf_add_la25_intro, mips_elf_add_la25_trampoline): Likewise.
1154 (mips_elf_add_la25_stub, mips_elf_check_symbols): New functions.
1155 (mips_elf_gotplt_index): Check for VxWorks.
1156 (mips_elf_output_dynamic_relocation): Take the relocation index
1157 as an extra parameter. Do not increment reloc_count here.
1158 (mips_elf_initialize_tls_slots): Update the calls to
1159 mips_elf_output_dynamic_relocation accordingly.
1160 (mips_elf_multi_got): Use htab->reserved_gotno instead of
1161 MIPS_RESERVED_GOTNO.
1162 (mips_elf_create_got_section): Don't allocate reserved GOT
1163 entries here. Unconditionally create .got.plt, but don't
1164 set its alignment here.
1165 (mips_elf_relocation_needs_la25_stub): New function.
1166 (mips_elf_calculate_relocation): Redirect branches and jumps to
1167 a non-PIC stub if one exists. Check !h->has_static_relocs instead
1168 of !htab->is_vxworks when deciding whether to create dynamic
1169 relocations for R_MIPS_32, R_MIPS_REL32 and R_MIPS_64.
1170 (_bfd_mips_elf_create_dynamic_sections): Unconditionally call
1171 _bfd_elf_create_dynamic_sections. Unconditionally set up
1172 htab->splt and htab->sdynbss. Set htab->srelplt to ".rel.plt"
1173 if !htab->is_vxworks. Add non-VxWorks values of
1174 htab->plt_header_size and htab->plt_entry_size.
1175 (_bfd_mips_elf_check_relocs): Set pointer_equality_needed for
1176 non-branch static relocations. Set has_nonpic_branches when an la25
1177 stub might be required. Set can_make_dynamic_p to TRUE if R_MIPS_32,
1178 R_MIPS_REL32 and R_MIPS_64 relocations can be made dynamic,
1179 rather than duplicating the condition. Do not make them dynamic
1180 for read-only sections in non-PIC executable objects.
1181 Do not protect this code with dynobj == NULL || htab->sgot == NULL;
1182 handle each group of cases separately. Add a default case that
1183 sets has_static_relocs for non-GOT relocations that cannot be
1184 made dynamic. Don't set is_relocation_target and is_branch_target.
1185 Reject non-PIC static relocations in shared objects.
1186 (_bfd_mips_vxworks_adjust_dynamic_symbol): Fold into...
1187 (_bfd_mips_elf_adjust_dynamic_symbol): ...here, using
1188 htab->use_plts_and_copy_relocs instead of htab->is_vxworks
1189 to select PLT and copy-reloc handling. Set the alignment of
1190 .plt and .got.plt when allocating the first entry. Generalize
1191 code to handle REL as well as RELA sections and 64-bit as well as
1192 32-bit GOT entries. Complain if we find a static-only reloc
1193 against an externally-defined symbol and if we cannot create
1194 dynamic relocations for it. Allocate copy relocs using
1195 mips_elf_allocate_dynamic_relocations on non-VxWorks targets.
1196 Set possibly_dynamic_relocs to 0 when using PLTs or copy relocs.
1197 Skip reserved .got.plt entries.
1198 (_bfd_mips_elf_always_size_sections): Use mips_elf_check_symbols
1199 instead of mips_elf_check_mips16_stubs to process each symbol.
1200 Do the traversal for relocatable objects too.
1201 (mips_elf_lay_out_got): Use htab->reserved_gotno instead of
1202 MIPS_RESERVED_GOTNO.
1203 (_bfd_mips_elf_size_dynamic_sections): Exclude sdynbss if it
1204 is empty. Extend the DT_PLTREL, DT_JMPREL and DT_PLTRELSZ handling
1205 to non-VxWorks targets. Only add DT_REL{,A}, DT_REL{,A}SZ and
1206 DT_REL{,A}ENT if .rel.dyn is nonempty. Create a symbol for the
1207 PLT. Allocate a nop at the end of the PLT. Allocate DT_MIPS_PLTGOT.
1208 (mips_elf_create_la25_stub_info): New function.
1209 (_bfd_mips_elf_finish_dynamic_symbol): Write out PLT entries
1210 and copy relocs where necessary. Check pointer_equality_needed.
1211 (mips_finish_exec_plt): New function.
1212 (_bfd_mips_elf_finish_dynamic_sections): Always set DT_PLTGOT
1213 to the beginning of htab->sgot. Use htab->reserved_gotno instead
1214 of MIPS_RESERVED_GOTNO. Assert htab->use_plts_and_copy_relocs
1215 instead of htab->is_vxworks for DT_PLTREL, DT_PLTRELSZ and DT_JMPREL.
1216 Set DT_PLTREL to DT_REL instead of DT_RELA on non-VxWorks targets.
1217 Use mips_finish_exec_plt to create non-VxWorks PLT headers. Set
1219 (_bfd_mips_elf_copy_indirect_symbol): Copy has_static_relocs
1220 from the indirect symbol to the direct symbol. Also copy
1221 has_nonpic_branches for indirect symbols.
1222 (_bfd_mips_elf_get_target_dtag): Handle DT_MIPS_PLTGOT and
1224 (_bfd_mips_elf_link_hash_table_create): Initialize the new
1225 mips_elf_link_hash_table fields.
1226 (_bfd_mips_vxworks_link_hash_table_create): Set
1227 use_plts_and_copy_relocs to TRUE. Use TRUE rather than 1
1228 when setting is_vxworks.
1229 (_bfd_mips_elf_use_plts_and_copy_relocs): New function.
1230 (_bfd_mips_elf_final_link): Call mips_elf_create_la25_stub for
1232 (_bfd_mips_elf_merge_private_bfd_data): Treat dynamic objects
1233 as PIC. Generalize message about linking PIC and non-PIC.
1234 (_bfd_mips_elf_plt_sym_val, _bfd_mips_post_process_headers): New
1236 * reloc.c: Update comment near BFD_RELOC_MIPS_JUMP_SLOT.
1237 * bfd-in2.h: Regenerated.
1239 2008-08-08 Alan Modra <amodra@bigpond.net.au>
1241 * elf.c (bfd_elf_get_elf_syms): Don't leak memory on error.
1242 * elflink.c (_bfd_elf_link_read_relocs): bfd_release on error.
1243 (elf_link_add_object_symbols): Don't leak memory on error.
1244 (bfd_elf_size_dynsym_hash_dynstr): Likewise.
1245 (elf_fixup_link_order): Free sections.
1247 2008-08-07 Richard Sandiford <rdsandiford@googlemail.com>
1249 * elf-bfd.h (elf_backend_data): Add a "rela_plts_and_copies_p" field.
1250 * elfxx-target.h (elf_backend_rela_plts_and_copies_p): New macro.
1251 (elfNN_bed): Use it.
1252 * elf.c (_bfd_elf_get_synthetic_symtab): Use rela_plts_and_copies_p
1253 instead of default_use_rela_p to choose between ".rel.plt" and
1255 * elflink.c (_bfd_elf_create_dynamic_sections): Use
1256 rela_plts_and_copies_p instead of default_use_rela_p to choose
1257 between ".rel.plt" and ".rela.plt", and between ".rel.bss" and
1260 2008-08-07 Richard Sandiford <rdsandiford@googlemail.com>
1262 * elf-bfd.h (MIPS_ELF_TDATA): New elf_object_id.
1263 * elf32-mips.c (bfd_elf32_mkobject): Define.
1264 * elf64-mips.c (bfd_elf64_mkobject): Likewise.
1265 * elfn32-mips.c (bfd_elf32_mkobject): Likewise.
1266 * elfxx-mips.h (_bfd_mips_elf_mkobject): Declare.
1267 * elfxx-mips.c (is_mips_elf): New macro.
1268 (_bfd_mips_elf_mkobject): New function.
1269 (_bfd_mips_elf_final_link): Use is_mips_elf.
1270 (_bfd_mips_elf_merge_private_bfd_data): Likewise.
1272 2008-08-07 Richard Sandiford <rdsandiford@googlemail.com>
1274 * elfxx-mips.c (mips_elf_record_relocs): Defer allocation of a
1275 global GOT entry when deferring allocation of dynamic relocations.
1276 (allocate_dynrelocs): When allocating deferred dynamic relocations,
1277 also do the deferred allocation of a GOT entry.
1279 2008-08-07 Richard Sandiford <rdsandiford@googlemail.com>
1281 * elfxx-mips.c (mips_got_info): Add a "reloc_only_gotno" field.
1282 (mips_elf_got_section): Delete.
1283 (mips_elf_sort_hash_table): Use g->reloc_only_gotno to decide
1284 how many reloc-only entries there are.
1285 (mips_elf_count_got_symbols): Adjust g->reloc_only_gotno as
1286 well as g->global_gotno.
1287 (mips_elf_make_got_per_bfd): Initialize reloc_only_gotno.
1288 (mips_elf_multi_got): Likewise. Use gg->reloc_only_gotno
1289 rather than gg->assigned_gotno to store the number of
1290 reloc-only GOT entries.
1291 (mips_elf_create_got_section): Remove the MAYBE_EXCLUDE parameter.
1292 Initialize reloc_only_gotno.
1293 (mips_elf_calculate_relocation): Check htab->got_info instead of
1294 dynobj when deciding whether to call mips_elf_adjust_gp,
1295 (_bfd_mips_elf_create_dynamic_sections): Adjust the call
1296 to mips_elf_create_got_section.
1297 (mips_elf_record_relocs): Likewise. Remove redundant
1298 "dynobj == NULL" code. Do not use mips_elf_create_got_section
1299 or mips_elf_record_global_got_symbol for R_MIPS_32, R_MIPS_REL32
1300 and R_MIPS_64; limit global_got_area to GGA_RELOC_ONLY instead.
1301 (_bfd_mips_elf_finish_dynamic_symbol): Use htab->sgot instead
1302 of mips_elf_got_section.
1303 (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
1304 (_bfd_mips_elf_finish_dynamic_sections): Likewise.
1305 Move the initial assignment of G to the block that uses it;
1306 it is used for an unrelated purpose later.
1308 2008-08-07 Richard Sandiford <rdsandiford@googlemail.com>
1310 * elfxx-mips.c (count_section_dynsyms): Move before the new first use.
1311 (mips_elf_sort_hash_table): Take the output bfd as a parameter.
1312 Remove the MAX_LOCAL parameter. Exit early if there are no
1313 dynamic symbols, if there is no dynobj, or if there is no
1314 GOT section. Use count_section_dynsyms instead of MAX_LOCAL.
1315 Assert == rather than <= when checking hsd.max_unref_got_dynindx.
1316 Also assert that g->global_gotno is right.
1317 (mips_elf_count_forced_local_got_symbols): Rename to...
1318 (mips_elf_count_got_symbols): ...and count global GOT entries too.
1319 Set the global_got_area of a forced-local GGA_RELOC_ONLY symbol
1321 (mips_elf_multi_got): Don't sort the symbol table.
1322 (mips_elf_lay_out_got): Likewise. Use mips_elf_count_got_symbols
1323 to count the number of global GOT entries.
1324 (_bfd_mips_elf_final_link): Unconditionally call
1325 mips_elf_sort_hash_table.
1327 2008-08-07 Richard Sandiford <rdsandiford@googlemail.com>
1329 * elfxx-mips.c (GGA_NORMAL, GGA_RELOC_ONLY, GGA_NONE): New macros.
1330 (mips_elf_link_hash_entry): Add a "global_got_area" field.
1331 (mips_elf_link_hash_newfunc): Initialize it.
1332 (mips_elf_sort_hash_table_f): Use h->global_got_area instead of
1333 h->root.got.offset. Do not handle forced_local symbols specially.
1334 (mips_elf_record_global_got_symbol): Set h->global_got_area
1335 instead of h->root.got.offset.
1336 (mips_elf_recreate_got): Assert that h->global_got_area == GGA_NONE
1337 for indirect and warning symbols.
1338 (mips_elf_count_forced_local_got_symbols): Change the argument
1339 from a "elf_link_hash_entry" to "mips_elf_link_hash_entry".
1340 Use and set h->global_got_area instead of h->root.got.offset.
1341 Set it to GGA_NONE for all forced-local symbols.
1342 (mips_elf_set_global_got_offset): Set h->global_got_area
1343 instead of h->root.got.offset. Use g->global_got_area instead
1344 of a combination of dynindx, forced_local and tls_type.
1345 (mips_elf_multi_got): Remove disabled code. Pass GGA_* values to
1346 mips_elf_set_global_got_offset.
1347 (mips_elf_lay_out_got): Use mips_elf_link_hash_traverse instead
1348 of elf_link_hash_traverse.
1349 (_bfd_mips_elf_copy_indirect_symbol): Copy the indirect symbol's
1350 global_got_area to the direct symbol if the latter's value is higher.
1351 Set the indirect symbol's area to GGA_NONE.
1353 2008-08-07 Richard Sandiford <rdsandiford@googlemail.com>
1355 * elf32-mips.c (elf_backend_hide_symbol): Delete.
1356 * elfn32-mips.c (elf_backend_hide_symbol): Likewise.
1357 * elf64-mips.c (elf_backend_hide_symbol): Likewise.
1358 * elfxx-mips.h (elf_backend_hide_symbol): Likewise.
1359 * elfxx-mips.c (mips_elf_link_hash_entry): Remove "forced_local"
1360 and add "needs_lazy_stub".
1361 (mips_elf_link_hash_newfunc): Update accordingly.
1362 (mips_elf_link_hash_table): Remove "computed_got_sizes" and
1363 add "lazy_stub_count".
1364 (_bfd_mips_elf_link_hash_table_create): Update accordingly.
1365 (mips_elf_output_extsym): Use hd->needs_lazy_stub to detect
1366 cases where a lazy stub is being used.
1367 (mips_elf_sort_hash_table_f): Use h->root.forced_local instead
1369 (mips_elf_record_global_got_symbol): Use _bfd_elf_link_hash_hide_symbol
1370 instead of _bfd_mips_elf_hide_symbol. Do not increment local_gotno
1372 (mips_elf_allocate_dynamic_relocations): Move before new first use.
1373 (mips_elf_check_recreate_got, mips_elf_recreate_got): New functions.
1374 (mips_elf_resolve_final_got_entries): Move earlier in file. Make at
1375 most two passes over the hash table. Use mips_elf_check_recreate_got
1376 to see if there are any indirect or warning entries and
1377 mips_elf_recreate_got to create a new GOT without them.
1378 Return a boolean success value.
1379 (mips_elf_count_forced_local_got_entries): New function.
1380 (mips_elf_make_got_per_bfd): Check h->root.forced_local instead of
1382 (mips_elf_set_global_got_offset): Likewise.
1383 (mips_elf_set_no_stub): Replace with...
1384 (mips_elf_forbid_lazy_stubs): ...this new function.
1385 (mips_elf_resolve_final_got_entry): Delete.
1386 (mips_elf_multi_got): Fix formatting. Use mips_elf_forbid_lazy_stubs
1387 instead of mips_elf_set_no_stub. Move the code that sets
1388 global offsets and allocates dynamic relocations from the main
1389 _bfd_mips_elf_size_dynamic_sections loop to here.
1390 (_bfd_mips_elf_adjust_dynamic_symbol): Do not allocate room in
1391 .MIPS.stubs here; just set hmips->needs_lazy_stub and increment
1392 htab->lazy_stub_count.
1393 (_bfd_mips_elf_always_size_sections): Move the stub-estimation
1394 code to mips_elf_estimate_stub_size and the GOT-sizing code to
1395 mips_elf_lay_out_got. Do not call these functions here.
1396 (mips_elf_estimate_stub_size): New function, split
1397 out from _bfd_mips_elf_always_size_sections. Call
1398 mips_elf_resolve_final_got_entries earlier. Count the number
1399 of forced-local entries. Do not add stub sizes to loadable_size;
1400 after this patch, the stub sizes are already included in the main
1401 estimate. Allocate dynamic relocations here rather than in the
1402 main _bfd_mips_elf_size_dynamic_sections loop.
1403 (mips_elf_estimate_stub_size): New function, split out from
1404 _bfd_mips_elf_always_size_sections.
1405 (mips_elf_allocate_lazy_stub): New function.
1406 (mips_elf_lay_out_lazy_stubs): Likewise.
1407 (_bfd_mips_elf_size_dynamic_sections): Call mips_elf_estimate_stub_size,
1408 mips_elf_lay_out_got and mips_elf_lay_out_lazy_stubs. Do not handle
1409 the allocation of sreldyn specially.
1410 (_bfd_mips_elf_hide_symbol): Delete.
1412 2008-08-07 Richard Sandiford <rdsandiford@googlemail.com>
1414 * elfxx-mips.c (allocate_dynrelocs): Ignore indirect and warning
1417 2008-08-06 Richard Sandiford <rdsandiford@googlemail.com>
1419 * elfxx-mips.c (mips_elf_link_hash_entry): Move bfd_boolean
1420 fields to the end of the structure and make them single-bit
1422 (mips_elf_link_hash_newfunc): Make the initialization statements
1423 follow the new field order.
1425 2008-08-06 Richard Sandiford <rdsandiford@googlemail.com>
1427 * elfxx-mips.c (_mips_elf_section_data): Remove the "u.got_info" field.
1428 (mips_elf_link_hash_table): Add "sgot" and "got_info" fields.
1429 (_bfd_mips_elf_link_hash_table_create): Initialize them.
1430 (mips_elf_got_section): Always apply the !maybe_excluded behavior.
1431 (mips_elf_got_info): Delete.
1432 (mips_elf_initialize_tls_slots): Remove the DYNOBJ local variable.
1433 Adjust the call to mips_elf_got_section.
1434 (mips_elf_local_got_index): Don't call mips_elf_got_info.
1435 Update the call to mips_elf_create_local_got_entry.
1437 (mips_elf_global_got_index): Don't call mips_elf_got_info;
1438 use htab->got_info and htab->sgot instead.
1439 (mips_elf_got_page): Don't call mips_elf_got_info. Update the
1440 call to mips_elf_create_local_got_entry.
1441 (mips_elf_got16_entry): Likewise.
1442 (mips_elf_got_offset_from_index): Replace with DYNOBJ parameter
1443 with an INFO parameter. Don't call mips_elf_got_info; use htab->sgot
1444 and htab->got_info instead.
1445 (mips_elf_create_local_got_entry): Remove the GG and SGOT parameters.
1446 Use htab->sgot and htab->got_info.
1447 (mips_elf_sort_hash_table): Remove the DYNOBJ local variable.
1448 Don't call mips_elf_got_info; use htab->got_info instead.
1449 (mips_elf_record_global_got_symbol): Turn G from a paramter to
1450 a local variable and read it from htab->got_info.
1451 (mips_elf_record_local_got_symbol): Replace the G parameter with
1452 an INFO parameter. Make G a local variable and read it from
1453 htab->got_info instead.
1454 (mips_elf_record_got_page_entry): Likewise.
1455 (mips_elf_multi_got): Remove the G parameter and make it a local
1456 variable instead. Read it from htab->got_info.
1457 (mips_elf_create_got_section): Cache the GOT section in htab->sgot.
1458 Store the GOT information in htab->got_info.
1459 (mips_elf_calculate_relocation): Don't call mips_elf_got_section
1460 and mips_elf_got_info; use htab->sgot and htab->got_info instead.
1461 Adjust the calls to mips_elf_got_offset_from_index and
1463 (_bfd_mips_elf_check_relocs): Remove the G and SGOT local variables.
1464 Adjust the calls to mips_elf_record_local_got_symbol,
1465 mips_elf_record_global_got_symbol and mips_elf_record_got_page_entry.
1467 (_bfd_mips_elf_always_size_sections): Remove the DYNOBJ local variable.
1468 Don't call mips_elf_got_info; use htab->sgot and htab->got_info instead.
1469 Update the call to mips_elf_multi_got.
1470 (_bfd_mips_elf_size_dynamic_sections): Don't call mips_elf_got_info;
1471 use htab->got_info instead.
1472 (_bfd_mips_elf_finish_dynamic_symbol): Update the call to
1473 mips_elf_got_section. Get the got_info from the hash table
1474 rather than the GOT section.
1475 (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
1476 (_bfd_mips_elf_finish_dynamic_sections): Likewise.
1477 (_bfd_mips_elf_hide_symbol): Don't call mips_elf_got_section;
1478 get the got_info from the hash table instead. Remove the GOT
1480 (_bfd_mips_elf_final_link): Likewise. Also remove the DYNOBJ
1483 2008-08-06 Richard Sandiford <rdsandiford@googlemail.com>
1485 * elfxx-mips.c (mips_elf_link_hash_table): Add an "sstubs" field.
1486 (_bfd_mips_elf_create_dynamic_sections): Use it to cache the stubs
1487 section. Don't check whether the section already exists.
1488 (_bfd_mips_elf_adjust_dynamic_symbol): Use htab->sstubs.
1489 (_bfd_mips_elf_finish_dynamic_symbol): Likewise.
1490 (_bfd_mips_elf_finish_dynamic_sections): Likewise.
1491 (_bfd_mips_elf_size_dynamic_sections): Likewise. Don't add the
1492 dummy stub to an empty section.
1493 (_bfd_mips_elf_link_hash_table_create): Initialize the "sstubs" field.
1495 2008-08-06 Richard Sandiford <rdsandiford@googlemail.com>
1497 * reloc.c (BFD_RELOC_MIPS16_GOT16, BFD_RELOC_MIPS16_CALL16): Declare.
1498 * libbfd.h, bfd-in2.h: Regenerate.
1499 * elf32-mips.c (elf_mips16_howto_table_rel): Fill in reserved
1500 R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
1501 (mips16_reloc_map): Add mappings.
1502 * elf64-mips.c (mips16_elf64_howto_table_rel): Fill in reserved
1503 R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
1504 (mips16_elf64_howto_table_rela): Likewise.
1505 (mips16_reloc_map): Add mappings.
1506 * elfn32-mips.c (elf_mips16_howto_table_rel): Fill in reserved
1507 R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
1508 (elf_mips16_howto_table_rela): Likewise.
1509 (mips16_reloc_map): Add mappings.
1510 * elfxx-mips.c (mips_elf_create_shadow_symbol): New function.
1511 (section_allows_mips16_refs_p): Likewise.
1512 (mips16_stub_symndx): Likewise.
1513 (mips_elf_check_mips16_stubs): Treat the data argument as a
1514 bfd_link_info. Mark every dynamic symbol as needing MIPS16 stubs
1515 and create a "shadow" symbol for the original MIPS16 definition.
1516 (mips16_reloc_p, got16_reloc_p, call16_reloc_p, hi16_reloc_p)
1517 (lo16_reloc_p, mips16_call_reloc_p): New functions.
1518 (_bfd_mips16_elf_reloc_unshuffle): Use mips16_reloc_p to generalize
1520 (_bfd_mips16_elf_reloc_shuffle): Likewise.
1521 (_bfd_mips_elf_lo16_reloc): Handle R_MIPS16_GOT16.
1522 (mips_elf_got16_entry): Add comment.
1523 (mips_elf_calculate_relocation): Use hi16_reloc_p,
1524 lo16_reloc_p, mips16_call_reloc_p, call16_reloc_p and got16_reloc_p
1525 to generalize relocation checks. Use section_allows_mips16_refs_p
1526 instead of mips16_stub_section_p. Handle R_MIPS16_CALL16 and
1527 R_MIPS16_GOT16, allowing the former to refer directly to a
1528 MIPS16 function if its stub is not needed.
1529 (mips16_stub_section_p): Delete.
1530 (_bfd_mips_elf_symbol_processing): Convert odd-valued function
1531 symbols into even MIPS16 symbols.
1532 (mips_elf_add_lo16_rel_addend): Use mips16_reloc_p to generalize
1534 (_bfd_mips_elf_check_relocs): Calculate "bed" and "rel_end"
1535 earlier in the function. Use mips16_stub_symndx to identify
1536 the target function. Avoid out-of-bounds accesses when the
1537 stub has no relocations; report an error instead. Use
1538 section_allows_mips16_refs_p instead of mips16_stub_section_p.
1539 Use mips16_call_reloc_p and got16_reloc_p to generalize relocation
1540 checks. Handle R_MIPS16_CALL16 and R_MIPS16_GOT16. Don't create
1541 dynamic relocations for absolute references to __gnu_local_gp.
1542 (_bfd_mips_elf_always_size_sections): Pass a bfd_link_info as
1543 the argument to mips_elf_check_mips16_stubs. Generalize comment.
1544 (_bfd_mips_elf_relocate_section): Use hi16_reloc_p and got16_reloc_p
1545 to generalize relocation checks.
1546 (_bfd_mips_elf_finish_dynamic_symbol): If a dynamic MIPS16 function
1547 symbol has a non-MIPS16 stub, redirect the symbol to the stub.
1548 Fix an overly long line. Don't give dynamic symbols type STO_MIPS16.
1549 (_bfd_mips_elf_gc_sweep_hook): Handle R_MIPS16_CALL16 and
1552 2008-08-06 Alan Modra <amodra@bigpond.net.au>
1554 * elf32-ppc.c (ppc_elf_relax_section): Clear R_PPC_PLTREL24 addend.
1555 (ppc_elf_relocate_section <R_PPC_RELAX32_PLT>): Don't bother here.
1557 2008-08-05 Alan Modra <amodra@bigpond.net.au>
1558 Jaka Močnik <jaka@xlab.si>
1560 * coffcode.h (coff_slurp_line_table): bfd_alloc lineno_cache first
1561 so that we don't inadvertently free it. Use bfd_alloc for sort
1562 arrays, and memcpy sorted line table.
1564 2008-08-04 Alan Modra <amodra@bigpond.net.au>
1566 * elf32-spu.c (spu_elf_auto_overlay): Use the maximum possible
1567 if --fixed-space request is too large.
1569 2008-08-04 Alan Modra <amodra@bigpond.net.au>
1571 * Makefile.am (SRC-POTFILES.in, BLD-POTFILES.in): Set LC_ALL=C.
1572 * Makefile.in: Regenerate.
1573 * po/SRC-POTFILES.in: Regenerate.
1575 2008-08-02 Alan Modra <amodra@bigpond.net.au>
1577 * elf32-spu.c (mark_overlay_section): Move code calculating
1578 max_overlay_size to correct block.
1579 (spu_elf_auto_overlay): Don't use %x in einfo error message.
1581 2008-08-01 Alan Modra <amodra@bigpond.net.au>
1582 Jan Kratochvil <jan.kratochvil@redhat.com>
1584 * elfcore.h (elf_core_file_p): Ensure we have a backend match
1585 with the correct arch size before rejecting the generic fallback.
1586 * elfcode.h (elf_object_p): Likewise. Ensure arch size matches
1587 before accepting a target.
1589 2008-08-01 Alan Modra <amodra@bigpond.net.au>
1592 * elf.c (rewrite_elf_program_header): Don't wrap p_paddr to
1593 include file or program headers.
1595 2008-07-30 Alan Modra <amodra@bigpond.net.au>
1597 * coff-ppc.c, coffgen.c, ecoff.c, ecofflink.c, elf.c, elf32-frv.c,
1598 elf32-iq2000.c, elf32-m32c.c, elf32-mep.c, elf32-mt.c,
1599 elf32-sh-symbian.c, elf64-hppa.c, mach-o.c, peXXigen.c, pef.c,
1600 ppcboot.c, vms-misc.c, xsym.c: Silence gcc warnings.
1602 2008-07-28 Daniel Jacobowitz <dan@codesourcery.com>
1604 * elfxx-mips.c (mips_elf_calculate_relocation): Avoid generating
1605 relocations for undefined weak symbols with non-default visibility.
1606 (_bfd_mips_elf_check_relocs): Use possibly_dynamic_relocs for
1607 global symbols in shared libraries.
1608 (allocate_dynrelocs): New function.
1609 (_bfd_mips_elf_adjust_dynamic_symbol): Do not handle
1610 possibly_dynamic_relocs here.
1611 (_bfd_mips_elf_size_dynamic_sections): Call allocate_dynrelocs.
1613 2008-07-28 Alexandre Oliva <aoliva@redhat.com>
1615 * elf32-i386.c (struct elf_i386_link_hash_table): Added field
1617 (elf_i386_link_hash_table_create): Initialize it.
1618 (elf_i386_always_size_sections): Set it.
1619 (set_tls_module_base): New.
1620 (elf_i386_relocate_sections): Call it.
1621 * elf64-x86-64.c (struct elf64_x86_64_link_hash_table): Added
1622 field tls_module_base.
1623 (elf64_x86_64_link_hash_table_create): Initialize it.
1624 (elf64_x86_64_always_size_sections): Set it.
1625 (set_tls_module_base): New.
1626 (elf64_x86_64_relocate_sections): Call it.
1627 Reported by Cary Coutant <ccoutant@google.com>
1629 2008-07-28 Ineiev <ineiev@yahoo.co.uk>
1631 * elf32-arm.c (arm_map_one_stub): Declare variables at beginning
1633 * elf32-avr.c (get_local_syms): Likewise.
1635 2008-07-28 Alan Modra <amodra@bigpond.net.au>
1638 * bfd-in.h (BFD_VMA_FMT): Define.
1639 (printf_vma, sprintf_vma): Use the above.
1640 (_bfd_int64_low, _bfd_int64_high): Delete.
1641 * bfd-in2.h: Regenerate.
1643 2008-07-27 Alan Modra <amodra@bigpond.net.au>
1645 * elf.c (_bfd_elf_make_section_from_shdr): Ignore return from
1646 elf_parse_notes. Use bfd_malloc_and_get_section.
1647 (elf_parse_notes): Validate note namesz and descsz.
1649 2008-07-26 Michael Eager <eager@eagercon.com>
1651 * elf32-ppc.c (ppc_elf_merge_obj_attributes): Check compatibility
1652 between single-float, double-float, and soft-float.
1654 2008-07-24 Daniel Jacobowitz <dan@codesourcery.com>
1656 * elf32-mips.c (elf_backend_write_section): Define.
1658 2008-07-24 Nick Clifton <nickc@redhat.com>
1660 * elf.c (_bfd_elf_map_sections_to_segments): Catch off by one
1661 error assigning sections to segments.
1663 2008-07-22 Nick Clifton <nickc@redhat.com>
1665 * elf.c (_bfd_elf_map_sections_to_segments): Allow sections in
1666 adjoining pages to be included in the same segment.
1668 2008-07-22 Simon Baldwin <simonb@google.com>
1670 * elflink.c (elf_link_output_extsym): Set st_size to zero for
1671 symbols from dynamic libraries.
1673 2008-07-21 H.J. Lu <hongjiu.lu@intel.com>
1676 * elflink.c (_bfd_elf_merge_symbol): Call bed->relocs_compatible
1677 to check if 2 inputs are compatible.
1679 2008-07-21 Sterling Augustine <sterling@tensilica.com>
1681 * elf.c (assign_file_positions_for_load_sections): Print vma in
1682 error message about overlapping section vmas.
1684 2008-07-21 H.J. Lu <hongjiu.lu@intel.com>
1687 * elf32-frv.c (elf32_frv_relocate_section): Revert the change
1688 for PR ld/6446 checked in by accident on May 21, 2008.
1690 2008-07-21 Nick Clifton <nickc@redhat.com>
1692 * coff-sh.c (bfd_pe_print_pdata): Define to NULL for non
1693 COFF_WITH_PE based SH ports.
1694 * libpei.h (_bfd_XX_print_ce_compressed_pdata): Prototype.
1695 * arm-wince-pe.c (bfd_pe_print_pdata): Use
1696 _bfd_pe_print_ce_compressed_pdata.
1697 (slurp_symcache, cleanup_syms, pe_print_ce_compressed_pdata): Move
1699 * peXXigen.c: ... here and rename pe_print_ce_compressed_pdata to
1700 _bfd_XX_print_ce_compressed_pdata.
1702 2008-07-21 Alan Modra <amodra@bigpond.net.au>
1704 * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Drop
1705 unwanted zero terminators.
1707 2008-07-21 Alan Modra <amodra@bigpond.net.au>
1709 * elf32-spu.c (spu_elf_relocate_section): Expand
1710 RELOC_FOR_GLOBAL_SYMBOL. Don't warn about undefined symbols for
1711 R_SPU_PPU32 and R_SPU_PPU64 relocations.
1713 2008-07-21 Luis Machado <luisgpm@br.ibm.com>
1715 * elf-bfd.h: Declare elfcore_write_ppc_vsx.
1716 * elf.c (elfcore_grok_ppc_vsx): New function.
1717 (elfcore_write_ppc_vsx): New function
1718 (elfcore_grok_note): Handle VSX notes.
1719 (elfcore_write_register_note): Handle VSX notes.
1721 2008-07-18 Joseph Myers <joseph@codesourcery.com>
1723 * bfd-in.h (bfd_elf32_arm_set_target_relocs): Add new parameter.
1724 * bfd-in2.h: Regenerate.
1725 * elf32-arm.c (struct elf_arm_obj_tdata): Add field
1726 no_wchar_size_warning.
1727 (bfd_elf32_arm_set_target_relocs): Add new parameter
1729 (elf32_arm_merge_eabi_attributes): Give a warning, not an error,
1730 for conflicting wchar_t attributes. Do not warn if
1731 --no-wchar-size-warning. Make diagnostic text more specific.
1733 2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
1736 * elf32-arm.c (elf32_arm_link_hash_table_create): Initialize
1737 new fields added for ARM long call support.
1739 2008-07-18 Danny Backx <dannybackx@users.sourceforge.net>
1741 * pe-arm-wince.c (pe_print_compressed_pdata): Define new function to
1742 print compressed pdata structure as described on MSDN. This only
1743 applies to a limited set of architectures (ARM, SH4).
1744 (slurp_symtab, my_symbol_for_address): Define static helper
1745 functions for pe_print_compressed_pdata.
1746 * coffcode.h (bfd_coff_backend_data): Add _bfd_coff_print_pdata field.
1747 (bfd_coff_have_print_pdata, bfd_coff_print_pdata): Define.
1748 * bfd/peXXigen.c (_bfd_XX_print_private_bfd_data_common): Add check on
1749 bfd_coff_backend_data, call the function if non-null.
1750 * pei-mcore.c: Add target dependent initialisation for
1751 bfd_coff_backend_data.
1752 * coff-sh.c: Likewise.
1753 * coff64-rs6000.c: Likewise.
1754 * coff-rs6000.c: Likewise.
1755 * libcoff-in.h: Likewise.
1756 * cf-i386lynx.c: Likewise.
1757 * coff-alpha.c: Likewise.
1758 * coff-apollo.c: Likewise.
1759 * coff-arm.c: Likewise.
1760 * coff-aux.c: Likewise.
1761 * coff-h8300.c: Likewise.
1762 * coff-h8500.c: Likewise.
1763 * coff-i386.c: Likewise.
1764 * coff-i860.c: Likewise.
1765 * coff-i960.c: Likewise.
1766 * coff-ia64.c: Likewise.
1767 * coff-m68k.c: Likewise.
1768 * coff-m88k.c: Likewise.
1769 * coff-maxq.c: Likewise.
1770 * coff-mips.c: Likewise.
1771 * coff-or32.c: Likewise.
1772 * coff-sparc.c: Likewise.
1773 * coff-tic30.c: Likewise.
1774 * coff-tic4x.c: Likewise.
1775 * coff-tic54x.c: Likewise.
1776 * coff-tic80.c: Likewise.
1777 * coff-w65.c: Likewise.
1778 * coff-we32k.c: Likewise.
1779 * coff-x86_64.c: Likewise.
1780 * coff-z80.c: Likewise.
1781 * coff-z8k.c: Likewise.
1782 * pe-mcore.c: Likewise.
1783 * pe-mips.c: Likewise.
1784 * pe-ppc.c: Likewise.
1785 * peXXigen.c: Likewise.
1786 * pei-ppc.c: Likewise.
1787 * libcoff.h: Regenerate.
1789 2008-07-16 Bernd Schmidt <bernd.schmidt@analog.com>
1791 * elf32-bfin.c (bfin_check_relocs, bfin_relocate_section,
1792 bfin_final_link_relocate, bfin_gc_mark_hook, bfin_gc_sweep_hook,
1793 ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE,
1794 struct _bfinfdpic_dynamic_got_info): Moved around to keep FD-PIC code
1795 separate from non-FD-PIC.
1797 2008-07-14 DJ Delorie <dj@redhat.com>
1799 * elf-m10300.c (mn10300_elf_final_link_relocate): Correct overflow
1800 checks for PCREL8, PCREL16, GOTPC16, GOTOFF16, PLT16, and GOT16
1802 (mn10300_elf_relax_section): Correct jump offset check when target
1803 is in a different section.
1805 2008-07-15 Jie Zhang <jie.zhang@analog.com>
1807 * elf32-bfin.c (elf32_bfin_special_sections[]): New.
1808 (elf_backend_special_sections): Define.
1810 2008-07-13 Craig Silverstein <csilvers@google.com>
1813 * dwarf2.c (struct dwarf2_debug): New variable info_ptr_memory.
1814 (find_line): Use info_ptr_memory instead of sec_info_ptr.
1815 (_bfd_dwarf2_cleanup_debug_info): Likewise.
1817 2008-07-12 Jie Zhang <jie.zhang@analog.com>
1820 2008-07-12 Jie Zhang <jie.zhang@analog.com>
1821 * elf.c (_bfd_elf_map_sections_to_segments): Don't put
1822 executable sections into the same segment with other
1823 read only sections if --sep-code.
1824 * elf32-bfin.c (elf32_bfin_code_in_l1): New variable.
1825 (elf32_bfin_data_in_l1): New variable.
1826 (elf32_bfin_final_write_processing): New.
1827 (elf32_bfin_special_sections[]): New.
1828 (elf_backend_final_write_processing): Define.
1829 (elf_backend_special_sections): Define.
1831 2008-07-12 Jie Zhang <jie.zhang@analog.com>
1833 * elf.c (_bfd_elf_map_sections_to_segments): Don't put
1834 executable sections into the same segment with other
1835 read only sections if --sep-code.
1836 * elf32-bfin.c (elf32_bfin_code_in_l1): New variable.
1837 (elf32_bfin_data_in_l1): New variable.
1838 (elf32_bfin_final_write_processing): New.
1839 (elf32_bfin_special_sections[]): New.
1840 (elf_backend_final_write_processing): Define.
1841 (elf_backend_special_sections): Define.
1843 2008-07-11 Andreas Schwab <schwab@suse.de>
1845 * dwarf2.c (read_section): Take pointer to bfd_size_type instead
1846 of unsigned long as last parameter.
1847 (struct dwarf2_debug): Define dwarf_abbrev_size, dwarf_line_size,
1848 dwarf_str_size and dwarf_ranges_size as bfd_size_type instead of
1851 2008-07-10 Richard Sandiford <rdsandiford@googlemail.com>
1853 * elfxx-mips.c (mips_elf_calculate_relocation): Calculate GP and GP0
1854 for all relocation types. Allow any type of relocation to refer to
1857 2008-07-10 Richard Sandiford <rdsandiford@googlemail.com>
1859 * elfxx-mips.c (mips_elf_check_mips16_stubs): Use ELF_ST_IS_MIPS16.
1860 (mips_elf_calculate_relocation): Likewise.
1861 (_bfd_mips_elf_add_symbol_hook): Likewise.
1862 (_bfd_mips_elf_finish_dynamic_symbol): Likewise.
1863 (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
1865 2008-07-10 Andreas Schwab <schwab@suse.de>
1867 * elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Add missing
1870 2008-07-09 Craig Silverstein <csilvers@google.com>
1872 * Makefile.am (BFD32_LIBS): Add compress.lo.
1873 (BFD32_LIBS_CFILES): Add compress.c.
1874 (BFD_H_FILES): Likewise.
1875 * Makefile.in: Regenerate.
1876 * bfd-in2.h: Regenerate.
1877 * config.in: Add HAVE_ZLIB_H
1878 * configure.in: Add test for libz and zlib.h
1879 * configure: Regenerate.
1880 * dwarf2.c (read_section): New function.
1881 (read_indirect_string): Call new function read_section.
1882 (read_abbrevs): Likewise.
1883 (decode_line_info): Likewise.
1884 (read_debug_ranges): Likewise.
1885 (find_line): Call new function read_section when just one
1886 .zdebug_info section is found, otherwise read and compress
1888 (_bfd_dwarf2_cleanup_debug_info): Free sec_info_ptr.
1889 * elf.c (_bfd_elf_make_section_from_shdr): Add zdebug prefix.
1890 (special_sections_z): New struct.
1891 (special_sections): Refer to special_sections_z.
1892 * elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Recognize
1893 sections named .zdebug_*.
1894 (_bfd_mips_elf_fake_sections): Likewise.
1895 * compress.c: New file.
1896 (bfd_uncompress_section_contents): New function.
1898 2008-07-07 Christophe Lyon <christophe.lyon@st.com>
1900 * elf32-arm.c (arm_type_of_stub): Don't crash on local symbols in
1901 the presence of a PLT.
1903 2008-07-07 Alan Modra <amodra@bigpond.net.au>
1905 * bfd.c (bfd_demangle): Always trim off bfd_get_symbol_leading_char.
1907 2008-07-02 Alan Modra <amodra@bigpond.net.au>
1909 * elf32-ppc.c (is_pic_glink_stub): New function.
1910 (ppc_elf_get_synthetic_symtab): Don't generate symbols when
1911 multiple shared/pie stubs per plt entry.
1913 2008-06-30 Richard Sandiford <rdsandiford@googlemail.com>
1915 * elf.c (_bfd_elf_get_synthetic_symtab): Increment p by
1916 bed->s->int_rels_per_ext_rel.
1918 2008-06-30 Richard Sandiford <rdsandiford@googlemail.com>
1920 * syms.c (BSF_SYNTHETIC): New flag.
1921 * elf.c (_bfd_elf_get_synthetic_symtab): Set it.
1922 * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Likewise.
1923 * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.
1924 * bfd-in.h (bfd_asymbol_flavour): Return bfd_target_unknown_flavour
1925 for synthetic symbols.
1926 * bfd-in2.h: Regenerate.
1928 2008-06-30 Daniel Jacobowitz <dan@codesourcery.com>
1930 * elf32-arm.c (record_arm_to_thumb_glue, record_thumb_to_arm_glue):
1932 (arm_map_one_stub): Use | 1 when setting the low bit.
1934 2008-06-29 Andreas Schwab <schwab@suse.de>
1936 * elf32-m68k.c (elf_m68k_relocate_section): Don't ignore existing
1937 addend on _GLOBAL_OFFSET_TABLE_.
1939 2008-06-24 Daniel Jacobowitz <dan@codesourcery.com>
1941 * elf32-arm.c (STUB_ENTRY_NAME): Define.
1942 (arm_thumb_thumb_long_branch_stub): Use bx instead of b.n.
1943 (arm_pic_long_branch_stub): Mention R_ARM_REL32 instead of
1945 (struct elf32_arm_stub_hash_entry): Add output_name.
1946 (arm_build_one_stub): Move offsets into the offset argument
1947 of _bfd_final_link_relocate. Correct offset for
1948 arm_thumb_arm_v4t_stub_long_branch.
1949 (elf32_arm_size_stubs): Set stub_entry->output_name.
1950 (elf32_arm_ouput_plt_map_sym): Rename to elf32_arm_output_map_sym.
1952 (elf32_arm_output_stub_sym): New.
1953 (arm_map_one_stub): Correct formatting. Use elf32_arm_output_stub_sym.
1955 2008-06-20 Alan Modra <amodra@bigpond.net.au>
1957 * elf32-spu.c (needs_ovl_stub): Correctly return nonovl_stub for
1960 2008-06-20 Alan Modra <amodra@bigpond.net.au>
1962 * elf32-spu.c (build_stub): Allow wraparound on stub branches.
1963 (allocate_spuear_stubs, build_spuear_stubs): Return value from
1964 count_stub/build_stub.
1965 (spu_elf_build_stubs): Correct location of stub reloc error message.
1967 2008-06-18 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
1969 * elf32-cr16.c (ELF_MACHINE_ALT1): Define to EM_CR16_OLD.
1971 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1973 * configure: Regenerate.
1975 2008-06-17 Alan Modra <amodra@bigpond.net.au>
1977 * elf32-spu.c (struct spu_link_hash_table): Add extra_stack_space.
1978 (spu_elf_check_vma): Add extra_stack_space param, copy to htab.
1979 (spu_elf_auto_overlay): Use it.
1980 (RECURSE_UNMARK): Define as 0.
1981 (unmark_overlay_section): Heed RECURSE_UNMARK.
1982 * elf32-spu.h (spu_elf_check_vma): Update prototype.
1984 2008-06-12 DJ Delorie <dj@redhat.com>
1986 * elf32-m32c.c (ELF_MACHINE_ALT1): Define as EM_M32C_OLD.
1988 2008-06-09 Paul Brook <paul@codesourcery.com>
1991 * elf32-arm.c (elf32_arm_merge_private_bfd_data): Allow BE8 shared
1994 2008-06-09 Christophe Lyon <christophe.lyon@st.com>
1996 * elf32-arm.c (arm_stub_is_thumb): Define.
1997 (elf32_arm_final_link_relocate): Handle near mode switching stubs.
1999 2008-06-07 Alan Modra <amodra@bigpond.net.au>
2001 * elf32-spu.c (spu_elf_auto_overlay): Add valid area below sp
2002 to stack calculation.
2004 2008-06-06 Paul Brook <paul@codesourcery.com>
2007 * elf32-arm.c (elf32_arm_merge_private_bfd_data): Reject BE8 input.
2009 2008-06-06 Alan Modra <amodra@bigpond.net.au>
2011 * elf32-spu.c (spu_elf_auto_overlay): Relax requirement that
2012 file names be unique. Specify archive:path in overlay script.
2014 2008-06-05 Alan Modra <amodra@bigpond.net.au>
2017 * elf64-ppc.c (ppc_build_one_stub): Correct reloc offsets.
2019 2008-06-04 Alan Modra <amodra@bigpond.net.au>
2021 * elf.c (ignore_section_sym): Don't test section sym value here.
2022 (elf_map_symbols): Instead check zero value here as was done prior
2023 to 2006-05-26 change.
2025 2008-06-04 Nick Clifton <nickc@redhat.com>
2028 * elf32-avr.c (elf32_avr_relax_section): Handle the case where
2029 there are no local symbols.
2031 2008-06-04 Alan Modra <amodra@bigpond.net.au>
2033 * elf32-spu.c (get_sym_h): Don't attempt to read global syms.
2034 (process_stubs): Likewise.
2035 (discover_functions): Don't used cached symbols.
2036 (maybe_insert_function): Correct condition under which function
2038 (mark_functions_via_relocs): Delete unused variable.
2040 2008-05-30 Frediano Ziglio <frediano.ziglio@vodafone.com>
2041 Nick Clifton <nickc@redhat.com>
2044 * elf64-hppa.c (allocate_global_data_opd): Default to using the
2045 dynamic symbol table for local function names in shared libraries.
2047 2008-05-29 Jan Kratochvil <jan.kratochvil@redhat.com>
2049 * elf.c (assign_file_positions_for_load_sections): Adjust pre-section
2050 gaps based on VMA and P_VADDR instead of LMA and P_PADDR addresses.
2052 2008-05-28 Alan Modra <amodra@bigpond.net.au>
2054 * elf32-spu.c (spu_elf_object_p): New function.
2055 (elf_backend_object_p): Define.
2056 (build_stub): Correct second word of 8 byte overlay stubs.
2057 (spu_elf_relocate_section): Formatting.
2059 2008-05-24 Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
2061 * elf.c (elfcore_write_register_note): New function.
2062 * elf-bfd.h (elfcore_write_register_note): New prototype.
2064 2008-05-22 Christophe Lyon <christophe.lyon@st.com>
2066 * elf32-arm.c (arm_type_of_stub): Ignore STT_SECTION symbols.
2067 (elf32_arm_stub_add_mapping_symbol): Remove.
2068 (elf32_arm_add_stub): Don't generate mapping symbols. Change
2070 (elf32_arm_size_stubs): Use new elf32_arm_add_stub
2071 prototype. Don't generate thumb to arm glue for calls.
2072 (arm_map_one_stub): Define.
2073 (elf32_arm_output_arch_local_syms): Generate mapping symbols for
2076 2008-05-21 Nick Clifton <nickc@redhat.com>
2078 * elf32-arm.c (group_sections): Reformat comments.
2081 * elf32-frv.c (elf32_frv_relocate_section): Set EF_FRV_PIC by
2082 default (for FDPIC). Clear it if any inter-segment relocations
2085 * elf64-hppa.c (elf64_hppa_finalize_opd): Check NULL return
2086 from elf_link_hash_lookup.
2088 2008-05-21 Maxim Kuvyrkov <maxim@codesourcery.com>
2090 Add multi-GOT support for m68k.
2091 * elf32-m68k.c (struct elf_m68k_link_hash_entry: got_entry_key,
2093 (struct elf_m68k_got_entry_key, struct elf_m68k_got_entry,
2094 struct elf_m68k_got, struct elf_m68k_bfd2got_entry,
2095 struct elf_m68k_multi_got): New data structures.
2096 (struct elf_m68k_link_hash_table: local_gp_p, use_neg_got_offsets_p,
2097 allow_multigot_p, multi_got_): New fields.
2098 (elf_m68k_multi_got): New macro.
2099 (elf_m68k_link_hash_newfunc): Initialize new fields of
2100 struct elf_m68k_link_hash_entry.
2101 (elf_m68k_link_hash_table_create): Initialize new fields of
2102 struct elf_m68k_link_hash_table.
2103 (elf_m68k_link_hash_table_free): New static function implementing hook.
2104 (elf_m68k_init_got, elf_m68k_clear_got, elf_m68k_create_empty_got): New
2105 static functions for struct elf_m68k_got.
2106 (elf_m68k_init_got_entry_key, elf_m68k_got_entry_hash,
2107 elf_m68k_got_entry_eq): New static functions for
2108 struct elf_m68k_got_entry.
2109 (ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT,
2110 ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): New macros.
2111 (enum elf_m68k_get_entry_howto): New enum.
2112 (elf_m68k_get_got_entry, elf_m68k_update_got_entry_type,
2113 elf_m68k_remove_got_entry_type): New static functions for
2114 struct elf_m68k_got_entry.
2115 (elf_m68k_add_entry_to_got): New static function.
2116 (elf_m68k_bfd2got_entry_hash, elf_m68k_bfd2got_entry_eq,
2117 elf_m68k_bfd2got_entry_del, elf_m68k_get_bfd2got_entry): New static
2118 functions for struct elf_m68k_bfd2got_entry.
2119 (struct elf_m68k_can_merge_gots_arg, elf_m68k_can_merge_gots_1,
2120 elf_m68k_can_merge_gots): New traversal.
2121 (struct elf_m68k_merge_gots_arg, elf_m68k_merge_gots_1,
2122 elf_m68k_merge_gots): Ditto.
2123 (struct elf_m68k_finalize_got_offsets_arg,
2124 elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Ditto.
2125 (struct elf_m68k_partition_multi_got_arg,
2126 elf_m68k_partition_multi_got_1, elf_m68k_init_symndx2h_1,
2127 elf_m68k_partition_multi_got): Ditto.
2128 (elf_m68k_find_got_entry_ptr, elf_m68k_remove_got_entry): New static
2130 (elf_m68k_copy_indirect_symbol): New static function implementing
2132 (elf_m68k_check_relocs): Update to add entries to multi-GOT.
2133 (elf_m68k_gc_sweep_hook): Update to remove entries from multi-GOT.
2134 (elf_m68k_always_size_sections): Assign BFDs to GOTs.
2135 (elf_m68k_relocate_section): Update to properly handle GOT relocations.
2136 (elf_m68k_finish_dynamic_symbol): Update to traverse all GOT entries
2138 (bfd_elf_m68k_set_target_options): New function.
2139 (bfd_elf32_bfd_link_hash_table_free): Define hook.
2140 (bfd_elf32_bfd_final_link): Change expansion to bfd_elf_final_link
2141 to skip generic calculation of GOT offsets.
2142 (elf_backend_copy_indirect_symbol): Define hook.
2143 * bfd-in.h (bfd_elf_m68k_set_target_options): Declare function.
2144 * bfd-in2.h: Regenerate.
2146 2008-05-21 André Johansen <andrejoh@gmail.com>
2149 * dwarf2.c (_bfd_dwarf2_cleanup_debug_info): Free memory allocated
2150 for filenames in function tables and variable tables.
2152 2008-05-19 Alan Modra <amodra@bigpond.net.au>
2155 * elf.c (_bfd_elf_make_section_from_shdr): Leave lma equal to
2156 vma when all p_paddr fields are zero and there is more than
2159 2008-05-15 Christophe Lyon <christophe.lyon@st.com>
2161 Add long call support for ARM.
2162 * elf32-arm.c (THM2_MAX_FWD_BRANCH_OFFSET): Define.
2163 (THM2_MAX_BWD_BRANCH_OFFSET): Define.
2164 (ARM_MAX_FWD_BRANCH_OFFSET): Define.
2165 (ARM_MAX_BWD_BRANCH_OFFSET): Define.
2166 (THM_MAX_FWD_BRANCH_OFFSET): Define.
2167 (THM_MAX_BWD_BRANCH_OFFSET): Define.
2168 (arm_long_branch_stub): Define.
2169 (arm_pic_long_branch_stub): Define.
2170 (arm_thumb_v4t_long_branch_stub): Define.
2171 (arm_thumb_thumb_long_branch_stub): Define.
2172 (arm_thumb_arm_v4t_long_branch_stub): Define.
2173 (STUB_SUFFIX): Define.
2174 (elf32_arm_stub_type): Define.
2175 (elf32_arm_stub_hash_entry): Define.
2176 (elf32_arm_link_hash_entry): Add stub_cache field.
2177 (arm_stub_hash_lookup): Define.
2178 (elf32_arm_link_hash_table): Add stub_hash_table, stub_bfd,
2179 add_stub_section, layout_sections_again, stub_group, bfd_count,
2180 top_index, input_list fields.
2181 (elf32_arm_link_hash_newfunc): Init new field.
2182 (stub_hash_newfunc): New function.
2183 (elf32_arm_link_hash_table_create): Init stub_hash_table.
2184 (elf32_arm_hash_table_free): New function.
2185 (arm_type_of_stub): New function.
2186 (elf32_arm_stub_name): New function.
2187 (elf32_arm_get_stub_entry): New function.
2188 (elf32_arm_stub_add_mapping_symbol): New function.
2189 (elf32_arm_add_stub): New function.
2190 (arm_build_one_stub): New function.
2191 (arm_size_one_stub): New function.
2192 (elf32_arm_setup_section_lists): New function.
2193 (elf32_arm_next_input_section): New function.
2194 (group_sections): New function.
2195 (elf32_arm_size_stubs): New function.
2196 (elf32_arm_build_stubs): New function.
2197 (bfd_elf32_arm_add_glue_sections_to_bfd): Skip stub sections.
2198 (bfd_elf32_arm_process_before_allocation): No longer handle
2199 R_ARM_CALL and R_ARM_THM_CALL.
2200 (using_thumb_only): New function.
2201 (elf32_arm_final_link_relocate): Redirect calls to stub if range
2202 exceeds encoding capabilities.
2203 (bfd_elf32_bfd_link_hash_table_free): Define.
2204 * bfd-in.h (R_ARM_max): Fix value to 130.
2205 (elf32_arm_setup_section_lists): Protype.
2206 (elf32_arm_next_input_section): Protype.
2207 (elf32_arm_size_stubs): Protype.
2208 (elf32_arm_build_stubs): Protype.
2209 * bfd-in2.h: Regenerate.
2211 2008-05-14 Ulrich Weigand <uweigand@de.ibm.com>
2213 * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Fix memset calls.
2214 * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.
2216 2008-05-14 Alan Modra <amodra@bigpond.net.au>
2218 * Makefile.am: Run "make dep-am".
2219 * Makefile.in: Regenerate.
2221 2008-05-14 Ulrich Weigand <uweigand@de.ibm.com>
2222 Alan Modra <amodra@bigpond.net.au>
2224 * elf32-ppc.c (section_covers_vma): New function.
2225 (ppc_elf_get_synthetic_symtab): New function.
2226 (bfd_elf32_get_synthetic_symtab): Define.
2227 * elf64-ppc.c (section_covers_vma): New function.
2228 (ppc64_elf_get_synthetic_symtab): Generate sym@plt on glink branch
2229 table entries, and __glink_PLTresolve on resolver stub.
2230 (ppc64_elf_build_stubs): Rename __glink sym to __glink_PLTresolve.
2232 2008-05-12 Alan Modra <amodra@bigpond.net.au>
2235 * elf32-ppc.c (MUST_BE_DYN_RELOC): Delete.
2236 (must_be_dyn_reloc): New function.
2237 (ppc_elf_check_relocs): Don't set DF_STATIC_TLS for tprel relocs
2239 (ppc_elf_tls_optimize): Optimise pies.
2240 (ppc_elf_relocate_section): Use a section symbol rather than no
2241 symbol if possible for LD->IE TLS sequence, but don't error if
2242 we must use no symbol.
2243 * elf64-ppc.c (MUST_BE_DYN_RELOC): As for elf32-ppc.c.
2244 (must_be_dyn_reloc): Likewise.
2245 (ppc64_elf_check_relocs): Likewise.
2246 (ppc64_elf_tls_optimize): Likewise.
2247 (ppc64_elf_relocate_section): Likewise.
2249 2008-05-12 Alan Modra <amodra@bigpond.net.au>
2251 * elf32-spu.c (spu_elf_relocate_section): Rename is_ea to is_ea_sym.
2253 2008-05-10 Paul Pluzhnikov <ppluzhnikov@google.com>
2255 * elfcore.h (elf_core_file_p): Warn about core truncation.
2257 2008-05-07 Bob Wilson <bob.wilson@acm.org>
2259 * elf32-xtensa.c (xtensa_property_section_name): New.
2260 (xtensa_make_property_section): New.
2261 (xtensa_get_property_section): Make static. Do not create a new
2262 section if it does not exist.
2264 2008-05-08 Alan Modra <amodra@bigpond.net.au>
2266 * elf32-spu.c (spu_elf_special_sections): Add "._ea".
2267 (spu_elf_relocate_section): Handle relocations against symbols
2268 defined in ._ea specially.
2270 2008-05-03 Daniel Jacobowitz <dan@codesourcery.com>
2272 * elf32-arm.c (elf32_arm_symbian_link_hash_table_create): Use
2274 (elf32_arm_symbian_plt_sym_val): New.
2275 (elf_backend_plt_sym_val): Define.
2277 2008-05-03 Alan Modra <amodra@bigpond.net.au>
2280 * elf.c (rewrite_elf_program_header): Rather than clearing
2281 p_paddr_valid at end, don't set it in the first place. Delete
2282 comment no longer relevant. When not p_paddr_valid, don't set
2283 paddr from vaddr, and don't set p_vaddr_offset.
2285 2008-05-01 Cary Coutant <ccoutant@google.com>
2287 * elf.c (bfd_elf_get_str_section): Fix memory leak caused by
2288 corrupt string table.
2290 2008-05-01 Joel Brobecker <brobecker@adacore.com>
2292 * cache.c (cache_bread_1): Renames cache_bread.
2293 (cache_bread): New function.
2295 2008-05-01 Alan Modra <amodra@bigpond.net.au>
2298 * elf.c (_bfd_elf_make_section_from_shdr): Always set lma from p_paddr.
2299 (assign_file_positions_for_load_sections): Combine nested "if".
2300 (copy_elf_program_header): Don't set p_paddr_valid or p_vaddr_offset
2301 when all header p_paddr fields are zero.
2303 2008-04-30 Edmar Wienskoski <edmar@freescale.com>
2305 * cpu-powerpc.c (bfd_powerpc_archs): Add e500mc entry.
2307 2008-04-29 Daniel Jacobowitz <dan@codesourcery.com>
2309 * elf.c (_bfd_elf_get_dynamic_reloc_upper_bound)
2310 (_bfd_elf_canonicalize_dynamic_reloc): Find dynamic relocations
2311 even if they are not loaded.
2312 * elflink.c (_bfd_elf_init_2_index_sections): Set data_index_section
2315 2008-04-25 Jay Foad <jay.foad@gmail.com>
2317 * reloc16.c (bfd_coff_reloc16_get_value): Add support for
2318 undefined weak symbols.
2320 2008-04-25 Nick Clifton <nickc@redhat.com>
2322 * po/vi.po: Updated Vietnamese translation.
2324 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
2326 * aclocal.m4: Regenerate.
2327 * configure: Regenerate.
2329 2008-04-21 Cary Coutant <ccoutant@google.com>
2331 * archive.c (_bfd_write_archive_contents): Fix incorrect use of
2334 2008-04-21 Nathan Sidwell <nathan@codesourcery.com>
2336 * elfxx-mips.c (_bfd_mips_vxworks_adjust_dynamic_symbol): Don't
2337 set the value of undefined symbols in shared objects.
2338 (_bfd_mips_vxworks_finish_dynamic_symbol): Clear value for
2339 undefined symbols unless pointer equality is needed.
2341 2008-04-18 Dennis Roberts <dennis.roberts@sunquestinfo.com>
2343 * aix5ppc-core.c: Define macros for the default architecture and
2344 machine for matching core files.
2345 (xcoff64_core_p): Set the architecture and machine to the default
2346 values defined in the macros mentioned above.
2347 * rs6000-core.c: Define macros to determine whether or not the
2348 core file header uses the core_dumpxx header format.
2349 (rs6000coff_core_p): Don't match core files that use the
2350 core_dumpxx header format.
2352 2008-04-16 Pedro Alves <pedro@codesourcery.com>
2354 * config.bfd (i[3-7]86-*-dicos*, x86_64-*-dicos*): Add.
2356 2008-04-16 David S. Miller <davem@davemloft.net>
2358 * reloc.c (BFD_RELOC_SPARC_GOTDATA_HIX22,
2359 BFD_RELOC_SPARC_GOTDATA_LOX10, BFD_RELOC_SPARC_GOTDATA_OP_HIX22,
2360 BFD_RELOC_SPARC_GOTDATA_OP_LOX10, BFD_RELOC_SPARC_GOTDATA_OP): New.
2361 * libbfd.h: Regnerate.
2362 * bfd-in2.h: Regenerate.
2363 * elfxx-sparc.c (_bfd_sparc_elf_howto_table): Add entries for
2364 GOTDATA relocations.
2365 (sparc_reloc_map): Likewise.
2366 (_bfd_sparc_elf_check_relocs): Handle R_SPARC_GOTDATA_* like
2368 (_bfd_sparc_elf_gc_sweep_hook): Likewise.
2369 (_bfd_sparc_elf_relocate_section): Transform R_SPARC_GOTDATA_HIX22,
2370 R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22, and
2371 R_SPARC_GOTDATA_OP_LOX10 into the equivalent R_SPARC_GOT* reloc.
2372 Simply ignore R_SPARC_GOTDATA_OP relocations.
2374 2008-04-14 Aurelien Jarno <aurelien@aurel32.net>
2376 * configure.in: Link with the PIC version of libiberty on
2378 * configure: Regenerate.
2380 2008-04-14 Edmar Wienskoski <edmar@freescale.com>
2382 * archures.c: Add bfd_mach_ppc_e500mc.
2383 * bfd-in2.h: Regenerate.
2385 2008-04-08 Alan Modra <amodra@bigpond.net.au>
2387 * elf32-spu.c (spu_elf_build_stubs): Correct error message.
2388 (mark_functions_via_relocs): Remove premature init of symtab_hdr.
2389 (collect_overlays): Commment typo fix.
2391 2008-04-08 Kees Cook <kees@canonical.com>
2393 * elflink.c (bfd_elf_size_dynamic_sections): Ignore GNU-stack note
2396 2008-04-08 Alan Modra <amodra@bigpond.net.au>
2398 * elf32-spu.c: Include libiberty.h.
2399 (struct spu_link_hash_table): Add local_stire, overlay_fixed, reserved,
2400 non_ovly_stub, spu_elf_load_ovl_mgr, spu_elf_open_overlay_script,
2401 spu_elf_relink, auto_overlay fields.
2402 (AUTO_OVERLAY, AUTO_RELINK, OVERLAY_RODATA): Define.
2403 (needs_ovl_stub): Flip test so that call to non-function warning
2404 is emitted during relocate_section rather than earlier.
2405 (spu_elf_check_vma): Stash --auto-overlay parameters, and clear
2406 auto_overlay if no section exceeds local store.
2407 (struct call_info): Add count, max_depth, is_pasted fields.
2408 (struct function_info): Add rodata, last_caller, call_count,
2409 depth, new visit flags.
2410 (insert_callee): Increment call count.
2411 (copy_callee): New function.
2412 (mark_functions_via_relocs): Investigate all reloc types to count
2413 possible function pointer stubs for --auto-overlay. Track
2414 last_caller and increment function call_count.
2415 (pasted_function): Insert a "call" into call info for pasted section.
2416 (remove_cycles): Track max depth of calls. Don't emit call graph
2417 pruning warning for --auto-overlay.
2418 (build_call_tree): Don't transfer_calls for --auto-overlay.
2419 Adjust remove_cycles call.
2420 (sort_calls, sort_lib, sort_bfds): New functions.
2421 (struct _mos_param, struct _uos_param, struct _cl_param): New.
2422 (mark_overlay_section, unmark_overlay_section): New functions.
2423 (collect_lib_sectios, auto_ovl_lib_functions): New functions.
2424 (collect_overlays, find_pasted_call): New functions.
2425 (sum_stack): Deal with is_pasted "calls". Exit before printing
2426 when --auto-overlay.
2427 (spu_elf_auto_overlay): New function.
2428 (spu_elf_final_link): Call spu_elf_auto_overlay.
2429 * elf32-spu.h (spu_elf_check_vma): Update prototype.
2431 2008-04-07 Alan Modra <amodra@bigpond.net.au>
2433 * elf32-spu.c (allocate_spuear_stubs): Ensure _SPUEAR_ symbol
2434 is defined in overlay section before creating a stub.
2435 (build_spuear_stubs): Likewise.
2436 (spu_elf_size_stubs, spu_elf_build_stubs): Adjust calls.
2438 2008-04-02 Alan Modra <amodra@bigpond.net.au>
2440 * elf32-spu.c (insert_callee): Reorder call list so most recent
2441 call is always first.
2442 (interesting_section): Move.
2443 (mark_functions_via_relocs): Fold interesting_section and
2444 reloc_count tests in callers to here. Simplify output section
2446 (discover_functions): Set "gaps" when no symbols and some
2447 "interesting_section". Run pasted_function loop for no symbol
2449 (for_each_node, transfer_calls): New functions.
2450 (mark_non_root): Adjust to suit for_each_node.
2451 (call_graph_traverse): Likewise. Fix memory leak. Rename to..
2452 (remove_cycles): ..this.
2453 (build_call_tree): Use for_each_node and transfer_calls.
2454 (struct _sum_stack_param): New.
2455 (sum_stack): Adjust to suit for_each_node. Return error on
2456 malloc failure. Move code to print root node cumulative stack from..
2457 (spu_elf_stack_analysis): ..here. Use for_each_node.
2459 2008-03-31 Cary Coutant <ccoutant@google.com>
2462 * archive.c (_bfd_slurp_extended_name_table): Change
2463 ARFMAG[0] to ARFMAG[1].
2464 (_bfd_construct_extended_name_table): Likewise.
2466 2008-03-31 Daniel Jacobowitz <dan@codesourcery.com>
2468 * elfxx-mips.c (mips_elf_record_got_page_entry): Update comment.
2469 (_bfd_mips_elf_check_relocs): Update comments. Always call
2470 mips_elf_record_got_page_entry for R_MIPS_GOT_PAGE.
2472 2008-03-27 Cary Coutant <ccoutant@google.com>
2474 Add support for thin archives.
2475 * archive.c (_bfd_find_nested_archive): New function.
2476 (get_extended_arelt_filename): Add origin parameter.
2477 (_bfd_generic_read_ar_hdr_mag): Deal with extended name
2478 combined with a file offset.
2479 (append_relative_path): New function.
2480 (_bfd_get_elt_at_filepos): Deal with external members and
2482 (bfd_generic_openr_next_archived_file): Thin archives.
2483 (bfd_generic_archive_p): Recognize new magic string.
2484 (adjust_relative_path): New function.
2485 (_bfd_construct_extended_name_table): Construct extended
2486 names for thin archive members.
2487 (_bfd_write_archive_contents): Emit new magic string, skip
2488 copying files for thin archives.
2489 * bfd-in.h (bfd_is_thin_archive): New macro.
2490 * bfd.c (struct bfd): New fields for thin archives.
2491 * libbfd-in.h (struct areltdata): New field for thin archives.
2492 * opncls.c (bfd_close): Delete BFDs for nested archives.
2494 2008-03-25 Bernd Schmidt <bernd.schmidt@analog.com>
2496 * elf32-bfin.c (bfin_final_link_relocate): New function, wrapper around
2497 _bfd_final_link_relocate that also handles R_pcrel24 relocs.
2498 (bfinfdpic_relocate_section, bfin_relocate_section): Use it.
2500 2008-03-25 Nathan Sidwell <nathan@codesourcery.com>
2502 * elf32-arm.c (elf32_arm_final_link_relocate): Skip dynamic relocs
2503 in vxworks tls_vars sections.
2504 (allocate_dynrelocs, elf32_arm_size_dynamic_sections): Likewise.
2505 * elf32-i386.c (allocate_dynrelocs,
2506 elf_i386_size_dynamic_sections, elf_i386_relocate_section): Likewise.
2507 * elf32-ppc.c (allocate_dynrelocs, ppc_elf_size_dynamic_sections,
2508 ppc_elf_relocate_section): Likewise.
2509 * elf32-sh.c (allocate_dynrelocs, sh_elf_size_dynamic_sections,
2510 sh_elf_relocate_section): Likewise.
2511 * elfxx-sparc.c (allocate_dynrelocs,
2512 _bfd_sparc_elf_size_dynamic_sections,
2513 _bfd_sparc_elf_relocate_section): Likewise.
2515 2008-03-21 Adam Nemet <anemet@caviumnetworks.com>
2517 * elf.c (_bfd_elf_print_private_bfd_data): Use bfd_fprintf_vma to
2518 print the values from the dynamic section.
2520 2008-03-20 Richard Sandiford <rsandifo@nildram.co.uk>
2522 * elfxx-mips.c (MIPS_ELF_GNU_GOT1_MASK): New macro.
2523 (_bfd_mips_elf_finish_dynamic_sections): Use it instead of 0x80000000.
2525 2008-03-20 Alan Modra <amodra@bigpond.net.au>
2527 * elf32-spu.c (spu_elf_create_sections): Remove output_bfd parameter.
2528 (spu_elf_find_overlays, spu_elf_size_stubs): Likewise
2529 (process_stubs, discover_functions, build_call_tree): Likewise.
2530 (spu_elf_stack_analysis): Likewise.
2531 (spu_elf_check_vma): Likewise. Move.
2532 (struct call_info): Make "is_tail" a bitfield.
2533 (insert_callee): Clear fun->start and set fun->is_func if we find
2535 * elf32-spu.h (spu_elf_create_sections): Update prototype.
2536 (spu_elf_find_overlays, spu_elf_size_stubs, spu_elf_check_vma): Ditto.
2538 2008-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2540 * aclocal.m4: Regenerate.
2541 * configure: Likewise.
2542 * Makefile.in: Likewise.
2544 2008-03-16 H.J. Lu <hongjiu.lu@intel.com>
2548 * elf32-i386.c (elf_i386_relocate_section): Issue an error
2549 for R_386_GOTOFF relocaton against undefined hidden/internal
2550 symbols when building a shared object.
2552 * elf64-x86-64.c (elf64_x86_64_relocate_section): Issue an
2553 error for R_X86_64_PC8/R_X86_64_PC16/R_X86_64_PC32
2554 relocaton against undefined hidden/internal symbols when
2555 building a shared object.
2556 (elf64_x86_64_finish_dynamic_symbol): Return FALSE when symbol
2557 is referenced locally, but isn't defined in a regular file.
2559 2008-03-15 H.J. Lu <hongjiu.lu@intel.com>
2561 * bfd-in.h (BFD_NO_FLAGS, HAS_RELOC, EXEC_P, HAS_LINENO,
2562 HAS_DEBUG, HAS_SYMS, HAS_LOCALS, DYNAMIC, WP_TEXT, D_PAGED,
2563 BFD_IS_RELAXABLE, BFD_TRADITIONAL_FORMAT, BFD_IN_MEMORY,
2564 HAS_LOAD_PAGE, BFD_LINKER_CREATED): Moved to ...
2567 * bfd.c (bfd): Change cacheable, target_defaulted, opened_once,
2568 mtime_set, no_export, output_has_begun and has_armap to bit
2571 * bfd-in2.h: Regenerated.
2573 2008-03-14 Daniel Jacobowitz <dan@codesourcery.com>
2575 * cache.c (close_one): Remove mtime hack.
2577 2008-03-14 H.J. Lu <hongjiu.lu@intel.com>
2580 * elfxx-ia64.c (elfNN_ia64_tprel_base): Remove BFD_ASSERT.
2581 (elfNN_ia64_dtprel_base): Likewise.
2582 (elfNN_ia64_relocate_section): Go to missing_tls_sec if
2583 tls_sec is NULL before calling elfNN_ia64_tprel_base or
2584 elfNN_ia64_dtprel_base. Report unsupported TLS relocations.
2586 2008-03-14 Alan Modra <amodra@bigpond.net.au>
2588 * elf32-spu.c (process_stubs, spu_elf_relocate_section): Move
2590 (maybe_needs_stub): ..here, a new function that also omits stubs
2591 for .eh_frame, and..
2592 (needs_ovl_stub): ..here. Create stubs for labels in code section
2593 referenced by switch jump table.
2594 (spu_elf_find_overlays): Set htab->ovly_load and htab->ovly_return.
2595 (enum _insn_type): Delete.
2596 (enum _stub_type): New.
2597 (count_stub, build_stub): Adjust.
2598 (allocate_spuear_stubs, build_spuear_stubs): Adjust.
2600 2008-03-13 Alan Modra <amodra@bigpond.net.au>
2602 * elf.c (_bfd_elf_make_section_from_shdr): Remove unnecessary cast.
2603 (_bfd_elf_assign_file_position_for_section): Simplify align.
2604 (_bfd_elf_init_reloc_shdr): Ensure shift expression wide enough
2606 (elf_fake_sections, swap_out_syms): Likewise.
2607 * elflink.c (bfd_elf_final_link): Likewise.
2609 2008-03-13 Alan Modra <amodra@bigpond.net.au>
2611 * Makefile.am: Run "make dep-am".
2612 * Makefile.in: Regenerate.
2613 * po/SRC-POTFILES.in: Regenerate.
2615 2008-03-12 Bernd Schmidt <bernd.schmidt@analog.com>
2617 From Jie Zhang <jie.zhang@analog.com>
2618 * elf32-bfin.c (struct bfinfdpic_relocs_info): Make got17m4,
2619 gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4, fdgoffhilo,
2620 gotoff, call and sym not bitfields.
2621 (bfinfdpic_gc_sweep_hook): New function; update the relocation
2622 information for the relocations of the section being removed.
2623 (bfinfdpic_check_relocs): Accumulate the number of relocations
2624 which set got17m4, gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4,
2625 fdgoffhilo, gotoff, call and sym fields.
2626 (elf_backend_gc_sweep_hook): Redefine for FD-PIC.
2628 2008-03-12 Alan Modra <amodra@bigpond.net.au>
2631 * elf-bfd.h: Include elf/internal.h after elf/external.h.
2632 * elfcode.h (elf_swap_symbol_in): Map reserved shndx range.
2633 (elf_swap_symbol_out): Adjust SHN_XINDEX test.
2634 (elf_swap_ehdr_out): Mask SHN_LORESERVE and SHN_XINDEX to values
2635 seen in external structs.
2636 (valid_section_index_p): Delete.
2637 (elf_object_p): Don't increment section numbers over reserved range.
2638 Simplify test for valid sh_link, sh_info and e_shstrndx fields.
2639 (elf_write_shdrs_and_ehdr): Mask SHN_LORESERVE and SHN_XINDEX to values
2640 seen in external structs. Don't increment section numbers over
2642 * elf.c (bfd_elf_sym_name): Remove redundant tests on st_shndx.
2643 (bfd_section_from_shdr): Likewise.
2644 (group_signature): Range check before accessing elf_elfsections.
2645 (_bfd_elf_setup_sections): Likewise.
2646 (bfd_section_from_shdr): Likewise.
2647 (bfd_section_from_shdr): Don't increment section number over
2649 (assign_file_positions_for_non_load_sections): Likewise.
2650 (assign_file_positions_except_relocs): Likewise.
2651 (_bfd_elf_write_object_contents): Likewise.
2652 (assign_section_numbers): Likewise. Adjust for changed SHN_*.
2653 (prep_headers): Delete unused variable.
2654 * elflink.c (bfd_elf_link_record_local_dynamic_symbol): Adjust
2655 for changed SHN_* values.
2656 (check_dynsym, elf_link_input_bfd): Likewise.
2657 (bfd_elf_final_link): Likewise. Don't skip over reserved section
2659 (elf_fixup_link_order): Check that sh_link field is valid.
2660 * elf-hppa.h (elf_hppa_add_symbol_hook): Make "index" unsigned.
2661 * elf32-arm.c (elf32_arm_gc_mark_extra_sections): Range check before
2662 accesssing elf_elfsections.
2663 * elf32-avr.c (elf32_avr_size_stubs): Likewise.
2664 * elf32-hppa.c (elf32_hppa_size_stubs): Likewise.
2665 * elf32-m68hc1x.c (elf32_m68hc11_size_stubs): Likewise.
2666 * elf64-hppa.c (elf64_hppa_check_relocs): Adjust for changed
2667 SHN_* defines. Test for SHN_BAD return from
2668 _bfd_elf_section_from_bfd_section
2670 2008-03-12 Alan Modra <amodra@bigpond.net.au>
2672 * elf-bfd.h (_bfd_elf_section_from_bfd_section): Update prototype.
2673 * elf.c (_bfd_elf_section_from_bfd_section): Return unsigned int,
2675 (_bfd_elf_print_private_bfd_data): Test for SHN_BAD result from
2676 _bfd_elf_section_from_bfd_section, not -1.
2677 (swap_out_syms): Likewise.
2678 * elflink.c (elf_link_add_object_symbols): Likewise.
2679 (bfd_elf_get_bfd_needed_list): Likewise.
2680 (bfd_elf_match_symbols_in_sections): Likewise.
2681 (elf_link_add_object_symbols): Don't bother testing for symbols
2682 using normal sections before calling bfd_section_from_elf_index.
2683 (elf_link_input_bfd, bfd_elf_final_link): Likewise.
2684 (bfd_elf_reloc_symbol_deleted_p): Likewise.
2685 * elfcode.h (elf_slurp_symbol_table): Likewise.
2686 * elf32-spu.c (get_sym_h): Likewise.
2687 * elf32-xtensa.c (get_elf_r_symndx_section): Likewise.
2688 * elf64-ppc.c (opd_entry_value, get_sym_h, ppc64_elf_edit_toc): Ditto.
2689 * elf64-sh64.c (sh_elf64_get_relocated_section_contents): Likewise.
2691 2008-03-11 Alan Modra <amodra@bigpond.net.au>
2693 * elf32-spu.c (spu_elf_relocate_section): Test identical conditions
2694 to those in process_stubs for overlay symbols.
2696 2008-03-09 Paul Brook <paul@codesourcery.com>
2698 * elf32-arm.c (elf32_arm_merge_eabi_attributes): Handle new
2699 Tag_VFP_arch values.
2701 2008-03-08 Paul Brook <paul@codesourcery.com>
2703 * elf32-arm.c (insert_thumb_branch): Rewrite.
2704 (elf32_thumb_to_arm_stub): Use new insert_thumb_branch.
2706 2008-03-07 Paul Brook <paul@codesourcery.com>
2708 * elf32-arm.c (elf32_arm_howto_table_1): Fix bitmasks for MOVW and
2710 (elf32_arm_final_link_relocate): Fix off by one MOVW/MOVT sign
2712 (elf32_arm_relocate_section): Handle MOVW and MOVT
2713 relocations. Improve safety check for other weird relocations.
2714 (elf32_arm_check_relocs): Only set h->needs_plt for branch/call
2717 2008-03-03 Bob Wilson <bob.wilson@acm.org>
2719 * xtensa-isa.c (xtensa_isa_num_pipe_stages): Make max_stage static and
2720 only compute its value once.
2722 2008-03-03 Alan Modra <amodra@bigpond.net.au>
2724 * elf32-spu.c (struct got_entry): Add "addend" field.
2725 (count_stub, build_stub): Use a new stub if relocation addend
2726 differs from existing stubs for this symbol.
2727 (process_stubs): Deal with addends.
2728 (spu_elf_relocate_section, spu_elf_output_symbol_hook): Likewise.
2730 2008-03-02 H.J. Lu <hongjiu.lu@intel.com>
2733 * elflink.c (_bfd_elf_symbol_refs_local_p): Always return true
2734 for hidden and local symbols.
2736 2008-03-03 Alan Modra <amodra@bigpond.net.au>
2738 * elf32-ppc.c (allocate_dynrelocs): Discard relocs on
2739 undefined symbols with internal or hidden visibility.
2740 (ppc_elf_relocate_section): Likewise. Use SYMBOL_CALLS_LOCAL
2741 rather than SYMBOL_REFERENCES_LOCAL on branches. Don't
2742 return immediately on dynamic reloc error.
2744 2008-03-01 Alan Modra <amodra@bigpond.net.au>
2746 * elf64-ppc.c (build_plt_stub): Add relocs on plt call stubs
2748 (get_relocs): New function, split out from..
2749 (ppc_build_one_stub): ..here. Add relocs on plt_branch stubs if
2750 emitrelocations. Remove indx temp.
2751 (ppc_size_one_stub): Count new stub relocs.
2752 (ppc64_elf_size_stubs): Count new glink reloc.
2753 (ppc64_elf_build_stubs): Emit glink reloc if emitrelocations.
2754 (ppc64_elf_finish_dynamic_sections): Output glink relocs.
2755 * elf32-ppc.c (ppc_elf_finish_dynamic_sections): Describe non-pic
2758 2008-02-28 Alan Modra <amodra@bigpond.net.au>
2760 * elf32-spu.c (mark_functions_via_relocs): Don't assume that
2761 the "->start" pointer reaches to function origin, so that we
2762 can handle functions split over more than two sections.
2763 (build_call_tree): Likewise.
2764 (pasted_function): Don't attempt to set fun->start back to the
2765 function origin, just go back one section.
2767 2008-02-27 Catherine Moore <clm@codesourcery.com>
2769 * elf.c ( _bfd_elf_print_private_bfd_data): Call
2770 elf_backend_get_target_dtag if defined.
2771 * elf32-mips.c (elf_backend_get_target_dtag): Define.
2772 * elf64-mips.c: Likewise.
2773 * elfn32-mips.c: Likewise.
2774 * elfxx-mips.c (_bfd_mips_elf_get_target_dtag): New.
2775 * elfxx-mips.h (_bfd_mips_elf_get_target_dtag): Declare.
2776 * elf-bfd.h (elf_backend_get_target_dtag): Add prototype.
2777 * elfxx-target.h (elf_backend_get_target_dtag): Add default.
2778 (elf_backend_data): Add elf_backend_get_target_dtag.
2780 2008-02-26 Alan Modra <amodra@bigpond.net.au>
2782 * elf32-ppc.c (ppc_elf_check_relocs): Set pointer_equality_needed
2783 for R_PPC_REL32 syms. Don't set non_got_ref on branch reloc syms,
2784 and assume branch relocs are not dynamic when non-shared.
2785 (readonly_dynrelocs): New function, split out from..
2786 (maybe_set_textrel): ..here, renamed from old readonly_dynrelocs.
2787 (ppc_elf_adjust_dynamic_symbol): For symbols generating plt entries,
2789 (allocate_dynrelocs): ..and don't set u.def for undefined weak.
2790 Do allow dynamic relocs on undefined symbols.
2791 (ppc_elf_adjust_dynamic_symbol): Use readonly_dynrelocs.
2792 (ppc_elf_relocate_section): Mirror dynamic reloc changes in
2794 (ppc_elf_finish_dynamic_symbol): Don't give a warning on weak
2795 plt symbols needing pointer_equality_needed.
2797 2008-02-23 Alan Modra <amodra@bigpond.net.au>
2799 * elf32-ppc.c (ppc_elf_check_relocs): Revert non_got_ref change.
2801 2008-02-23 Alan Modra <amodra@bigpond.net.au>
2803 * elf32-ppc.c (ppc_elf_copy_indirect_symbol): Copy
2804 pointer_equality_needed.
2805 (ppc_elf_check_relocs): Split out non-branch relocs from others
2806 that might emit dynamic relocs. Set pointer_equality_needed
2807 for their symbols. Don't set non_got_ref on branch reloc symbols.
2808 (ppc_elf_hash_symbol): New function.
2809 (elf_backend_hash_symbol): Define.
2810 (ppc_elf_finish_dynamic_symbol): Handle pointer_equality_needed.
2811 Error if pointer_equality_needed on weak plt symbol.
2813 2008-02-22 H.J. Lu <hongjiu.lu@intel.com>
2816 * elflink.c (elf_create_symbuf): Correct buffer size and
2819 2008-02-22 Nick Clifton <nickc@redhat.com>
2822 * dwarf2.c: Revert previous patch. All of the allocate memory is
2823 on an obstack which will be freed at some other time.
2825 2008-02-20 Nick Clifton <nickc@redhat.com>
2828 * libbfd.c (bfd_realloc_or_free): New function. Performs like
2829 bfd_realloc, but if the (re)allocation fails, the pointer is
2831 * libbfd-in.h: Prototype.
2832 * libbfd.h: Regenerate.
2833 * bfdio.c (bfd_bwrite): Use the new function.
2834 (bfd_seek): Likewise.
2835 * bfdwin.c:(bfd_get_file_window): Likewise.
2836 * elf-strtab.c (_bfd_elf_strtab_add): Likewise.
2837 * elf32-ppc.c (ppc_elf_relax_section): Likewise.
2838 * elf32-xtensa.c (vsprintf_msg): Likewise.
2839 * mach-o.c (bfd_mach_o_core_fetch_environment): Likewise.
2840 * stabs.c (_bfd_link_seciton_stabs): Likewise.
2841 * vms-misc.c (_bfd_vms_get_record): Likewise.
2842 * vms-tir.c (check_section): Likewise.
2843 * vms.c (vms_new_section_hook): Likewise.
2844 * elf32-arm.c (elf32_arm_section_map_add): Check that the
2845 allocation of sec_data->map succeeded before using it.
2846 * elflink.c (elf_link_output_sym): Do not overwrite finfo->
2847 symshndxbuf until it is known that the reallocation succeeded.
2849 2008-02-20 Diogo de Carvalho Kraemer <diogo@kraemer.eng.br>
2850 Nick Clifton <nickc@redhat.com>
2853 * dwarf2.c (read_abbrevs): Free the abbreviation table if we run
2855 (decode_line_info): Free the line_info_table before returning a
2857 (_bfd_dwarf2_cleanup_debug_info): Free the abbreviation table.
2858 Free the line table. Free the function table. Free the variable
2861 2008-02-17 Mark Kettenis <kettenis@gnu.org>
2863 * elf.c (swap_out_syms): Avoid preprocessing directive within
2866 2008-02-17 Jan Kratochvil <jan.kratochvil@redhat.com>
2868 * elf.c (assign_file_positions_for_load_sections): Set the type of
2869 PT_NOTE sections to SHT_NOTE.
2871 2008-02-17 Ulrich Weigand <uweigand@de.ibm.com>
2873 * simple.c (bfd_simple_get_relocated_section_contents): Set
2874 link_info.output_bfd.
2876 2008-02-16 Nathan Sidwell <nathan@codesourcery.com>
2878 * dwarf2.c (find_line): Don't trust debug information after an
2879 unparseable compilation unit.
2881 2008-02-15 Alan Modra <amodra@bigpond.net.au>
2884 * section.c (SEC_LINK_DUPLICATES): Correct. Renumber following flags.
2885 * bfd-in2.h: Regenerate.
2887 2008-02-15 Alan Modra <amodra@bigpond.net.au>
2889 * elf-bfd.h (enum elf_object_id): Add HPPA_ELF_TDATA.
2890 * elf.c (bfd_elf_allocate_object): Don't check for already allocated
2892 * elf32-hppa.c (elf32_hppa_mkobject): New function.
2893 (bfd_elf32_mkobject): Define.
2894 * elf32-ppc.c (is_ppc_elf_target): Delete. Replace all uses with..
2895 (is_ppc_elf): ..this new macro.
2896 * elf64-ppc.c (is_ppc64_elf_target): Delete. Replace all uses with..
2897 (is_ppc64_elf): ..this new macro.
2899 2008-02-15 Alan Modra <amodra@bigpond.net.au>
2901 * elflink.c: Replace all accesses to hash->creator field with
2903 * cofflink.c: Likewise.
2904 * coff-h8300.c: Likewise.
2905 * ecoff.c: Likewise.
2906 * elf32-m68hc1x.c: Likewise.
2907 * elf32-ppc.c: Likewise.
2908 * elf64-alpha.c: Likewise.
2909 * elf64-ppc.c: Likewise.
2910 * elf64-sparc.c: Likewise.
2911 * elfxx-mips.c: Likewise.
2912 * i386linux.c: Likewise.
2913 * m68klinux.c: Likewise.
2914 * sparclinux.c: Likewise.
2915 * sunos.c: Likewise.
2916 * xcofflink.c: Likewise.
2917 * linker.c: Likewise.
2918 (_bfd_link_hash_table_init): Don't store creator.
2920 2008-02-14 Peter Jones <pjones@redhat.com>
2922 * efi-rtdrv-ia32.c: New file.
2923 * efi-bsdrv-ia32.c: New file.
2924 * efi-rtdrv-ia64.c: New file.
2925 * efi-bsdrv-ia64.c: New file.
2926 * efi-rtdrv-x86_64.c: New file.
2927 * efi-bsdrv-x86_64.c: New file.
2928 * peicode.h (pe_bfd_object_p): Add support for boot service and
2929 runtime service drivers.
2930 * libpei.h: Add macros for EFI formats, and rename the efi application
2931 format macros to disambiguate.
2932 * targets.c: Add bfd_target _vec externs.
2933 (_bfd_tar): Add EFI _vec entries.
2934 * config.bfd: Add EFI vectors into the selection routines.
2935 * configure.in: add EFI _vec entries.
2936 * configure: Regenerate.
2937 * Makefile.am: Add EFI files.
2938 * Makefile.in: Regenerate.
2940 2008-02-14 Nathan Sidwell <nathan@codesourcery.com>
2942 * dwarf1.c (struct dwarf1_debug): Add syms member.
2943 (alloc_dwarf1_unit, alloc_dwarf1_func): Check for out of memory.
2944 (parse_line_table, _bfd_dwarf1_find_nearest_line): Relocate
2945 section contents, check for out of memory.
2947 * dwarf1.c (struct dwarf1_debug): Change data pointers to bfd_byte.
2948 (parse_die): Change data pointers to bfd_byte.
2949 (parse_line_table, parse_functions_in_unit): Likewise.
2951 2008-02-14 Alan Modra <amodra@bigpond.net.au>
2953 * elflink.c (compute_bucket_count): Warning fixes.
2955 2008-02-12 DJ Delorie <dj@redhat.com>
2957 * elf32-iq2000.c (iq2000_elf_relocate_section): Adjust addend of
2958 relocation pointing to local symbol in merged section.
2960 * elf32-iq2000.c (iq2000_elf_relocate_offset16): New.
2961 (iq2000_elf_relocate_section): Call it.
2963 2008-02-12 Nick Clifton <nickc@redhat.com>
2966 * elf-bfd.h (enum elf_object_id): New enum, used to identify
2967 target specific extensions to the elf_obj_tdata structure.
2968 (struct elf_obj_tdata): New field 'object_id'.
2969 (elf_object_id, elf_program_header_size, elf_symtab_hdr): New
2970 macros for accessing fields in the elf_obj_tdata structure.
2971 (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object.
2972 (bfd_elf_allocate_object): New function.
2973 * elf.c (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object
2974 and implement by calling bfd_elf_allocate_object.
2975 (bfd_elf_allocate_object): New function: Allocates an
2976 elf_obj_tdata structure, possibly with a target specific
2978 * elfxx-target.h (bfd_elfNN_mkobject): Use
2979 bfd_elf_make_generic_object as the default value.
2980 * elf32-arm.c (elf32_arm_obj_tdata): Rename to elf_arm_obj_tdata
2981 for consistency with other, similar structures.
2982 (is_arm_elf): New macro. Checks a BFD to make sure that is an ARM
2984 (elf32_arm_mkobject): Call bfd_elf_allocate_object.
2985 (bfd_elf32_arm_vfp11_erratum_scan): Use is_arm_elf macro to check
2986 the bfd being processed.
2987 (bfd_elf32_arm_vfp11_fix_veneer_locations): Likewise.
2988 (bfd_elf32_arm_set_target_relocs): Likewise.
2989 (bfd_elf32_arm_final_link_relocate): Likewise.
2990 (bfd_elf32_arm_copy_private_bfd_data): Likewise.
2991 (bfd_elf32_arm_merge_eabi_attributes): Likewise.
2992 (bfd_elf32_arm_merge_private_bfd_data): Likewise.
2993 (bfd_elf32_arm_check_relocs): Likewise.
2994 (bfd_elf32_arm_gc_mark_extra_sections): Likewise.
2995 (bfd_elf32_arm_size_dynamic_sections): Likewise.
2996 (bfd_elf32_arm_process_before_allocation): Use elf_symtab_hdr.
2997 (bfd_elf32_arm_init_maps): Likewise.
2998 (bfd_elf32_arm_final_link_relocate): Likewise.
2999 (bfd_elf32_arm_relocate_section): Likewise.
3000 (bfd_elf32_arm_gc_sweep_hook): Likewise.
3001 (bfd_elf32_arm_check_relocs): Likewise.
3002 (bfd_elf32_arm_size_dynamic_sections): Likewise.
3003 * elf32-i386.c (elf_i386_mkobject): Call bfd_elf_allocate_object.
3004 (is_i386_elf): New macro. Checks a BFD to make sure that is an x86
3006 (elf_i386_check_relocs): Use is_i386_elf macro to check the bfd
3008 (elf_i386_size_dynamic_sections): Likewise.
3009 (elf_i386_relocate_section): Likewise.
3010 (elf_i386_check_relocs): Use elf_symtab_hdr.
3011 (elf_i386_gc_sweep_hook): Likewise.
3012 (elf_i386_size_dynamic_sections): Likewise.
3013 (elf_i386_relocate_section): Likewise.
3014 * elf32-ppc.c (ppc_elf_mkobject): Call bfd_elf_allocate_object.
3015 (elf_create_pointer_linker_section): Use is_ppc_elf_target to
3016 verify that the bfd before accessing target specific fields.
3017 (ppc_elf_check_relocs): Likewise.
3018 (elf_finish_pointer_linker_section): Likewise.
3019 (elf_create_pointer_linker_section): Use elf_symtab_hdr.
3020 (ppc_elf_check_relocs): Likewise.
3021 (ppc_elf_gc_sweep_hook): Likewise.
3022 (ppc_elf_tls_optimize): Likewise.
3023 (ppc_elf_size_dynamic_sections): Likewise.
3024 (ppc_elf_relax_section): Likewise.
3025 (ppc_elf_relocate_section): Likewise.
3026 * elf32-s390.c (struct elf_s390_obj_tdata): Add a comment
3027 reminding programmers to keep this structure in sync with the one
3028 defined in elf64-s390.c.
3029 (elf_s390_mkobject): Call bfd_elf_allocate_object.
3030 (is_s390_elf): New macro. Checks a BFD to make sure that is an s390
3032 (elf_s390_check_relocs): Use is_s390_elf macro to check the bfd
3034 (elf_s390_size_dynamic_sections): Likewise.
3035 (elf_s390_relocate_section): Likewise.
3036 (elf_s390_check_relocs): Use elf_symtab_hdr.
3037 (elf_s390_gc_sweep_hook): Likewise.
3038 (elf_s390_size_dynamic_sections): Likewise.
3039 (elf_s390_relocate_section): Likewise.
3040 * elf32-sh.c (sh_elf_mkobject): Call bfd_elf_allocate_object.
3041 (is_sh_elf): New macro. Checks a BFD to make sure that is an SH
3043 (sh_elf_size_dynamic_sections): Use is_sh_elf macro to check the
3044 bfd being processed.
3045 (sh_elf_relocate_section): Likewise.
3046 (sh_elf_check_relocs): Likewise.
3047 (sh_elf_copy_private_data): Likewise.
3048 (sh_elf_relax_section): Use elf_symtab_hdr.
3049 (sh_elf_size_dynamic_sections): Likewise.
3050 (sh_elf_relocate_section): Likewise.
3051 (sh_elf_get_relocated_section_contents): Likewise.
3052 (sh_elf_gc_sweep_hook): Likewise.
3053 (sh_elf_check_relocs): Likewise.
3054 * elf64-alpha.c (elf64_alpha_mkobject): Call bfd_elf_allocate_object.
3055 (is_alpha_elf): New macro. Checks a BFD to make sure that is an
3057 (elf64_alpha_create_got_section): Use is_alpha_elf macro to check
3058 the bfd being processed.
3059 (elf64_alpha_create_dynamic_section): Likewise.
3060 (elf64_alpha_check_relocs): Likewise.
3061 (elf64_alpha_size_got_sections): Likewise.
3062 (elf64_alpha_relax_section): Likewise.
3063 (elf64_alpha_relocate_section): Likewise.
3064 (elf64_alpha_final_link): Likewise.
3065 (elf64_alpha_check_relocs): Use elf_symtab_hdr.
3066 (elf64_alpha_relax_section): Likewise.
3067 (elf64_alpha_relocate_section_r): Likewise.
3068 (elf64_alpha_relocate_section): Likewise.
3069 * elf64-ppc.c (ppc64_elf_mkobject): Call bfd_elf_allocate_object.
3070 (ppc64_elf_check_relocs): Use is_ppc64_elf_target to check the bfd
3072 (opd_entry_value): Likewise.
3073 (allocate_dynrelocs): Likewise.
3074 (ppc64_elf_relocate_section): Likewise.
3075 (ppc64_elf_check_relocs): Use elf_symtab_hdr.
3076 (opd_entry_value): Likewise.
3077 (ppc64_elf_gc_sweep_hook): Likewise.
3078 (get_sym_h): Likewise.
3079 (ppc64_elf_edit_opd): Likewise.
3080 (ppc64_elf_tls_optimize): Likewise.
3081 (ppc64_elf_edit_toc): Likewise.
3082 (ppc64_elf_size_dynamic_sections): Likewise.
3083 (toc_adjusting_stub_needed): Likewise.
3084 (ppc64_elf_size_stubs): Likewise.
3085 (ppc64_elf_relocate_section): Likewise.
3086 * elf64-s390.c (struct elf_s390_obj_tdata): Add a comment
3087 reminding programmers to keep this structure in sync with the one
3088 defined in elf32-s390.c.
3089 (elf_s390_mkobject): Call bfd_elf_allocate_object.
3090 (is_s390_elf): New macro. Checks a BFD to make sure that is an s390
3092 (elf_s390_check_relocs): Use is_s390_elf macro to check the bfd
3094 (elf_s390_size_dynamic_sections): Likewise.
3095 (elf_s390_relocate_section): Likewise.
3096 (elf_s390_check_relocs): Use elf_symtab_hdr.
3097 (elf_s390_gc_sweep_hook): Likewise.
3098 (elf_s390_size_dynamic_sections): Likewise.
3099 (elf_s390_relocate_section): Likewise.
3100 * elf64-x86_64.c (elf64_x86_64_mkobject): Call bfd_elf_allocate_object.
3101 (is_x86_64_elf): New macro. Checks a BFD to make sure that is an
3103 (elf64_x86_64_check_relocs): Use is_x86_64_elf macro to check the bfd
3105 (elf64_x86_64_size_dynamic_sections): Likewise.
3106 (elf64_x86_64_relocate_section): Likewise.
3107 (elf64_x86_64_check_relocs): Use elf_symtab_hdr.
3108 (elf64_x86_64_gc_sweep_hook): Likewise.
3109 (elf64_x86_64_size_dynamic_sections): Likewise.
3110 (elf64_x86_64_relocate_section): Likewise.
3111 * elfxx-sparc.c (_bfd_sparc_elf_mkobject): Call bfd_elf_allocate_object.
3112 (is_sparc_elf): New macro. Checks a BFD to make sure that is a Sparc
3114 (_bfd_sparc_elf_check_relocs): Use is_sparc_elf macro to check the
3115 bfd being processed.
3116 (_bfd_sparc_elf_gc_sweep_hook): Likewise.
3117 (_bfd_sparc_elf_size_dynamic_sections): Likewise.
3118 (_bfd_sparc_elf_check_relocs): Use elf_symtab_hdr.
3119 (_bfd_sparc_elf_gc_sweep_hook): Likewise.
3120 (_bfd_sparc_elf_size_dynamic_sections): Likewise.
3121 (_bfd_sparc_elf_relocate_section): Likewise.
3123 2008-02-12 Alan Modra <amodra@bigpond.net.au>
3126 * arange-set.c: Delete.
3127 * arange-set.h: Delete.
3128 * dwarf2.c: Revert 2007-09-21 changes.
3129 * Makefile.am: Likewise.
3130 * Makefile.in: Regenerate.
3131 * po/SRC-POTFILES.in: Regenerate.
3133 2008-02-11 Bernd Schmidt <bernd.schmidt@analog.com>
3135 * elf32-bfin.c (bfin_relocate_section): Set up dynobj before using it
3137 (elf32_bfin_merge_private_bfd_data): Simplify, and ensure object type
3138 mismatches are detected.
3140 * elf32-bfin.c (bfinfdpic_relocate_section): Take more care not to
3141 emit invalid relocs or rofixup entries for deleted .eh_frame entries.
3143 2008-02-11 Daniel Jacobowitz <dan@codesourcery.com>
3145 * cache.c (cache_bread): Set bfd_error_file_truncated if EOF
3147 * srec.c (srec_scan): Calculate the checksum. Complain on mismatch.
3149 2008-02-07 Alan Modra <amodra@bigpond.net.au>
3151 * elf32-spu.c (spu_elf_size_stubs): Revert 2008-01-28 doubling
3152 of _ovly_buf_table size.
3153 (spu_elf_build_stubs): Use low bit of .size as "present" bit.
3154 Adjust initialisations relating to _ovly_buf_table.
3156 2008-02-04 Bob Wilson <bob.wilson@acm.org>
3158 * elf32-xtensa (elf_xtensa_relocate_section): After finding an invalid
3159 relocation, do not continue processing it. Ignore R_XTENSA_ASM_EXPAND
3160 relocations against dynamic symbols.
3161 (elf_xtensa_finish_dynamic_sections): Do not fail if there is no
3164 2008-02-04 Kai Tietz <kai.tietz@onevision.com>
3165 H.J. Lu <hongjiu.lu@intel.com>
3168 * warning.m4: Enable -Wno-format by default when using gcc on
3170 * configure: Regenerated.
3172 2008-02-04 Adam Nemet <anemet@caviumnetworks.com>
3174 * archures.c: Update copyright.
3175 (bfd_mach_mips_octeon): New macro.
3176 * bfd-in2.h: Regenerate.
3177 * elfxx-mips.c (_bfd_elf_mips_mach): Handle Octeon.
3178 (mips_set_isa_flags): Likewise.
3179 (mips_mach_extensions): Add Octeon.
3180 * cpu-mips.c: Update copyright.
3181 (I_mipsocteon): New enum constant.
3182 (arch_info_struct): Add Octeon.
3184 2008-02-04 Alan Modra <amodra@bigpond.net.au>
3186 * elf32-spu.c (spu_elf_relocate_section): Correct return type.
3187 Return error status on unexpected relocation errors.
3189 2008-02-04 Alan Modra <amodra@bigpond.net.au>
3192 * elf.c (bfd_elf_get_elf_syms): Revert 2008-01-31. Instead abort
3194 * elf32-arm.c (elf32_arm_size_dynamic_sections): Skip glue
3195 processing on non-ELF input.
3197 2008-01-31 Marc Gauthier <marc@tensilica.com>
3199 * config.bfd (xtensa*-*-*): Recognize processor variants.
3201 2008-01-31 Nick Clifton <nickc@redhat.com>
3204 * elf.c (bfd_elf_get_elf_syms): Check the return value of
3205 get_elf_backend_data.
3207 2008-01-28 Fabian Groffen <grobian@gentoo.org>
3209 * config.bfd (x86_64-*-solaris2): Add support for this target.
3211 2008-01-28 Alan Modra <amodra@bigpond.net.au>
3213 Rewrite SPU overlay handling code. Put overlay calls stubs in the
3214 overlays where possible. Use a faster call stub, or optionally at
3215 compile time, a more compact stub. Double size of _ovly_buf_table
3216 so that low bit of _ovly_table.buf can be used as a "present" bit.
3217 Reserve an extra _ovly_table entry for index zero.
3218 * elf32-spu.c: (struct spu_link_hash_table): Delete a number of fields,
3220 (struct got_entry): New.
3221 (struct spu_stub_hash_entry): Delete.
3222 (stub_hash_newfunc, spu_elf_link_hash_table_free): Delete.
3223 (spu_elf_link_hash_table_create): Adjust for struct changes.
3224 (spu_stub_name): Delete.
3225 (spu_elf_find_overlays): Don't track sections from overlay regions.
3226 Instead set ovl_buf number in spu elf section data. Error if
3227 overlays in one region don't start at the same address. Adjust
3228 for struct _spu_elf_section_data changes.
3229 (SIZEOF_STUB1, SIZEOF_STUB2, ILA_79, ILA_78): Delete.
3230 (OVL_STUB_SIZE, BRSL, LNOP, ILA): Define.
3231 (needs_ovl_stub): Adjust for struct _spu_elf_section_data changes.
3232 (enum _insn_type): New.
3233 (count_stub, build_stub): New functions.
3234 (allocate_spuear_stubs): Use count_stub.
3235 (build_spuear_stubs): Use build_stub.
3236 (populate_stubs, sort_stubs): Delete.
3237 (process_stubs): New function.
3238 (write_one_stub): Delete.
3239 (spu_elf_size_stubs, spu_elf_build_stubs): Rewrite.
3240 (alloc_stack_info): Adjust for struct _spu_elf_section_data changes.
3241 (maybe_insert_function, check_function_ranges): Likewise.
3242 (find_function, pasted_function, build_call_tree): Likewise.
3243 (spu_elf_stack_analysis, spu_elf_modify_segment_map): Likewise.
3244 (spu_elf_modify_program_headers): Likewise.
3245 (interesting_section): Detect stub sections differently. Delete
3246 htab param, adjust all callers.
3247 (spu_elf_relocate_section): Rewrite stub handling.
3248 (spu_elf_output_symbol_hook): Likewise.
3249 (bfd_elf32_bfd_link_hash_table_free): Delete.
3250 * elf32-spu.h (struct _spu_elf_section_data): Move input-only and
3251 output-only fields into a union. Add ovl_buf.
3252 (spu_elf_size_stubs, spu_elf_build_stubs): Update prototypes.
3254 2008-01-25 DJ Delorie <dj@redhat.com>
3256 * elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): New.
3258 2008-01-25 Kai Tietz <kai.tietz@onevision.com>
3260 * bfd-in.h: Add mingw I64 support.
3261 * bfd-in2.h: Regenerated.
3262 * bfd.c: (bfd_get_sign_extend_vma): Add pe-x86-64 and pei-x86-64.
3264 2008-01-21 Alan Modra <amodra@bigpond.net.au>
3267 * format.c (bfd_check_format_matches): Don't accept archives as
3268 fully matching unless they have a map.
3270 2008-01-21 Alan Modra <amodra@bigpond.net.au>
3272 * elflink.c (_bfd_elf_link_output_relocs): Correct error return.
3274 2008-01-21 Alan Modra <amodra@bigpond.net.au>
3276 * ecoff.c (_bfd_ecoff_archive_p): Delete.
3277 * libecoff.h (_bfd_ecoff_archive_p): Delete.
3278 * coff-alpha.c (ecoffalpha_little_vec): Use bfd_generic_archive_p.
3279 * coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise.
3280 (ecoff_biglittle_vec): Likewise.
3282 2008-01-19 Alan Modra <amodra@bigpond.net.au>
3285 * elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr
3286 non-NULL before dereferencing.
3288 2008-01-15 Alan Modra <amodra@bigpond.net.au>
3291 * elf-bfd.h (struct elf_backend_data): Add gc_keep. Remove param
3293 (_bfd_elf_gc_keep): Declare.
3294 * elfxx-target.h (elf_backend_gc_keep): Define.
3295 (elfNN_bed): Init new field.
3296 * elflink.c (_bfd_elf_gc_keep): New function.
3297 (bfd_elf_gc_sections): Call gc_keep.
3298 * elf64-ppc.c (elf_backend_gc_keep): Define.
3299 (struct _ppc64_elf_section_data): Move .opd related fields to
3300 a struct so they don't occupy the same storage. Adjust accesses
3302 (ppc64_elf_gc_keep): New function, split out from..
3303 (ppc64_elf_gc_mark_hook): ..here. Don't call _bfd_elf_gc_mark
3304 to mark .opd section, just set gc_mark.
3305 (ppc64_elf_edit_opd): Remove no_opd_opt parm. Don't set opd->adjust
3306 unless we are changing .opd. Test non-NULL opd->adjust at all
3307 accesses throughout file.
3308 * elf64-ppc.h (ppc64_elf_edit_opd): Update prototype.
3310 2008-01-15 Alan Modra <amodra@bigpond.net.au>
3312 * bfd-in.h (BFD_HOST_LONG_LONG): Delete.
3313 * bfd-in2.h: Regenerate.
3315 2008-01-11 Tristan Gingold <gingold@adacore.com>
3316 Eric Botcazou <ebotcazou@adacore.com>
3318 * elf32-ppc.c (ppc_elf_gc_sweep_hook): Exit early if generating a
3320 * elf32-arm.c (elf32_arm_gc_sweep_hook): Likewise.
3321 * elf32-cris.c (cris_elf_gc_sweep_hook): Likewise.
3322 * elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise.
3323 * elf32-i386.c (elf_i386_gc_sweep_hook): Likewise.
3324 * elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise.
3325 * elf32-m68k.c (elf_m68k_gc_sweep_hook): Likewise.
3326 * elf32-s390.c (elf_s390_gc_sweep_hook): Likewise.
3327 * elf32-sh.c (sh_elf_gc_sweep_hook): Likewise.
3328 * elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
3329 * elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise.
3330 * elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise.
3331 * elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
3332 * elf64-ppc.c (ppc64_elf_gc_sweep_hook): Likewise.
3333 * elfxx-mips.c (_bfd_mips_elf_gc_sweep_hook): Likewise.
3334 * elfxx-sparc.c (_bfd_sparc_elf_gc_sweep_hook): Likewise.
3335 * elflink.c (bfd_elf_gc_sections): Do not punt on relocatable output
3336 or executable output with relocations.
3338 2008-01-09 Nick Clifton <nickc@redhat.com>
3341 * elf32-fr30.c (fr30_elf_howto_table): Set partial_inplace field
3342 to FALSE for all relocs.
3344 2008-01-09 Richard Sandiford <rsandifo@nildram.co.uk>
3347 * elf-bfd.h (eh_cie_fde): Add u.cie.u.full_cie and u.cie.merged
3348 fields. Rename u.cie.u.merged to u.cie.u.merged_with.
3349 (eh_frame_sec_info): Add a cies field.
3350 (eh_frame_hdr_info): Add a merge_cies field.
3351 * elf-eh-frame.c (cie): Add a reloc_index member to the personality
3353 (_bfd_elf_begin_eh_frame_parsing): Set hdr_info->merge_cies instead
3355 (_bfd_elf_parse_eh_frame): Remove tmp_cie. Ccreate an array of
3356 cie structures in all cases and use it instead of extended_cies.
3357 If merging, store the cie array in sec_info->cies and point each
3358 CIE's eh_fde_cie at the associated element. Do not try to
3359 calculate the value of the personality routine here; record the
3360 offset of the relocation instead. Do not merge CIEs here.
3361 (_bfd_elf_end_eh_frame_parsing): Do not free hdr_info->cies here...
3362 (_bfd_elf_discard_section_eh_frame_hdr): ...do it here instead.
3363 (_bfd_elf_gc_mark_fdes): Mark the original (unmerged) CIE.
3364 (find_merged_cie): New function.
3365 (_bfd_elf_gc_mark_fdes): Use it. Free sec_info->cies.
3367 2008-01-07 Nick Clifton <nickc@redhat.com>
3370 * vms.c (vms_close_and_cleanup): Check for the presence of a
3371 vms_private_data_struct before examining any of its fields.
3373 2008-01-07 H.J. Lu <hongjiu.lu@intel.com>
3376 * elflink.c (elf_link_input_bfd): Don't write out a section if
3377 its output section is marked with SEC_NEVER_LOAD.
3379 For older changes see ChangeLog-2007
3381 Copyright (C) 2008 Free Software Foundation, Inc.
3383 Copying and distribution of this file, with or without modification,
3384 are permitted in any medium without royalty provided the copyright
3385 notice and this notice are preserved.
3391 version-control: never