gmp-utils: New API to simply use of GMP's integer/rational/float objects
[binutils-gdb.git] / bfd / ChangeLog-2006
blobaf3cbd419717eabedd027261ae918725ba921912
1 2006-12-31  H.J. Lu  <hongjiu.lu@intel.com>
3         * bfd.c (bfd_record_phdr): Call bfd_zalloc instead of bfd_alloc
4         to allocate elf_segment_map.
6 2006-12-29  H.J. Lu  <hongjiu.lu@intel.com>
8         * elflink.c (elf_link_add_object_symbols): Remember the symbol
9         size only if it is defined.
11 2006-12-25  Kazu Hirata  <kazu@codesourcery.com>
13         * archures.c (bfd_mach_cpu32_fido): New.
14         (bfd_mach_mcf_isa_a_nodiv, bfd_mach_mcf_isa_a,
15         bfd_mach_mcf_isa_a_mac, bfd_mach_mcf_isa_a_emac,
16         bfd_mach_mcf_isa_aplus, bfd_mach_mcf_isa_aplus_mac,
17         bfd_mach_mcf_isa_aplus_emac, bfd_mach_mcf_isa_b_nousp,
18         bfd_mach_mcf_isa_b_nousp_mac, bfd_mach_mcf_isa_b_nousp_emac,
19         bfd_mach_mcf_isa_b, bfd_mach_mcf_isa_b_mac,
20         bfd_mach_mcf_isa_b_emac, bfd_mach_mcf_isa_b_float,
21         bfd_mach_mcf_isa_b_float_mac, bfd_mach_mcf_isa_b_float_emac):
22         Increment the defined values.
23         * bfd-in2.h: Regenerate.
24         * cpu-m68k.c (arch_info_struct): Add en entry for
25         bfd_mach_cpu32_fido.
26         * elf32-m68k.c (elf32_m68k_object_p): Handle
27         EF_M68K_CPU32_FIDO_A.
28         (elf32_m68k_merge_private_bfd_data): Use EF_M68K_CPU32_MASK.
29         (elf32_m68k_print_private_bfd_data): Handle
30         EF_M68K_CPU32_FIDO_A.
32 2006-12-25  Mei Ligang  <ligang@sunnorth.com.cn>
34         * elf32-score.c (score_elf_got_lo16_reloc): Change some variables
35         type from unsigned to signed.
36         (score_elf_final_link_relocate): Fix bugs of handling relocation
37         type R_SCORE_GOT15, R_SCORE_GOT_LO16, and R_SCORE_REL32.
38         (_bfd_score_elf_relocate_section): Handle R_SCORE_GOT_LO16
39         specially.
41 2006-12-23  Jakub Jelinek  <jakub@redhat.com>
43         * elf-bfd.h (struct elf_backend_data): Add as_needed_cleanup hook.
44         * elfxx-target.h (elf_backend_as_needed_cleanup): Define.
45         (elfNN_bed): Add as_needed_cleanup hook.
46         * elflink.c (elf_link_add_object_symbols): Call it when reverting
47         hash table changes for unneeded --as-needed input.
48         * elf64-ppc64.c (elf_backend_as_needed_cleanup): Define.
49         (ppc64_elf_as_needed_cleanup): New function.
51 2006-12-19  Kazu Hirata  <kazu@codesourcery.com>
53         * elf32-m68k.c (elf32_m68k_object_p,
54         elf32_m68k_print_private_bfd_data): Use EF_M68K_ARCH_MASK to
55         extract architecture mask.
57 2006-12-19  Nathan Sidwell  <nathan@codesourcery.com>
59         * elf.c (assign_file_positions_for_load_sections): Adjust p_vaddr
60         by p_vaddr_offset.  Copy alignment & use if it is valid.
61         (rewrite_elf_program_headers): Cope with leading padding in a
62         segment that does not contain file or program headers.
63         (copy_elf_program_header): Likewise.
65 2006-12-15  Mark Kettenis  <kettenis@gnu.org>
67         * config.bfd: (sh*-*-openbsd*): Add target.
68         * configure.in (sh*-*-openbsd*): Set COREFILE to netbsd-core.lo.
69         * configure: Regenerate.
71 2006-12-15  Alan Modra  <amodra@bigpond.net.au>
73         * opncls.c (bfd_openr_iovec): Add "stat" parameter.
74         (struct opncls): Add "stat" field.
75         (opncls_bstat): Call vec->stat.
76         * bfd-in2.h: Regenerate.
77         * elf32-spu.c (spu_elf_open_builtin_lib): Adjust.
79 2006-12-14  Alan Modra  <amodra@bigpond.net.au>
81         * elf-bfd.h (struct bfd_elf_section_data): Clarify sec_group
82         and next_in_group usage.
84 2006-12-14  Alan Modra  <amodra@bigpond.net.au>
86         PR 3704
87         * bfdio.c (bfd_bread): Don't read past end of archive elements.
89 2006-12-12  Daniel Jacobowitz  <dan@codesourcery.com>
91         * doc/Makefile.am (bfd_TEXINFOS): Set.
92         (bfd.info bfd.dvi bfd.html): Delete rule.
93         * doc/Makefile.in: Regenerated.
95 2006-12-11  Daniel Jacobowitz  <dan@codesourcery.com>
97         * configure.in: Define GENINSRC_NEVER.
98         * doc/Makefile.am (bfd.info): Remove srcdir prefix.
99         (MAINTAINERCLEANFILES): Add info file.
100         (DISTCLEANFILES): Pretend to add info file.
101         * po/Make-in (.po.gmo): Put gmo files in objdir.
102         * configure, Makefile.in, doc/Makefile.in: Regenerated.
104 2006-12-11  Eric Botcazou  <ebotcazou@adacore.com>
106         * elflink.c (bfd_elf_gc_sections): Also search for corresponding
107         sections with .gnu.linkonce.t. prefix.
109 2006-12-07  Kazu Hirata  <kazu@codesourcery.com>
111         * elf32-m68k.c: Update uses of EF_M68K_*.
113 2006-12-07  H.J. Lu <hjl@gnu.org>
115         PR ld/3666
116         * elflink.c (elf_link_add_object_symbols): Keep symbol
117         visibility for symbols from discarded section.
119 2006-12-06  Alan Modra  <amodra@bigpond.net.au>
121         * elf64-alpha.c (elf64_alpha_merge_symbol_attribute): New function.
122         (elf_backend_merge_symbol_attribute): Define.
124 2006-12-04  Jan Beulich  <jbeulich@novell.com>
126         * elflink.c (_bfd_elf_link_create_dynamic_sections): Don't create
127         .eh_frame_hdr section from here anymore.
128         (bfd_elf_size_dynamic_sections): Call _bfd_elf_maybe_strip_eh_frame_hdr
129         a little earlier.
131 2006-12-01  H.J. Lu  <hongjiu.lu@intel.com>
133         PR binutils/3609
134         * elf.c (rewrite_elf_program_header): Preserve segment physical
135         address in the output segment if the first section in the
136         corresponding input segment is null.
138 2006-12-01  Nick Clifton  <nickc@redhat.com>
140         PR 3609
141         * elf.c (rewrite_elf_program_header): Do not use the first_section
142         pointer if it is null.
144 2006-11-29  Paul Brook  <paul@codesourcery.com>
146         * elf32-arm.c (elf32_arm_to_thumb_export_stub): Assert that output
147         section is present.
148         (allocate_dynrelocs): Only add export stub for symbols defined in
149         this object.
151 2006-11-29  Paul Brook  <paul@codesourcery.com>
153         * elf32-arm.c (elf32_arm_to_thumb_export_stub): Assert that output
154         section is present.
155         (allocate_dynrelocs): Only add export stub for symbols defined in
156         this object.
158 2006-11-29  Paul Brook  <paul@codesourcery.com>
159         Julian Brown  <julian@codesourcery.com>
161         * elf32-arm.c (copy_eabi_attributes): Correct starting offset.
162         (elf32_arm_merge_eabi_attributes): Mark output as initialized.
163         Only set Tag_CPU_name and Tag_ABI_PCS_R9_use if input attribute
164         is present.
166 2006-11-27  Bob Wilson  <bob.wilson@acm.org>
168         * elf32-xtensa.c (elf_xtensa_special_sections): Add .xtensa.info.
170 2006-11-24  H.J. Lu  <hongjiu.lu@intel.com>
172         * elf.c (IS_SECTION_IN_INPUT_SEGMENT): New.
173         (INCLUDE_SECTION_IN_SEGMENT): Use IS_SECTION_IN_INPUT_SEGMENT.
174         (rewrite_elf_program_header): Don't preserve segment physical
175         address in the output segment if the first section in the
176         corresponding input segment is removed.
178 2006-11-22  Alan Modra  <amodra@bigpond.net.au>
180         * pef.c (bfd_pef_make_empty_symbol): Delete function.  Define instead.
181         * xsym.c (bfd_sym_make_empty_symbol): Likewise.
182         * xsym.h (bfd_sym_make_empty_symbol): Delete.
184 2006-11-21  Greg McGary  <greg@mcgary.org>
186         * elf32-ppc.c (ppc_elf_relocate_section): Fixup D field
187         at proper offset in little-endian mode.
188         * elf64-ppc.c (ppc_elf_relocate_section): Likewise.
190 2006-11-21  Jakub Jelinek  <jakub@redhat.com>
192         * elf-eh-frame.c (struct cie): New type.
193         (cie_compare): Removed.
194         (cie_eq, cie_hash, cie_compute_hash): New functions.
195         (_bfd_elf_discard_section_eh_frame): Rewrite not to rely on FDEs
196         pointing only to last CIE and allow merging of any duplicate CIEs,
197         not just duplicate consecutive CIEs.
198         (_bfd_elf_discard_section_eh_frame_hdr): Delete cies hash table.
199         * elf-bfd.h (struct cie_header, struct cie): Removed.
200         (struct eh_frame_sec_info): Remove alloced field.
201         (struct eh_frame_hdr_info): Remove last_cie, last_cie_sec
202         and last_cie_inf fields.  Add cies field.
204 2006-11-20  Alan Modra  <amodra@bigpond.net.au>
206         * bfd-in.h (struct stat): Don't typedef.
207         * bfdio.c (bfd_get_size): Return a file_ptr.
208         * cisco-core.c (cisco_core_file_validate): Use bfd_size_type for nread.
209         * mmo.c (mmo_scan): Use file_ptr for curpos.
210         * trad-core.c (trad_unix_core): Don't cast statbuf.st_size to
211         unsigned long.
212         * bfd-in2.h: Regenerate.
214 2006-11-20  Alan Modra  <amodra@bigpond.net.au>
216         PR 3532
217         * bfd-in.h (struct bfd_hash_table): Reorganize.  Add "frozen".
218         * hash.c (bfd_hash_table_init_n): Init frozen.
219         (bfd_hash_lookup): Don't grow if frozen.
220         (bfd_hash_traverse): Freeze hash table during traversal.
221         * bfd-in2.h: Regenerate.
223 2006-11-18  Alan Modra  <amodra@bigpond.net.au>
225         * elflink.c (_bfd_elf_check_kept_section): Test for kept group
226         section.  Save result of checks in kept_section.
227         (_bfd_elf_section_already_linked): Tidy.  Correct comments.
228         Ignore all group member sections.  Handle special matching of
229         single-member groups against linkonce sections via their group
230         section.  When such a match is found, set kept_section to the
231         group member section rather than to the group.
233 2006-11-14  Phil Lello  <phil.lello@homecall.co.uk>
235         * peXXigen.c: Updates for PE/COFF V8.0, and clarification
236         (dir_names): Added CLR Runtime Header to dir_names[].
237         (_bfd_XX_print_private_bfd_data_common): Added EFI_ROM and XBOX
238         subsystem names
239         (_bfd_XXi_swap_aouthdr_in, _bfd_XXi_swap_aouthdr_out)
240         (pe_print_idata, pe_print_edata)
241         (_bfd_XX_bfd_copy_private_bfd_data_common)
242         (_bfd_XXi_final_link_postscript): Use #DEFINEs for index into
243         DataDirectory.
245 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
247         * bfd-in.h (bfd_elf32_arm_process_before_allocation): Update
248         prototype.
249         (bfd_elf32_arm_set_byteswap_code): New prototype.
250         * bfd-in2.h: Regenerate.
251         * elf32-arm.c (bfd_elf32_arm_process_before_allocation): Don't take
252         byteswap_code as an argument.  Revert 2006-11-01 change.
253         (bfd_elf32_arm_set_byteswap_code): New.
254         (elf32_arm_size_dynamic_sections): Call
255         bfd_elf32_arm_process_before_allocation.
257 2006-11-10  Thiemo Seufer  <ths@mips.com>
259         * config.bfd (mips*el-sde-elf*, mips*-sde-elf*): Drop ECOFF support
260         for SDE configs.
262 2006-11-10  Nick Clifton  <nickc@redhat.com>
264         * config.bfd: Move previously obsoleted targets to the REMOVED
265         list.
266         Add maxq-*-coff to the obsolete list.
268 2006-11-10  Pedro Alves  <pedro_alves@portugalmail.pt>
270         * pe-arm-wince.c (LOCAL_LABEL_PREFIX): Define as ".".
271         * pei-arm-wince.c (LOCAL_LABEL_PREFIX): Likewise.
272         * coff-arm.c (LOCAL_LABEL_PREFIX): Only define if not defined before.
274 2006-11-07  Daniel Jacobowitz  <dan@codesourcery.com>
276         * elf32-arm.c (find_thumb_glue): Add ERROR_MESSAGE argument; set it
277         on error.
278         (find_arm_glue): Likewise.
279         (elf32_thumb_to_arm_stub, elf32_arm_create_thumb_stub)
280         (elf32_arm_to_thumb_stub, elf32_arm_final_link_relocate): Add
281         ERROR_MESSAGE argument and pass it through.
282         (elf32_arm_to_thumb_export_stub): Update.
283         (elf32_arm_relocate_section): Use ERROR_MESSAGE and reloc_dangerous.
285 2006-11-07  Alan Modra  <amodra@bigpond.net.au>
287         * elf64-ppc.c (enum _ppc64_sec_type): New.
288         (struct _ppc64_elf_section_data): Move "t_symndx" into opd union,
289         and rename fields.  Add sec_type and has_14bit_branch.
290         (struct ppc_link_hash_table): Remove has_14bit_branch.
291         (get_opd_info, get_tls_mask, ppc64_elf_edit_opd): Adjust.
292         (ppc64_elf_relocate_section): Likewise.
293         (ppc64_elf_check_relocs): Likewise.  Set per-section has_14bit_branch.
294         (ppc64_elf_size_stubs): Don't set default group size here.
295         (group_sections): Instead do so here, and group sections using
296         their individual requirements.
298 2006-11-07  Alan Modra  <amodra@bigpond.net.au>
300         * elf64-ppc.c (struct ppc64_elf_obj_tdata): Remove "has_dotsym"
301         and union.
302         (struct ppc_link_hash_entry): Add "next_dot_sym".
303         (struct ppc_link_hash_table): Add "dot_syms".
304         (link_hash_newfunc): Make list of syms starting with a dot.
305         (ppc_get_stub_entry, adjust_opd_syms): Adjust.
306         (ppc64_elf_add_symbol_hook): Don't set has_dotsym.
307         (struct add_symbol_adjust_data): Delete.
308         (add_symbol_adjust): Simplify params and return.
309         (ppc64_elf_check_directives): Just process the "dot_syms" lists,
310         not all syms.
312 2006-11-02  Daniel Jacobowitz  <dan@codesourcery.com>
314         * libbfd-in.h (_bfd_clear_contents): New prototype.
315         * reloc.c (_bfd_clear_contents): New.
316         * libbfd.h: Regenerated.
318         * elf32-arm.c (elf32_arm_final_link_relocate): Use
319         _bfd_clear_contents.
320         * elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
321         * elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
322         * elf32-i386.c (elf_i386_relocate_section): Likewise.
323         * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
324         * elf32-s390.c (elf_s390_relocate_section): Likewise.
325         * elf32-sh.c (sh_elf_relocate_section): Likewise.
326         * elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
327         * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
328         * elf64-s390.c (elf_s390_relocate_section): Likewise.
329         * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
330         * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Likewise.
332         * elfxx-ia64.c (elfNN_ia64_relocate_section): Set value to
333         zero for discarded symbols.
334         * elfxx-mips.c (mips_elf_calculate_relocation): Likewise.
336 2006-11-01  Thiemo Seufer  <ths@mips.com>
337             David Ung  <davidu@mips.com>
339         * elf-bfd.h (local_call_stubs): New member.
340         * elfxx-mips.c (FN_STUB_P, CALL_STUB_P, CALL_FP_STUB_P): New macros.
341         (mips_elf_calculate_relocation): Handle local mips16 call stubs.
342         (mips16_stub_section_p): Rename from mips_elf_stub_section_p, use
343         the new stub macros.
344         (_bfd_mips_elf_check_relocs): Handle call stubs for code which
345         mixes mips16 and mips32 functions. Use mips16_stub_section_p. Mark
346         used stubs with SEC_KEEP. Use the new stub macros.
348 2006-11-01  Alan Modra  <amodra@bigpond.net.au>
350         * elf32-arm.c (bfd_elf32_arm_process_before_allocation): Correct
351         check for PLT usage.
353 2006-11-01  Daniel Jacobowitz  <dan@codesourcery.com>
355         * elfxx-mips.c (mips_elf_merge_gots): Always use maxcnt.
357 2006-10-31  Alan Modra  <amodra@bigpond.net.au>
359         * elf.c (elfcore_write_note): Pad note descriptor to 4-byte
360         boundary.  Tidy.  Comment.
362 2006-10-30  H.J. Lu  <hongjiu.lu@intel.com>
364         PR ld/3111
365         * elf-bfd.h (elf_obj_tdata): Add symbuf.
366         (_bfd_elf_section_already_linked): Add struct bfd_link_info *.
367         (_bfd_elf_check_kept_section): Likewise.
368         (bfd_elf_match_symbols_in_sections): Likewise.
370         * elf.c (assign_section_numbers): Updated to add
371         struct bfd_link_info *.
372         (bfd_elf_match_symbols_in_sections): Updated. Cache symbol
373         buffer if info->reduce_memory_overheads is false.
375         * elflink.c (match_group_member): Updated to add
376         struct bfd_link_info *.
377         (_bfd_elf_check_kept_section): Likewise.
378         (elf_link_input_bfd): Likewise.
379         (_bfd_elf_section_already_linked): Likewise.
380         (bfd_elf_final_link): Free symbol buffer if
381         info->reduce_memory_overheads is false.
383         * libbfd-in.h (_bfd_nolink_section_already_linked): Add
384         struct bfd_link_info *.
385         (_bfd_generic_section_already_linked): Likewise.
386         * libbfd.h: Regenerated.
388         * linker.c (bfd_section_already_linked): Add
389         struct bfd_link_info *.
390         (_bfd_generic_section_already_linked): Likewise.
391         * targets.c (bfd_target): Add struct bfd_link_info * to
392         _section_already_linked.
393         * bfd-in2.h: Regenerated.
395 2006-10-30  Alan Modra  <amodra@bigpond.net.au>
397         * bfd.c (bfd_error_type): Add bfd_error_on_input.
398         (input_bfd, input_error): New static vars.
399         (bfd_set_error): Handle bfd_error_on_input.
400         (bfd_errmsg): Likewise.
401         (bfd_perror): Simplify.
402         * archive.c (_bfd_write_archive_contents): Report errors on input.
403         * bfd-in2.h: Regenerate.
405 2006-10-30  Alan Modra  <amodra@bigpond.net.au>
407         * elf.c (elfcore_write_note): Pad to 4-byte boundary.
409 2006-10-28  Richard Sandiford  <richard@codesourcery.com>
411         * elf32-mips.c (elf_mips_howto_table_rel): Add R_MIPS_GLOB_DAT.
412         * elfn32-mips.c (elf_mips_howto_table_rel): Likewise.
413         (elf_mips_howto_table_rela): Likewise.
414         * elf64-mips.c (mips_elf64_howto_table_rel): Likewise.
415         (mips_elf64_howto_table_rela): Likewise.
417 2006-10-26  H.J. Lu  <hongjiu.lu@intel.com>
419         * elf.c (_bfd_elf_init_private_section_data): Assert output
420         section ELF type instead of check if it is SHT_NULL.  Copy
421         OS/PROC specific flags from input section to output section.
423 2006-10-27  Alan Modra  <amodra@bigpond.net.au>
425         * section.c (SEC_KEEP): Update comment.
426         * bfd-in2.h: Regenerate.
427         * elflink.c (bfd_elf_gc_sections): Ignore SEC_EXCLUDE sections.
428         * merge.c (_bfd_merge_sections): Set SEC_KEEP on excluded sections.
429         * stabs.c (_bfd_discard_section_stabs): Likewise.
430         (_bfd_link_section_stabs): Likewise.  Simplify abs_section check.
432 2006-10-26  Ben Elliston  <bje@au.ibm.com>
434         * reloc.c (_bfd_relocate_contents): Remove explicit case 0.
436         * elf.c (bfd_section_from_shdr): Remove extraneous breaks.
437         * targets.c (find_target): Remove extraneous break.
439 2006-10-26  Ben Elliston  <bje@au.ibm.com>
441         * coff-maxq.c (coff_maxq20_reloc): Remove unused variable `howto'.
442         (struct maxq_reloc_map): Unused; remove.
443         (maxq_reloc_map): Likewise.
444         (maxq_reloc_type_lookup): Remove loop over maxq_reloc_map.
446 2006-10-26  Ben Elliston  <bje@au.ibm.com>
448         * elf.c (bfd_elf_set_dyn_lib_class): Change second argument type
449         from int to enum dynamic_lib_link_class lib_class.
450         * bfd-in.h (bfd_elf_set_dyn_lib_class): Likewise.
451         * bfd-in2.h: Regenerate.
453 2006-10-25  Alan Modra  <amodra@bigpond.net.au>
454             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
455             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
456             Nobuhisa Fujinami  <fnami@rd.scei.sony.co.jp>
457             Takeaki Fukuoka  <fukuoka@rd.scei.sony.co.jp>
459         * cpu-spu.c: New file.
460         * elf32-spu.c: New file.
461         * elf32-spu.h: New file.
462         * archures.c: Add SPU support.
463         * config.bfd: Likewise.
464         * configure.in: Likewise.
465         * reloc.c: Likewise.
466         * targets.c: Likewise.
467         * Makefile.am: Likewise.  Run "make dep-am".
468         * libbfd.h: Regenerate.
469         * bfd-in2.h: Regenerate.
470         * Makefile.in: Regenerate.
471         * configure: Regenerate.
472         * po/SRC-POTFILES.in: Regenerate.
474 2006-10-23  Alan Modra  <amodra@bigpond.net.au>
476         * elf64-ppc.c (ppc64_elf_edit_opd): Clarify comment.
478 2006-10-23  Alan Modra  <amodra@bigpond.net.au>
480         * elf32-score.c: Formatting.
481         (elf_backend_omit_section_dynsym): Define.
482         (score_elf_create_dynamic_relocation): Remove code copied from mips.
483         Don't use section syms in dynamic relocs.  Remove unused param.
484         (score_elf_final_link_relocate): Remove unused param.
486 2006-10-23  Alan Modra  <amodra@bigpond.net.au>
488         * linker.c (fix_syms): Choose best of previous and next
489         section based on section flags and vma.
491 2006-10-21  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
493         * elf32-sh64.c (sh64_elf_merge_symbol_attribute): Do merging
494         only when the non visibility part of st_other is non-zero.
495         * elf64-sh64.c (sh64_elf64_merge_symbol_attribute): Likewise.
497 2006-10-20  Richard Sandiford  <richard@codesourcery.com>
499         * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Don't extend
500         PT_DYNAMIC on GNU/Linux targets.
502 2006-10-20  Richard Sandiford  <richard@codesourcery.com>
504         * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Make the
505         size of .rel.dyn reflect the value of DT_RELSZ.
507 2006-10-20  Richard Sandiford  <richard@codesourcery.com>
509         * elfxx-mips.c (_bfd_mips_elf_additional_program_headers): Allocate
510         a PT_NULL header for dynamic objects.
511         (_bfd_mips_elf_modify_segment_map): Add it.
513 2006-10-19  Mei Ligang  <ligang@sunnorth.com.cn>
515         * elf32-score.c (score_elf_rel_dyn_section): Replace
516         bfd_make_section with bfd_make_section_with_flags.
517         (_bfd_score_elf_create_dynamic_sections): Ditto.
518         (score_elf_create_got_section): Ditto.
519         (score_elf_final_link_relocate): Delete referrence to
520         EF_SCORE_HASENTRY.
522 2006-10-19  Richard Sandiford  <richard@codesourcery.com>
524         * elfxx-mips.c (sort_dynamic_relocs): Sort relocations against the
525         same symbol by increasing r_offset.
526         (sort_dynamic_relocs_64): Likewise.  Fix comparisons between very
527         large and very small symbol indexes.
529 2006-10-19  Richard Sandiford  <richard@codesourcery.com>
531         * elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Add DT_DEBUG
532         and DT_MIPS_RLD_MAP tags for position-independent executables.
533         Do not add DT_DEBUG to shared libraries for any MIPS target.
535 2006-10-18  H.J. Lu  <hongjiu.lu@intel.com>
537         PR ld/3290
538         * elflink.c (elf_link_add_object_symbols): Hide definitions in
539         debug sections.
541 2006-10-19  Alan Modra  <amodra@bigpond.net.au>
543         * elf32-arm.c (bfd_elf32_arm_allocate_interworking_sect): Check,
544         don't set, glue section size.
545         (record_arm_to_thumb_glue): Set glue section size here.
546         (record_thumb_to_arm_glue): Likewise.
547         (bfd_elf32_arm_add_glue_sections_to_bfd): Formatting.
548         (bfd_elf32_arm_process_before_allocation): Ignore exluded sections.
550 2006-10-18  Roy Marples  <uberlord@gentoo.org>
552         * elf64-sparc.c: Add FreeBSD support.
553         (elf64_sparc_fbsd_post_process_headers): New function.
554         * targets.c (_bfd_target_vector): Add bfd_elf64_sparc_freebsd_vec.
555         * config.bfd (sparc64-*-freebsd*): Set targ_defvec to bfd_elf64_sparc_freebsd_vec.
556         * configure.in: Add entry for bfd_elf64_sparc_freebsd_vec.
557         * configure: Regenerate.
559 2006-10-17  Mark Shinwell  <shinwell@codesourcery.com>
561         * elf32-arm.c (elf32_arm_final_link_relocate): Add support for
562         R_ARM_MOVW_BREL_NC, R_ARM_MOVW_BREL, R_ARM_MOVT_BREL,
563         R_ARM_THM_MOVW_BREL_NC, R_ARM_THM_MOVW_BREL and
564         R_ARM_THM_MOVT_BREL relocations.
566 2006-10-17  Mark Shinwell  <shinwell@codesourcery.com>
568         * elf32-arm.c (elf32_arm_howto_table_1): Change offset for
569         R_THM_CALL to 25 and remove FIXME comment.
570         (using_thumb2): New function.
571         (elf32_arm_final_link_relocate): Cope with Thumb-2 BL encoding.
573 2006-10-17  Mark Shinwell  <shinwell@codesourcery.com>
575         * elf32-arm.c (elf32_arm_final_link_relocate): Add cases
576         for R_ARM_ABS32_NOI and R_ARM_REL32_NOI.
577         (elf32_arm_gc_sweep_hook): Likewise.
578         (elf32_arm_check_relocs): Likewise.
579         (allocate_dynrelocs): Likewise.
581 2006-10-17  Alan Modra  <amodra@bigpond.net.au>
583         * elf-bfd.h (struct elf_link_hash_table): Reorder.  Add
584         text_index_section and data_index_section.
585         (struct elf_backend_data): Add elf_backend_init_index_section.
586         (_bfd_elf_init_1_index_section): Declare.
587         (_bfd_elf_init_2_index_sections): Declare.
588         * elfxx-target.h (elf_backend_init_index_section): Define.
589         (elfNN_bed): Init new field.
590         * elflink.c (_bfd_elf_link_omit_section_dynsym): Keep first tls
591         section and text_index_section plus data_index_section.
592         (_bfd_elf_link_renumber_dynsyms): Clear dynindx on omitted sections.
593         (_bfd_elf_init_1_index_section): New function.
594         (_bfd_elf_init_2_index_sections): New function.
595         (bfd_elf_size_dynsym_hash_dynstr): Call elf_backend_init_index_section.
596         (elf_link_input_bfd): When emitting relocs, use text_index_section
597         and data_index_section for removed sections.
598         * elf-m10300.c (elf_backend_omit_section_dynsym): Define.
599         * elf32-i386.c: Likewise.
600         * elf32-m32r.c: Likewise.
601         * elf32-sh.c: Likewise.
602         * elf32-xstormy16.c: Likewise.
603         * elf32-xtensa.c: Likewise.
604         * elf64-alpha.c: Likewise.
605         * elf64-hppa.c: Likewise.
606         * elf64-mmix.c: Likewise.
607         * elf64-sh64.c: Likewise.
608         * elfxx-ia64.c: Likewise.
609         * elf32-arm.c (elf32_arm_final_link_relocate): Use text_index_section
610         and data_index_section sym for relocs against sections with no dynamic
611         section sym.
612         (elf_backend_init_index_section): Define.
613         * elf32-cris.c: Similarly.
614         * elf32-hppa.c: Similarly.
615         * elf32-i370.c: Similarly.
616         * elf32-m68k.c: Similarly.
617         * elf32-mips.c: Similarly.
618         * elf32-ppc.c: Similarly.
619         * elf32-s390.c: Similarly.
620         * elf32-sparc.c: Similarly.
621         * elf32-vax.c: Similarly.
622         * elf64-mips.c: Similarly.
623         * elf64-ppc.c: Similarly.
624         * elf64-s390.c: Similarly.
625         * elf64-sparc.c: Similarly.
626         * elf64-x86-64.c: Similarly.
627         * elfn32-mips.c: Similarly.
628         * elfxx-mips.c: Similarly.
629         * elfxx-sparc.c: Similarly.
630         * linker.c (fix_syms): Base symbols in removed sections on
631         previous section in preference to using absolute section.
633 2006-10-16  Andreas Schwab  <schwab@suse.de>
635         * elfxx-ia64.c (addend_compare): Properly compute return value.
637 2006-10-15  H.J. Lu  <hongjiu.lu@intel.com>
639         PR ld/3314
640         * elf.c (assign_file_positions_for_non_load_sections): Don't
641         page align empty SHF_ALLOC sections.
643 2006-10-13  Jakub Jelinek  <jakub@redhat.com>
645         * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_sections): Set
646         .plt sh_entsize to 0 if plt header size isn't multiple of
647         plt entry size or for 32-bit which adds a nop insn at the
648         end of the .plt section.
650 2006-10-12  Bob Wilson  <bob.wilson@acm.org>
652         * elf32-xtensa.c (elf_xtensa_action_discarded): New.
653         (elf_backend_action_discarded): Define.
655 2006-10-11  Bob Wilson  <bob.wilson@acm.org>
657         * elf32-xtensa.c (elf_xtensa_relocate_section): Return after
658         unresolvable relocation error.
659         (elf_xtensa_finish_dynamic_symbol): Set value of undefined, weak
660         symbols to zero.
662 2006-10-10  Bob Wilson  <bob.wilson@acm.org>
664         * elf32-xtensa.c (elf_xtensa_size_dynamic_sections): Add DT_DEBUG
665         for PIE executables.
667 2006-10-03  Jakub Jelinek  <jakub@redhat.com>
669         * elf-bfd.h (struct eh_cie_fde): Add set_loc pointer.
670         * elf-eh-frame.c (skip_cfa_op): Fix handling of DW_CFA_advance_loc.
671         Handle DW_CFA_{remember,restore}_state, DW_CFA_GNU_window_save,
672         DW_CFA_val_{offset{,_sf},expression}.
673         (skip_non_nops): Record number of DW_CFA_set_loc ops.
674         (_bfd_elf_discard_section_eh_frame): Require skip_non_nops recognizes
675         all ops.  If there are any DW_CFA_set_loc ops and they are pcrel
676         or going to be pcrel, compute set_loc array.
677         (_bfd_elf_eh_frame_section_offset): If make_relative, kill relocations
678         against DW_CFA_set_loc operands.
679         (_bfd_elf_write_section_eh_frame): Handle DW_CFA_set_loc adjusting.
681 2006-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
683         * elflink.c (_bfd_elf_merge_symbol): Discard references to TLS
684         symbols from the --just-syms file.
686 2006-10-01  Alan Modra  <amodra@bigpond.net.au>
688         * elf64-ppc.c (ppc64_elf_build_stubs): Test glink size for
689         existence of PLT.
691 2006-09-29  H.J. Lu  <hongjiu.lu@intel.com>
693         PR ld/3283
694         * elf64-x86-64.c (elf64_x86_64_relocate_section): Don't ignore
695         relocation overflow on branches to undefweaks.
697 2006-09-29  Alan Modra  <amodra@bigpond.net.au>
699         * po/BLD-POTFILES.in: Regenerate.
700         * po/SRC-POTFILES.in: Regenerate.
702 2006-09-29  Danny Smith  <dannysmith@users.sourceforge.net>
704         PR 3276
705         * pei-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Enable 16 byte
706         alignment for .data$, .rdata$ and .text$ sections so that sse
707         and sse2 code will work for linkonce sections too.
708         * pe-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Likewise.
710 2006-09-28  Alan Modra  <amodra@bigpond.net.au>
712         * elflink.c (_bfd_elf_gc_mark_hook): New function.
713         * elf-bfd.h (_bfd_elf_gc_mark_hook): Declare.
714         * elfxx-target.h (elf_backend_gc_mark_hook): Default to above.
715         * elf-m10300.c (mn10300_elf_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
716         * elf32-arm.c (elf32_arm_gc_mark_hook): Likewise.
717         * elf32-cris.c (cris_elf_gc_mark_hook): Likewise.
718         * elf32-hppa.c (elf32_hppa_gc_mark_hook): Likewise.
719         * elf32-i386.c (elf_i386_gc_mark_hook): Likewise.
720         * elf32-m32r.c (m32r_elf_gc_mark_hook): Likewise.
721         * elf32-m68k.c (elf_m68k_gc_mark_hook): Likewise.
722         * elf32-mcore.c (mcore_elf_gc_mark_hook): Likewise.
723         * elf32-ppc.c (ppc_elf_gc_mark_hook): Likewise.
724         * elf32-s390.c (elf_s390_gc_mark_hook): Likewise.
725         * elf32-score.c (_bfd_score_elf_gc_mark_hook): Likewise.
726         * elf32-sh.c (sh_elf_gc_mark_hook): Likewise.
727         * elf32-vax.c (elf_vax_gc_mark_hook): Likewise.
728         * elf32-xtensa.c (elf_xtensa_gc_mark_hook): Likewise.
729         * elf64-mmix.c (mmix_elf_gc_mark_hook): Likewise.
730         * elf64-s390.c (elf_s390_gc_mark_hook): Likewise.
731         * elf64-x86-64.c (elf64_x86_64_gc_mark_hook): Likewise.
732         * elfxx-mips.c (_bfd_mips_elf_gc_mark_hook): Likewise.
733         * elfxx-sparc.c (_bfd_sparc_elf_gc_mark_hook): Likewise.
734         * elf32-bfin.c (bfin_gc_mark_hook): Likewise.
735         (bfinfdpic_gc_sweep_hook): Delete.
736         (elf_backend_gc_sweep_hook): Don't define for elf32-bfinfdpic.
737         * elf32-d10v.c (elf32_d10v_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
738         (elf32_d10v_gc_sweep_hook): Delete.
739         (elf_backend_gc_sweep_hook): Don't define.
740         * elf32-fr30.c (fr30_elf_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
741         (fr30_elf_gc_sweep_hook): Delete.
742         (elf_backend_gc_sweep_hook): Don't define.
743         * elf32-frv.c (elf32_frv_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
744         (elf32_frv_gc_sweep_hook): Delete.
745         (elf_backend_gc_sweep_hook): Don't define.
746         * elf32-iq2000.c (iq2000_elf_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
747         (iq2000_elf_gc_sweep_hook): Delete.
748         (elf_backend_gc_sweep_hook): Don't define.
749         * elf32-openrisc.c (openrisc_elf_gc_mark_hook): Use
750         _bfd_elf_gc_mark_hook.
751         (openrisc_elf_gc_sweep_hook): Delete.
752         (elf_backend_gc_sweep_hook): Don't define.
753         * elf32-v850.c (v850_elf_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
754         (v850_elf_gc_sweep_hook): Delete.
755         (elf_backend_gc_sweep_hook): Don't define.
756         * elf32-xstormy16.c (xstormy16_elf_gc_mark_hook): Use
757         _bfd_elf_gc_mark_hook.
758         (xstormy16_elf_gc_sweep_hook): Delete.
759         (elf_backend_gc_sweep_hook): Don't define.
760         * elf64-sh64.c (sh_elf64_gc_mark_hook): Use _bfd_elf_gc_mark_hook.
761         (sh_elf64_gc_sweep_hook): Delete.
762         (elf_backend_gc_sweep_hook): Don't define.
763         * elf32-avr.c (elf32_avr_gc_mark_hook): Delete.
764         (elf32_avr_gc_sweep_hook): Delete.
765         (elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
766         * elf32-cr16c.c (elf32_cr16c_gc_mark_hook): Delete.
767         (elf32_cr16c_gc_sweep_hook): Delete.
768         (elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
769         * elf32-crx.c (elf32_crx_gc_mark_hook): Delete.
770         (elf32_crx_gc_sweep_hook): Delete.
771         (elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
772         * elf32-h8300.c (elf32_h8_gc_mark_hook): Delete.
773         (elf32_h8_gc_sweep_hook): Delete.
774         (elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
775         * elf32-ip2k.c (ip2k_elf_gc_mark_hook): Delete.
776         (ip2k_elf_gc_sweep_hook): Delete.
777         (elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
778         * elf32-m32c.c (m32c_elf_gc_mark_hook, m32c_elf_gc_sweep_hook): Delete.
779         (elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
780         * elf32-m68hc11.c (elf_backend_gc_mark_hook): Don't define.
781         (elf_backend_gc_sweep_hook): Don't define.
782         * elf32-m68hc12.c (elf_backend_gc_mark_hook): Don't define.
783         (elf_backend_gc_sweep_hook): Don't define.
784         * elf32-m68hc1x.c (elf32_m68hc11_gc_mark_hook): Delete.
785         (elf32_m68hc11_gc_sweep_hook): Delete.
786         * elf32-m68hc1x.h (elf32_m68hc11_gc_mark_hook): Delete.
787         (elf32_m68hc11_gc_sweep_hook): Delete.
788         * elf32-msp430.c (elf32_msp430_gc_mark_hook): Delete.
789         (elf32_msp430_gc_sweep_hook): Delete.
790         (elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
791         * elf32-mt.c (mt_elf_gc_mark_hook, mt_elf_gc_sweep_hook): Delete.
792         (elf_backend_gc_mark_hook, elf_backend_gc_mark_hook): Don't define.
794 2006-09-25 Pedro Alves <pedro_alves@portugalmail.pt>
796         * bfd-in.h (CONST_STRNCPY) : Delete.
797         (LITSTRCPY) : New.
798         (LITMEMCPY) : New.
799         * bfd-in2.h : Regenerate.
800         * elflink.c  (bfd_elf_gc_sections) : Use LITMEMCPY. Don't manually
801         calculate string lengths.
802         * nlmcode.h (nlm_swap_auxiliary_headers_in) : Use LITMEMCPY.
804 2006-09-26  H.J. Lu  <hongjiu.lu@intel.com>
806         PR ld/3223
807         PR ld/3267
808         * elf.c (assign_file_positions_for_non_load_sections): Don't
809         warn zero size allocated sections.
811 2006-09-27  Alan Modra  <amodra@bigpond.net.au>
813         * elf32-score.c (_bfd_score_elf_relocate_section): Move assignment
814         to "name" so that compiler realizes it is never uninitialized.
815         Use bfd_elf_sym_name.
817 2006-09-26  H.J. Lu  <hongjiu.lu@intel.com>
819         PR binutils/3262
820         * elf.c (rewrite_elf_program_header): Use bfd_zalloc instead of
821         bfd_alloc to allocate segment map.
822         (copy_elf_program_header): Likewise.
824 2006-09-26  Mark Shinwell  <shinwell@codesourcery.com>
825             Joseph Myers  <joseph@codesourcery.com>
826             Ian Lance Taylor  <ian@wasabisystems.com>
827             Ben Elliston  <bje@wasabisystems.com>
829         * archures.c: Add definition for bfd_mach_arm_iWMMXt2.
830         * cpu-arm.c (processors): Add bfd_mach_arm_iWMMXt2.
831         (arch_info_struct, bfd_arm_update_notes): Likewise.
832         (architectures): Likewise.
833         (bfd_arm_merge_machines): Check for iWMMXt2.
834         * bfd-in2.h: Rebuild.
836 2006-09-24  H.J. Lu  <hongjiu.lu@intel.com>
838         * configure: Regenerated.
840 2006-09-22  Alan Modra  <amodra@bigpond.net.au>
842         * elfcode.h (elf_swap_symbol_in): Return bfd_boolean.  Don't abort
843         on error.
844         * elf-bfd.h (elf_size_info <swap_symbol_in>): Adjust decl.
845         (bfd_elf32_swap_symbol_in, bfd_elf64_swap_symbol_in): Likewise.
846         * elf.c (bfd_elf_get_elf_syms): Test return of swap_symbol_in,
847         and report error.
848         * elf32-arm.c (elf32_arm_swap_symbol_in): Return bfd_boolean.
850 2006-09-20  Martin Schwidefsky  <schwidefsky@de.ibm.com>
852         * elf32-s390.c (elf_s390_relocate_section): Remove check for code
853         section in LD to LE linker relaxation for R_390_TLS_LDO32.
854         * elf64-s390.c (elf_s390_relocate_section): Likewise for
855         R_390_TLS_LDO64.
857 2006-09-20  Kai Tietz  <Kai.Tietz@onevision.com>
859         * configure.in: Added new target-vectors x86_64coff_vec,
860         x86_64pe_vec, and x86_64pei_vec.
861         * configure: Regenerate.
862         * config.bfd: Adjusted x86_64 target architecture detection.
863         * bfd.c: Add for new target "coff-x86-64"
864         (bfd_get_sign_extend): Add target vector idents for pe-x86-64. and pei-x86-64.
865         * coff-x86_64.c: Add new file for x86_64 (AMD64) coff support.
866         * libpei.h: Adjustments for COFF_WITH_pex64.
867         * coffcode.h: Add for new target machine, architecture, signature, and internal
868         signature handler.
869         * Makefile.am: Add new files to target-all and define make-rule for pex64igen.c
870         * Makefile.in: Regenerate.
871         * pe-x86_64.c: Add for new target "pe-x86-64".
872         * pei-x86_64.c: Add for new target "pei-x86-64".
873         * peicode.h: Adjusts for new targets.
874         (coff_swap_filehdr_out): Set for this target to
875         _bfd_pex64_only_swap_filehdr_out.
876         (SIZEOF_IDATA4): Define it as 8 byte size for this target.
877         (SIZEOF_IDATA5): Define it as 8 byte size for this target.
878         (jump_table jtab): Add for AMD64MAGIC.
879         (pe_ILF_build_a_bfd): Adjusts for new size of SIZEOF_IDATA4 and SIZE_IDATA5.
880         (pe_ILF_object_p): Add coff image-file signature to internal
881         signature translation.
882         * peXXigen.c: Adjust proper include of target coff-header and
883         introduced target specific code
884         (COFF_WITH_pex64): New macro for this target.
885         (pe_print_idata): New dumping method for import section of PE+ files.
886         * targets.c: Add new target vectors declarations for x86_64 coff targets.
887         * coffcode.h: Support code to support the x86_64 PE magic number.
888         * coff-x86_64.c: New file.
890 2006-09-17  Hans-Peter Nilsson  <hp@axis.com>
892         * elf.c (special_sections_s): Revert last STRING_COMMA_LEN change
893         for .stabstr entry, explain why.
895 2006-09-17  Anton Blanchard  <anton@samba.org>
896             Alan Modra  <amodra@bigpond.net.au>
898         * dwarf2.c (concat_filename): Apply DW_AT_comp_dir if dir table
899         entry isn't absolute.
901 2006-09-17  Mei Ligang  <ligang@sunnorth.com.cn>
903         * cpu-score.c: New file.
904         * elf32-score.c: New file.
905         * config.bfd: Add Score target.
906         * Makefile.am: Add Score files.
907         * Makefile.in: Regenerate.
908         * archures.c: Add Score architecture.
909         * reloc.c: Add Score relocs.
910         * targets.c: Add Score target vectors.
911         * bfd-in2.h: Regenerate.
912         * libbfd.h: Regenerate.
913         * configure.in: Add Score target.
914         * configure: Regenerate.
916 2006-09-16  Nick Clifton  <nickc@redhat.com>
917             Pedro Alves  <pedro_alves@portugalmail.pt>
919         * bfd-in.h (STRING_COMMA_LEN): New macro.  Takes one constant
920         string as its argument and emits the string followed by a comma
921         and then the length of the string.
922         (CONST_STRNEQ): New macro.  Checks to see if a variable string
923         has a constant string as its initial characters.
924         (CONST_STRNCPY): New macro.  Copies a constant string to the start
925         of a variable string.
926         * bfd-in2.h: Regenerate.
927         * archive.c: Make use of the new macros.
928         * archive64.c: Likewise.
929         * bfd.c: Likewise.
930         * coff-ppc.c: Likewise.
931         * coff-stgo32.c: Likewise.
932         * coffcode.h: Likewise.
933         * cofflink.c: Likewise.
934         * cpu-i960.c: Likewise.
935         * dwarf2.c: Likewise.
936         * ecoff.c: Likewise.
937         * elf-m10300.c: Likewise.
938         * elf.c: Likewise.
939         * elf32-arm.c: Likewise.
940         * elf32-bfin.c: Likewise.
941         * elf32-cris.c: Likewise.
942         * elf32-hppa.c: Likewise.
943         * elf32-i370.c: Likewise.
944         * elf32-i386.c: Likewise.
945         * elf32-iq2000.c: Likewise.
946         * elf32-m32r.c: Likewise.
947         * elf32-m68hc11.c: Likewise.
948         * elf32-m68hc12.c: Likewise.
949         * elf32-m68k.c: Likewise.
950         * elf32-mcore.c: Likewise.
951         * elf32-ppc.c: Likewise.
952         * elf32-s390.c: Likewise.
953         * elf32-sh-symbian.c: Likewise.
954         * elf32-sh.c: Likewise.
955         * elf32-sh64.c: Likewise.
956         * elf32-v850.c: Likewise.
957         * elf32-vax.c: Likewise.
958         * elf32-xtensa.c: Likewise.
959         * elf64-alpha.c: Likewise.
960         * elf64-hppa.c: Likewise.
961         * elf64-mmix.c: Likewise.
962         * elf64-ppc.c: Likewise.
963         * elf64-s390.c: Likewise.
964         * elf64-sh64.c: Likewise.
965         * elf64-x86-64.c: Likewise.
966         * elflink.c: Likewise.
967         * elfxx-ia64.c: Likewise.
968         * elfxx-mips.c: Likewise.
969         * elfxx-sparc.c: Likewise.
970         * hpux-core.c: Likewise.
971         * i386linux.c: Likewise.
972         * ieee.c: Likewise.
973         * libpei.h: Likewise.
974         * linker.c: Likewise.
975         * m68klinux.c: Likewise.
976         * mmo.c: Likewise.
977         * nlmcode.h: Likewise.
978         * osf-core.c: Likewise.
979         * pef.c: Likewise.
980         * som.c: Likewise.
981         * sparclinux.c: Likewise.
982         * vms-hdr.c: Likewise.
984 2006-09-14  Alan Modra  <amodra@bigpond.net.au>
986         PR 3181
987         * elf.c (_bfd_elf_copy_private_header_data): Fix group members
988         that have had their SHT_GROUP section removed.
990 2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>
992         PR ld/3197
993         * elflink.c (elf_link_output_extsym): Compute bucket only if
994         needed.
996 2006-09-10  H.J. Lu  <hongjiu.lu@intel.com>
998         PR binutils/3186
999         * elf.c (_bfd_elf_make_section_from_shdr): Correct length of
1000         "gnu.linkonce.wi.".
1002 2006-09-08  Vladimir Prus  <vladimir@codesourcery.com>
1004         * elf32-arm.c (elf32_arm_swap_symbol_out): Remove
1005         unconditional setting of low bit for Thumb symbol
1006         mistakenly left behind after check for external
1007         symbols was added.  Fix comment typo.
1009 2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1011         * elf-bfd.h (elf_link_hash_entry): Add a dynamic field.
1012         (bfd_elf_link_mark_dynamic_symbol): New.
1013         (SYMBOLIC_BIND): New.
1015         * elf32-i386.c (elf_i386_check_relocs): Replace info->symbolic
1016         with SYMBOLIC_BIND (info, h).
1017         (elf_i386_relocate_section): Likewise.
1018         * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
1019         (elf64_x86_64_relocate_section): Likewise.
1020         * elfxx-ia64.c (elfNN_ia64_check_relocs): Likewise.
1022         * elflink.c (bfd_elf_link_mark_dynamic_symbol): New.
1023         (bfd_elf_record_link_assignment): Call
1024         bfd_elf_link_mark_dynamic_symbol on new entry.
1025         (_bfd_elf_merge_symbol): Likewise.
1026         (_bfd_elf_export_symbol): Return if the symbol isn't exported.
1027         (_bfd_elf_fix_symbol_flags): Replace info->symbolic with
1028         SYMBOLIC_BIND (info, h).
1029         (_bfd_elf_dynamic_symbol_p): Likewise.
1030         (_bfd_elf_symbol_refs_local_p): Likewise.
1031         (bfd_elf_size_dynamic_sections): Updated.
1033 2006-09-05  Bibo Mao  <bibo.mao@intel.com>
1035         PR binutils/3171
1036         * coffcode.h (coff_write_object_contents): Set the optional
1037         header magic number to PE32PMAGIC instead of ZMAGIC for ia64.
1039 2006-09-04  Mark Shinwell  <shinwell@codesourcery.com>
1041         * elf32-arm.c (elf32_arm_howto_table_1): Adjust entries for
1042         R_ARM_THM_ALU_PREL_11_0 and R_ARM_THM_PC12 relocations.
1043         (elf32_arm_final_link_relocate): Handle R_ARM_THM_ALU_PREL_11_0
1044         and R_ARM_THM_PC12 relocations.
1046 2006-08-24  Bob Wilson  <bob.wilson@acm.org>
1048         * elf32-xtensa.c (xtensa_get_property_section_name): Delete.
1049         (xtensa_get_property_section): New.
1050         (xtensa_read_table_entries): Use xtensa_get_property_section.
1051         (relax_property_section, xtensa_get_property_predef_flags): Handle
1052         group name suffixes in property section names.
1053         (match_section_group): New.
1055 2006-08-23  Frediano Ziglio  <Frediano.Ziglio@vodafone.com>
1057         * archive.c (hpux_uid_gid_encode): Fix thinko decrementing "cnt"
1058         variable.
1060 2006-08-22  Daniel Jacobowitz  <dan@codesourcery.com>
1062         * elf32-arm.c (elf32_arm_copy_indirect_symbol): Only copy
1063         plt_thumb_refcount from indirect symbols.
1065 2006-08-22  Alan Modra  <amodra@bigpond.net.au>
1067         * elf32-ppc.c (ppc_elf_relocate_section): Correct GOT and PLT HA
1068         reloc handling.
1069         * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
1071 2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>
1073         * elf32-arm.c (elf32_arm_link_hash_table): Correct typo in
1074         comment for target1_is_rel.
1076 2006-08-21  Pedro Alves  <pedro_alves@portugalmail.pt>
1078         * Makefile.am: Add rules to build pe-arm-wince.lo
1079         and pei-arm-wince.lo objects.
1080         * Makefile.in: Regenerate.
1081         * pe-arm-wince.c: New file.
1082         * pei-arm-wince.c: New file.
1083         * pei-arm.c: Remove ARM_WINCE block.
1084         * pe-arm.c: Remove ARM_WINCE block. Rename
1085         bfd_arm_pe_allocate_interworking_sections,
1086         bfd_arm_pe_get_bfd_for_interworking, and
1087         bfd_arm_pe_process_before_allocation to
1088         bfd_armpe_allocate_interworking_sections,
1089         bfd_armpe_get_bfd_for_interworking, and
1090         bfd_armpe_process_before_allocation. Move them before
1091         including bfd.h.
1092         * bfd.c: ARM wince bfd format names were renamed. Adjust.
1093         * coff-arm.c [ARM_WINCE]: Adjust so Windows CE doesn't end up
1094         with unexpected/conflicting relocs.
1095         * targets.c: The arm-wince-pe target got its own new vector.
1096         Adjust.
1097         * config.bfd: Likewise.
1098         * configure.in: Likewise.
1099         * configure: Regenerate.
1101 2006-08-18  Paul Brook  <paul@codesourcery.com>
1103         * elf32-arm.c (elf32_arm_link_hash_entry): Add export_glue.
1104         (elf32_arm_link_hash_newfunc): Initialize export_glue.
1105         (record_arm_to_thumb_glue): Return stub symbol.
1106         (elf32_arm_create_thumb_stub): New function.
1107         (elf32_arm_to_thumb_stub): Use it.
1108         (elf32_arm_to_thumb_export_stub): New function.
1109         (elf32_arm_begin_write_processing): New function.
1110         (allocate_dynrelocs): Allocate Arm stubs.
1111         (elf_backend_begin_write_processing): Define.
1112         (elf32_arm_symbian_begin_write_processing): Remove ATTRIBUTE_UNUSED.
1113         Call elf32_arm_begin_write_processing.
1115 2006-08-17  Alan Modra  <amodra@bigpond.net.au>
1117         * elf64-ppc.c (create_linkage_sections): Align .glink to 8 bytes.
1118         (ppc64_elf_build_stubs): Use new lazy linking stub.
1120 2006-08-17  Alan Modra  <amodra@bigpond.net.au>
1122         * elf64-ppc.c (ppc64_elf_size_stubs): Ignore non-code sections.
1124 2006-08-16  H.J. Lu  <hongjiu.lu@intel.com>
1126         PR ld/3015
1127         * elf.c (get_program_header_size): Add a PT_GNU_RELRO segment
1128         only if there is a PT_DYNAMIC segment.
1129         (_bfd_elf_map_sections_to_segments): Likewise.
1130         (assign_file_positions_for_load_sections): Set PT_GNU_RELRO
1131         segment alignment to 1.
1133 2006-08-15  Thiemo Seufer  <ths@mips.com>
1134             Nigel Stephens  <nigel@mips.com>
1136         * elf32-mips.c, elf64-mips.c, elfn32-mips.c
1137         (elf_backend_merge_symbol_attribute): Define.
1138         * elflink.c (elf_link_add_object_symbols): Merge only the ELF
1139         visibility flags.
1140         * elfxx-mips.c (_bfd_mips_elf_merge_symbol_attribute): New function.
1142 2006-08-15  Thiemo Seufer  <ths@mips.com>
1143             Nigel Stephens  <nigel@mips.com>
1144             David Ung  <davidu@mips.com>
1146         * config.bfd: Add configurations for mips*el-sde-elf* and
1147         mips*-sde-elf*.
1149 2006-08-14  DJ Delorie  <dj@redhat.com>
1151         * elf-m10300.c (elf32_mn10300_link_hash_entry): Add value.
1152         (elf32_mn10300_count_hash_table_entries): New.
1153         (elf32_mn10300_list_hash_table_entries): New.
1154         (sort_by_value): New.
1155         (mn10300_elf_relax_section): Don't skip data sections; restrict
1156         code-specific tests to code-specific areas so that potential
1157         indirect calls can be detected.  Check for multiple local symbols
1158         at the same address and merge their flags.
1159         (elf32_mn10300_link_hash_newfunc): Initialize value.
1161 2006-08-14  Thiemo Seufer  <ths@mips.com>
1163         * elfxx-mips.c (_bfd_mips_elf_symbol_processing,
1164         _bfd_mips_elf_add_symbol_hook): Don't try to place small common TLS
1165         symbols in .scommon.
1167 2006-08-11  Thiemo Seufer  <ths@mips.com>
1169         * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Set
1170         sh_entsize only when sgot was already initialized.
1172 2006-08-08  DJ Delorie  <dj@redhat.com>
1174         * elf32-sh.c (sh_elf_relax_section): Allow for branches across
1175         non-moving .align directives.  Preserve any DIR32 offset when
1176         converting bsr's to jsr's.
1178 2006-08-08  Alan Modra  <amodra@bigpond.net.au>
1180         * elf64-ppc.c (ppc64_elf_build_stubs): Clear relbrlt reloc_count
1181         after stubs have been built.
1183 2006-08-07  Nick Clifton  <nickc@redhat.com>
1185         * elf32-sh.c (vxworks_object_p): Only check for vxworks target
1186         vectors if they are going to be created.
1188 2006-08-07  Nick Clifton  <nickc@redhat.com>
1190         * configure.in (bfd_elf32_shnbsd_vec): Fix typo.
1191         * configure: Regenerate.
1193 2006-08-07  Nick Clifton  <nickc@redhat.com>
1195         * coff-arm.c (coff_arm_rtype_to_howto): Only check for ARM_SECREL
1196         relocation types if the target is ARM_WINCE.
1198 2006-08-05  Pedro Alves  <pedro_alves@portugalmail.pt>
1200         * bfd.c (bfd_get_sign_extend_vma): Add cases for pe-arm-little
1201         and pei-arm-little.
1202         * coff-arm.c (coff_arm_rtype_to_howto) [COFF_WITH_PE]: Handle
1203         ARM_SECREL.
1204         (coff_arm_reloc_type_lookup): Map BFD_RELOC_32_SECREL to
1205         ARM_SECREL.
1206         * pe-arm.c [COFF_SECTION_ALIGNMENT_ENTRIES]: Define.
1207         * pei-arm.c [TARGET_UNDERSCORE]: Define for ARM_WINCE like in
1208         pe-arm.c.
1209         [COFF_SECTION_ALIGNMENT_ENTRIES]: Define.
1211 2006-08-04  Marcelo Tosatti  <marcelo@kvack.org>
1213         * elflink.c (elf_gc_sweep): If info.print_gc_sections is true,
1214         list removed sections to stderr.
1216 2006-08-04  Richard Sandiford  <richard@codesourcery.com>
1217             Kazu Hirata  <kazu@codesourcery.com>
1218             Phil Edwards  <phil@codesourcery.com>
1219             Nathan Sidwell  <nathan@codesourcery.com>
1221         * config.bfd (sh-*-vxworks): Use bfd_elf32_shvxworks_vec and
1222         bfd_elf32_shlvxworks_vec.
1223         * configure.in (bfd_elf32_sh64_vec): Add elf-vxworks.lo.
1224         (bfd_elf32_sh64l_vec, bfd_elf32_sh64lin_vec): Likewise.
1225         (bfd_elf32_sh64blin_vec, bfd_elf32_sh64lnbsd_vec): Likewise.
1226         (bfd_elf32_sh64nbsd_vec, bfd_elf32_sh_vec): Likewise.
1227         (bfd_elf32_shblin_vec, bfd_elf32_shl_vec): Likewise.
1228         (bfd_elf32_shl_symbian_vec, bfd_elf32_shlin_vec): Likewise.
1229         (bfd_elf32_shlnbsd_vec, bfd_elf32_shnbsd_vec): Likewise.
1230         (bfd_elf32_shlvxworks_vec, bfd_elf32_shvxworks_vec): New stanzas.
1231         * configure: Regenerate.
1232         * Makefile.am: Regenerate dependencies.
1233         * Makefile.in: Regenerate.
1234         * elf-vxworks.c (elf_vxworks_gott_symbol_p): New function.
1235         (elf_vxworks_add_symbol_hook): Use it.
1236         (elf_vxworks_link_output_symbol_hook): Likewise.  Use the hash
1237         table entry to check for weak undefined symbols and to obtain
1238         the original bfd.
1239         (elf_vxworks_emit_relocs): Use target_index instead of this_idx.
1240         * elf32-sh-relocs.h: New file, split from elf32-sh.c.
1241         (R_SH_DIR32): Use SH_PARTIAL32 for the partial_inplace field,
1242         SH_SRC_MASK32 for the src_mask field, and SH_ELF_RELOC for the
1243         special_function field.
1244         (R_SH_REL32): Use SH_PARTIAL32 and SH_SRC_MASK32 here too.
1245         (R_SH_REL32, R_SH_TLS_GD_32, R_SH_TLS_LD_32): Likewise.
1246         (R_SH_TLS_LDO_32, R_SH_TLS_IE_32, R_SH_TLS_LE_32): Likewise.
1247         (R_SH_TLS_DTPMOD32, R_SH_TLS_DTPOFF32, R_SH_TLS_TPOFF32): Likewise.
1248         (R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT): Likewise.
1249         (R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC): Likewise.
1250         (SH_PARTIAL32, SH_SRC_MASK32, SH_ELF_RELOC): Undefine at end of file.
1251         * elf32-sh.c: Include elf32-vxworks.h.
1252         (MINUS_ONE): Define.
1253         (sh_elf_howto_table): Include elf32-sh-relocs.h with SH_PARTIAL32
1254         set to TRUE, SH_SRC_MASK32 set to 0xffffffff, and SH_ELF_RELOC set
1255         to sh_elf_reloc.
1256         (sh_vxworks_howto_table): New variable.  Include elf32-sh-relocs.h
1257         with SH_PARTIAL32 set to FALSE, SH_SRC_MASK32 set to 0, and
1258         SH_ELF_RELOC set to bfd_elf_generic_reloc.
1259         (vxworks_object_p, get_howto_table): New functions.
1260         (sh_elf_reloc_type_lookup): Fix typo.  Use get_howto_table.
1261         (sh_elf_info_to_howto): Use get_howto_table.
1262         (sh_elf_relax_section): Honor the partial_inplace field of the
1263         R_SH_DIR32 howto.
1264         (sh_elf_relax_delete_bytes): Likewise.
1265         (elf_sh_plt_info): New structure.
1266         (PLT_ENTRY_SIZE): Replace both definitions with...
1267         (ELF_PLT_ENTRY_SIZE): ...this new macro, with separate definitions for
1268         INCLUDE_SHMEDIA and !INCLUDE_SHMEDIA.
1269         (elf_sh_plt0_entry_be): Update sizes of both definitions accordingly.
1270         (elf_sh_plt0_entry_le): Likewise.
1271         (elf_sh_plt_entry_be, elf_sh_plt_entry_le): Likewise.
1272         (elf_sh_pic_plt_entry_be, elf_sh_pic_plt_entry_le): Likewise.
1273         (elf_sh_plts): New structure, with separate definitions for
1274         INCLUDE_SHMEDIA and !INCLUDE_SHMEDIA.
1275         (elf_sh_plt0_entry): Delete both definitions.
1276         (elf_sh_plt_entry, elf_sh_pic_plt_entry): Likewise.
1277         (elf_sh_sizeof_plt, elf_sh_plt_plt0_offset): Likewise.
1278         (elf_sh_plt_temp_offset, elf_sh_plt_symbol_offset): Likewise.
1279         (elf_sh_plt_reloc_offset): Likewise.
1280         (movi_shori_putval): Delete in favor of...
1281         (install_plt_field): ...this new function, with separate definitions
1282         for INCLUDE_SHMEDIA and !INCLUDE_SHMEDIA.
1283         (get_plt_info): New function, with separate definitions
1284         for INCLUDE_SHMEDIA and !INCLUDE_SHMEDIA.
1285         (elf_sh_plt0_linker_offset, elf_sh_plt0_gotid_offset): Delete.
1286         (VXWORKS_PLT_HEADER_SIZE, VXWORKS_PLT_ENTRY_SIZE): New macros.
1287         (vxworks_sh_plt0_entry_be, vxworks_sh_plt0_entry_le): New constants.
1288         (vxworks_sh_plt_entry_be, vxworks_sh_plt_entry_le): Likewise.
1289         (vxworks_sh_pic_plt_entry_be, vxworks_sh_pic_plt_entry_le): Likewise.
1290         (get_plt_index, get_plt_offset): New functions.
1291         (elf_sh_link_hash_table): Add srelplt2, plt_info and vxworks_p fields.
1292         (sh_elf_link_hash_table_create): Initialize them.
1293         (sh_elf_create_dynamic_sections): Call
1294         elf_vxworks_create_dynamic_sections for VxWorks.
1295         (allocate_dynrelocs): Use htab->plt_info to get the size of PLT
1296         entries.  Allocate relocation entries in .rela.plt.unloaded if
1297         generating a VxWorks executable.
1298         (sh_elf_always_size_sections): New function.
1299         (sh_elf_size_dynamic_sections): Extend .rela.plt handling to
1300         .rela.plt.unloaded.
1301         (sh_elf_relocate_section): Use get_howto_table.  Honor
1302         partial_inplace when calculating the addend for dynamic
1303         relocations.  Use get_plt_index.
1304         (sh_elf_finish_dynamic_symbol): Use get_plt_index, install_plt_field
1305         and htab->plt_info.  Fill in the bra .plt offset for VxWorks
1306         executables.  Populate .rela.plt.unloaded.  Do not make
1307         _GLOBAL_OFFSET_TABLE_ absolute on VxWorks.
1308         (sh_elf_finish_dynamic_sections): Use install_plt_field and
1309         htab->plt_info.  Handle cases where there is no special PLT header.
1310         Populate the first relocation in .rela.plt.unloaded and fix up
1311         the remaining entries.
1312         (sh_elf_plt_sym_val): Use get_plt_info.
1313         (elf_backend_always_size_sections): Define.
1314         (TARGET_BIG_SYM, TARGET_BIG_NAME): Override for VxWorks.
1315         (TARGET_LITTLE_SYM, TARGET_BIG_SYM): Likewise.
1316         (elf32_bed, elf_backend_want_plt_sym): Likewise.
1317         (elf_symbol_leading_char, elf_backend_want_got_underscore): Likewise.
1318         (elf_backend_grok_prstatus, elf_backend_grok_psinfo): Likewise.
1319         (elf_backend_add_symbol_hook): Likewise.
1320         (elf_backend_link_output_symbol_hook): Likewise.
1321         (elf_backend_emit_relocs): Likewise.
1322         (elf_backend_final_write_processing): Likewise.
1323         (ELF_MAXPAGESIZE, ELF_COMMONPAGESIZE): Likewise.
1324         * targets.c (bfd_elf32_shlvxworks_vec): Declare.
1325         (bfd_elf32_shvxworks_vec): Likewise.
1326         (_bfd_target_vector): Include bfd_elf32_shlvxworks_vec and
1327         bfd_elf32_shvxworks_vec.
1329 2006-08-02  Mark Kettenis  <kettenis@gnu.org>
1331         * configure.in (arm-*-openbsd*): Set COREFILE to netbsd-core.lo.
1332         * configure: Regenerate.
1334 2006-08-02  Petr Salinger  <Petr.Salinger@seznam.cz>
1336         PR binutils/2983
1337         * elf64-x86-64.c: Add FreeBSD support.
1338         (elf64_x86_64_fbsd_post_process_headers): New function.
1339         * targets.c (_bfd_target_vector): Add bfd_elf64_x86_64_freebsd_vec.
1340         * config.bfd (x64_64-*-freebsd*): Add bfd_elf64_x86_64_freebsd_vec
1341         to the targ_selvecs.
1342         * configure.in: Add entry for bfd_elf64_x86_64_freebsd_vec.
1343         * configure: Regenerate.
1345 2006-07-26  Andreas Schwab  <schwab@suse.de>
1347         * elfxx-ia64.c (elfNN_ia64_choose_gp): Use rawsize if set.
1349 2006-07-26  Alan Modra  <amodra@bigpond.net.au>
1351         * elf.c (elf_modify_segment_map): Delete empty PT_LOAD segments.
1352         * elf32-xtensa.c (elf_xtensa_modify_segment_map): Delete.
1353         (define elf_backend_modify_segment_map): Don't define.
1355 2006-07-25  Thiemo Seufer  <ths@networkno.de>
1357         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Allow
1358         linking of objects for compatible machine types.
1360 2006-07-25  Thiemo Seufer  <ths@networkno.de>
1362         * elfxx-mips.c (mips_elf_next_relocation): Tighten check to test
1363         also for same symbol.
1365 2006-07-25  Thiemo Seufer  <ths@mips.com>
1367         * elfxx-mips.c (mips_elf_calculate_relocation): Remove magic constant.
1369 2006-07-24  Michael Wetherell  <mike.wetherell@ntlworld.com>
1371         * elf.c (bfd_section_from_shdr): Reject unrecognised OS-specific
1372         sections only if the SHF_OS_NONCONFORMING flag is present.
1374 2006-07-24  Nick Clifton  <nickc@redhat.com>
1376         PR ld/2729
1377         * peXXigen.c (_bfd_XXi_final_link_postscript): Check for the
1378         existance of output sections before putting their entries into the
1379         DataDictionary.
1381 2006-07-20  Thiemo Seufer  <ths@mips.com>
1383         * elf32-mips.c (mips16_jump_reloc): Remove function.
1384         (elf_mips16_howto_table_rel): Use _bfd_mips_elf_generic_reloc
1385         instead of mips16_jump_reloc.
1386         * elf64_mips.c, wlfn32-mips.c (mips16_jump_reloc): Remove function.
1387         (elf_mips16_howto_table_rel, elf_mips16_howto_table_rela): Use
1388         _bfd_mips_elf_generic_reloc instead of mips16_jump_reloc.
1390 2006-07-19  Alan Modra  <amodra@bigpond.net.au>
1392         * bfd-in.h (enum notice_asneeded_action): Define.
1393         * bfd-in2.h: Regenerate.
1394         * elflink.c (elf_link_add_object_symbols): Call linker "notice"
1395         function with NULL name for as-needed handling.
1397 2006-07-18  Paul Brook  <paul@codesourcery.com>
1399         * bfd-in2.h: Regenerate.
1400         * libbfd.h: Regenerate.
1401         * reloc.c: Add BFD_RELOC_ARM_T32_ADD_IMM.
1403 2006-07-18  Nick Clifton  <nickc@redhat.com>
1405         * elfxx-mips.c (_bfd_mips_elf_common_definition): New function.
1406         Consider SHN_MIPS_ACOMMON and SHN_MIPS_SCOMMON as being common
1407         sections.
1408         * elfxx-mips.h  (_bfd_mips_elf_common_definition): Prototype.
1410 2006-07-14  Jakub Jelinek  <jakub@redhat.com>
1412         * elflink.c (bfd_elf_size_dynsym_hash_dynstr): Fix cinfo.shift2 value.
1414 2006-07-14  Mark Kettenis  <kettenis@gnu.org>
1416         * elflink.c (bfd_elf_size_dynsym_hash_dynstr): Move declarations
1417         to the start of a block.
1419 2006-07-13  Nick Clifton  <nickc@redhat.com>
1421         * coff-sh.c (_bfd_sh_align_load_span): Catch sh_insn_info()
1422         returning a NULL value.
1424 2006-07-12  H.J. Lu  <hongjiu.lu@intel.com>
1426         PR ld/2884
1427         * elflink.c (_bfd_elf_merge_symbol): Copy the symbol info from
1428         the old versioned dynamic definition to the new one with
1429         non-default visibility.  Hide the symbol if it is hidden or
1430         internal.
1432 2006-07-12  Matthew R. Dempsky  <mrd@alkemio.org>
1434         * cpu-m68k.c (bfd_m68k_compatible): Handle CPU32.
1436 2006-07-10  Jakub Jelinek  <jakub@redhat.com>
1438         * elf.c (_bfd_elf_print_private_bfd_data): Handle DT_GNU_HASH.
1439         (bfd_section_from_shdr, elf_fake_sections, assign_section_numbers):
1440         Handle SHT_GNU_HASH.
1441         (special_sections_g): Include .gnu.hash section.
1442         (bfd_elf_gnu_hash): New function.
1443         * elf-bfd.h (bfd_elf_gnu_hash, _bfd_elf_hash_symbol): New prototypes.
1444         (struct elf_backend_data): Add elf_hash_symbol method.
1445         * elflink.c (_bfd_elf_link_create_dynamic_sections): Create .hash
1446         only if info->emit_hash, create .gnu.hash section if
1447         info->emit_gnu_hash.
1448         (struct collect_gnu_hash_codes): New type.
1449         (elf_collect_gnu_hash_codes, elf_renumber_gnu_hash_syms,
1450         _bfd_elf_hash_symbol): New functions.
1451         (compute_bucket_count): Don't compute HASHCODES array, instead add
1452         that and NSYMS as arguments.  Use bed->s->sizeof_hash_entry
1453         instead of bed->s->arch_size / 8.  Fix .hash size estimation.
1454         When not optimizing, use the number of hashed symbols rather than
1455         dynsymcount.
1456         (bfd_elf_size_dynamic_sections): Only add DT_HASH if info->emit_hash,
1457         and ADD DT_GNU_HASH if info->emit_gnu_hash.
1458         (bfd_elf_size_dynsym_hash_dynstr): Size .hash only if info->emit_hash,
1459         adjust compute_bucket_count caller.  Create and populate .gnu.hash
1460         section if info->emit_gnu_hash.
1461         (elf_link_output_extsym): Only populate .hash section if
1462         finfo->hash_sec != NULL.
1463         (bfd_elf_final_link): Adjust assertion.  Handle DT_GNU_HASH.
1464         * elfxx-target.h (elf_backend_hash_symbol): Define if not yet defined.
1465         (elfNN_bed): Add elf_backend_hash_symbol.
1466         * elf64-x86-64.c (elf64_x86_64_hash_symbol): New function.
1467         (elf_backend_hash_symbol): Define.
1468         * elf32-i386.c (elf_i386_hash_symbol): New function.
1469         (elf_backend_hash_symbol): Define.
1471 2006-07-05  Nick Clifton  <nickc@redhat.com>
1473         PR ld/2659
1474         * cofflink.c (_bfd_coff_link_input_bfd): Fix selection of aux
1475         entry when multiple definitions of a symbol are encountered.
1477 2006-06-30  H.J. Lu  <hongjiu.lu@intel.com>
1479         * elf32-i386.c (elf_i386_relocate_section): Use xchg %ax,%ax
1480         instead of 2 nops.
1481         * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
1482         (elf64_x86_64_plt0_entry): Use nopl 0(%rax) instead of 4 nops.
1484 2006-06-29  Jakub Jelinek  <jakub@redhat.com>
1486         PR ld/2513
1487         * elf32-i386.c (GOT_TLS_MASK, GOT_TLS_IE_IE, GOT_TLS_IE_GD,
1488         GOT_TLS_IE_MASK, elf_i386_check_relocs, allocate_dynrelocs): Revert
1489         2006-04-08 changes.
1490         (elf_i386_relocate_section): Likewise.  For GD->IE transition
1491         change subl into addl whenever tls_type is GOT_TLS_IE_POS.
1493 2006-06-23  Alan Modra  <amodra@bigpond.net.au>
1495         PR ld/2754
1496         * elf.c (bfd_elf_mkobject): Don't alloc if already done.  Set
1497         program_header_size to -1.
1498         (_bfd_elf_map_sections_to_segments): Adjust program_header_size check.
1499         (assign_file_positions_for_load_sections ): Likewise.
1500         (_bfd_elf_sizeof_headers): Use saved program_header_size if
1501         available.
1502         * elf32-arm.c (elf32_arm_mkobject): Call bfd_elf_mkobject, don't
1503         alloc if already done.
1504         * elf32-i386.c (elf_i386_mkobject): Likewise.
1505         * elf32-ppc.c (ppc_elf_mkobject): Likewise.
1506         * elf32-s390.c (elf_s390_mkobject): Likewise.
1507         * elf32-sh.c (sh_elf_mkobject): Likewise.
1508         * elf64-alpha.c (elf64_alpha_mkobject): Likewise.
1509         * elf64-ppc.c (ppc64_elf_mkobject): Likewise.
1510         * elf64-s390.c (elf_s390_mkobject): Likewise.
1511         * elf64-x86-64.c (elf64_x86_64_mkobject): Likewise.
1512         * elfxx-sparc.c (_bfd_sparc_elf_mkobject): Likewise.
1514 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
1516         * elflink.c (elf_link_add_object_symbols): Don't create .tcommon
1517         section for relocatable link.
1519 2006-06-21  Alan Modra  <amodra@bigpond.net.au>
1521         * elf-bfd.h (struct elf_backend_data): Add
1522         elf_backend_modify_program_headers.
1523         * elfxx-target.h (elf_backend_modify_program_headers): Define.
1524         (elfNN_bed): Init new field.
1525         * elf.c (elf_modify_segment_map): Remove comment.
1526         (assign_file_positions_for_load_sections): Only call
1527         elf_modify_segment_map for objcopy/strip.
1528         (assign_file_positions_except_relocs): Call
1529         elf_backend_modify_program_headers.
1530         * elf32-frv.c (elf32_frvfdpic_always_size_sections): Don't make
1531         .stack section.
1532         (elf32_frvfdpic_modify_segment_map): Delete.
1533         (elf32_frvfdpic_modify_program_headers): New.
1534         (elf_backend_modify_segment_map): Don't define.
1535         (elf_backend_modify_program_headers): Define.
1536         * elf32-bfin.c (elf32_bfinfdpic_always_size_sections): Don't make
1537         .stack section.
1538         (elf32_bfinfdpic_modify_segment_map): Delete.
1539         (elf32_bfinfdpic_modify_program_headers): New.
1540         (elf_backend_modify_segment_map): Don't define.
1541         (elf_backend_modify_program_headers): Define.
1542         * elfxx-ia64.c (elfNN_ia64_modify_program_headers): New function.
1543         Split out from..
1544         (elfNN_ia64_modify_segment_map): ..here.
1545         (elf_backend_modify_program_headers): Define.
1547 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
1549         * bfd.c (bfd_record_phdr): Clear p_align and p_align_valid fields.
1550         * elf.c (_bfd_elf_link_hash_table_init): Clear hplt field.
1552 2006-06-20  Alan Modra  <amodra@bigpond.net.au>
1554         * elf-bfd.h: Formatting.
1555         (_bfd_elf_map_sections_to_segments): Declare.
1556         * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame_hdr): Don't
1557         clear program_header_size.
1558         * elf.c (get_program_header_size): Move.  Don't use or set saved
1559         program_header_size here.
1560         (elf_modify_segment_map): New function.  Split out from..
1561         (assign_file_positions_for_load_sections): ..here.  Assert
1562         header size is correct.  Remove dead code.
1563         (_bfd_elf_map_sections_to_segments): Rename from
1564         map_sections_to_segments.  Make global.  Use get_program_header_size
1565         when we need estimate of header size.  Call elf_modify_segment_map.
1566         Set program_header_size.
1567         (print_segment_map): Delete.
1568         (_bfd_elf_sizeof_headers): If segment_map available, get the
1569         actual size.
1570         * elf32-arm.c (elf32_arm_symbian_modify_segment_map): Make safe
1571         for calling more than once.
1572         * elf32-bfin.c (elf32_bfinfdpic_modify_segment_map): Likewise.
1573         * elf32-frv.c (elf32_frvfdpic_modify_segment_map): Likewise.
1574         * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Likewise.
1575         * elf32-i370.c (elf_backend_add_symbol_hook): Delete.
1576         (elf_backend_additional_program_headers): Delete.
1577         (elf_backend_modify_segment_map): Delete.
1578         * elf64-hppa.c (elf64_hppa_modify_segment_map): Convert to ISO C.
1579         * elfxx-ia64.c (elfNN_ia64_modify_segment_map): Likewise.
1580         * doc/bfdint.texi: Delete SIZEOF_HEADERS difficulties.
1582 2006-06-19  Vladimir Prus  <vladimir@codesourcery.com>
1584         * elf32-arm.c (elf32_arm_swap_symbol_out): Don't set low
1585         bit for undefined symbols.
1587 2006-06-19  Alan Modra  <amodra@bigpond.net.au>
1589         * elf-bfd.h (struct elf_backend_data): Add bfd_link_info pointer
1590         parameter.
1591         (_bfd_elf_sizeof_headers): Replace bfd_boolean param with
1592         bfd_link_info pointer.
1593         * targets.c (struct bfd_target <_bfd_sizeof_headers>): Likewise.
1594         * bfd.c (bfd_sizeof_headers): Tweak param name.
1595         * aout-adobe.c (aout_adobe_sizeof_headers): Adjust.
1596         * aoutx.h (NAME (aout, sizeof_headers)): Adjust.
1597         * binary.c (binary_sizeof_headers): Adjust.
1598         * bout.c (b_out_sizeof_headers): Adjust.
1599         * coff-rs6000.c (_bfd_xcoff_sizeof_headers): Adjust.
1600         * coff64-rs6000.c (xcoff64_sizeof_headers): Adjust.
1601         * coffgen.c (coff_sizeof_headers): Adjust.
1602         * ecoff.c (_bfd_ecoff_sizeof_headers): Adjust.
1603         (ecoff_compute_section_file_positions): Adjust.
1604         (_bfd_ecoff_write_object_contents): Adjust.
1605         * elf.c (get_program_header_size, _bfd_elf_sizeof_headers): Adjust.
1606         * elf32-arm.c (elf32_arm_additional_program_headers): Adjust.
1607         * elf32-i370.c (elf_backend_additional_program_headers): Adjust.
1608         * elf32-ppc.c (ppc_elf_additional_program_headers): Adjust.
1609         * elf64-hppa.c (elf64_hppa_additional_program_headers): Adjust.
1610         * elf64-x86-64.c (elf64_x86_64_additional_program_headers): Adjust.
1611         * elfxx-ia64.c (elfNN_ia64_additional_program_headers): Adjust.
1612         * elfxx-mips.c (_bfd_mips_elf_additional_program_headers): Adjust.
1613         * elfxx-mips.h (_bfd_mips_elf_additional_program_headers): Adjust.
1614         * i386msdos.c: Convert to ISO C.
1615         (msdos_sizeof_headers): Adjust.
1616         * i386os9k.c: Convert to ISO C.
1617         (os9k_sizeof_headers): Adjust.
1618         * ieee.c (ieee_sizeof_headers): Adjust.
1619         * ihex.c (ihex_sizeof_headers): Adjust.
1620         * libaout.h (NAME (aout, sizeof_headers)): Adjust.
1621         * libbfd-in.h (_bfd_nolink_sizeof_headers): Adjust.
1622         * libcoff-in.h (coff_sizeof_headers): Adjust.
1623         * libecoff.h (_bfd_ecoff_sizeof_headers): Adjust.
1624         * mach-o.c (bfd_mach_o_sizeof_headers): Adjust.
1625         * mmo.c (mmo_sizeof_headers): Adjust.
1626         * oasys.c (oasys_sizeof_headers): Adjust.
1627         * pdp11.c (NAME (aout, sizeof_headers)): Adjust.
1628         * pef.c (bfd_pef_sizeof_headers): Adjust.
1629         * ppcboot.c (ppcboot_sizeof_headers): Adjust.
1630         * som.c (som_sizeof_headers): Adjust.
1631         * srec.c (srec_sizeof_headers): Adjust.
1632         * tekhex.c (tekhex_sizeof_headers): Adjust.
1633         * versados.c (versados_sizeof_headers): Adjust.
1634         * vms.c (vms_sizeof_headers): Adjust.
1635         * xcoff-target.h (_bfd_xcoff_sizeof_headers): Adjust.
1636         * xsym.c (bfd_sym_sizeof_headers): Adjust.
1637         * xsym.h (bfd_sym_sizeof_headers): Adjust.
1638         * bfd-in2.h: Regenerate.
1639         * libbfd.h: Regenerate.
1640         * libcoff.h: Regenerate.
1642 2006-06-15  Mark Shinwell  <shinwell@codesourcery.com>
1644         * bfd-in2.h: Regenerate.
1645         * elf32-arm.c (R_ARM_ALU_PC_G0_NC, R_ARM_ALU_PC_G0,
1646         R_ARM_ALU_PC_G1_NC, R_ARM_ALU_PC_G1, R_ARM_ALU_PC_G2,
1647         R_ARM_LDR_PC_G1, R_ARM_LDR_PC_G2, R_ARM_LDRS_PC_G0,
1648         R_ARM_LDRS_PC_G1, R_ARM_LDRS_PC_G2, R_ARM_LDC_PC_G0,
1649         R_ARM_LDC_PC_G1, R_ARM_LDC_PC_G2, R_ARM_ALU_SB_G0_NC,
1650         R_ARM_ALU_SB_G0, R_ARM_ALU_SB_G1_NC, R_ARM_ALU_SB_G1,
1651         R_ARM_ALU_SB_G2, R_ARM_LDR_SB_G0, R_ARM_LDR_SB_G1,
1652         R_ARM_LDR_SB_G2, R_ARM_LDRS_SB_G0, R_ARM_LDRS_SB_G1,
1653         R_ARM_LDRS_SB_G2, R_ARM_LDC_SB_G0, R_ARM_LDC_SB_G1,
1654         R_ARM_LDC_SB_G2): New relocation types.
1655         (R_ARM_PC13): Rename to AAELF name R_ARM_LDR_PC_G0 and
1656         adjust HOWTO entry to be consistent with R_ARM_LDR_PC_G1
1657         and friends.
1658         (elf32_arm_howto_table_3): Delete; contents merged into
1659         elf32_arm_howto_table_2.
1660         (elf32_arm_howto_from_type): Adjust correspondingly.
1661         (elf32_arm_reloc_map): Extend with the above relocations.
1662         (calculate_group_reloc_mask): New function.
1663         (identify_add_or_sub): New function.
1664         (elf32_arm_final_link_relocate): Support for the above
1665         relocations.
1666         * reloc.c: Add enumeration entries for BFD_RELOC_ARM_...
1667         codes to correspond to the above relocations.
1669 2006-06-14  Richard Sandiford  <richard@codesourcery.com>
1671         * elf32-m68k.c (elf_m68k_plt_info): New structure.
1672         (elf_m68k_plt0_entry): Add R_68K_PC32-style in-place addends.
1673         (elf_m68k_plt_entry): Likewise.
1674         (elf_m68k_plt_info): New table.
1675         (CFV4E_PLT_ENTRY_SIZE): Rename to...
1676         (ISAB_PLT_ENTRY_SIZE): ...this.
1677         (CFV4E_FLAG): Delete.
1678         (elf_cfv4e_plt0_entry): Rename to...
1679         (elf_isab_plt0_entry): ...this.  Adjust comments.  Use (-6,%pc,%d0)
1680         for the second instruction too.
1681         (elf_cfv4e_plt_entry): Rename to...
1682         (elf_isab_plt_entry): ...this.  Adjust comments and use (-6,%pc,%d0).
1683         (elf_isab_plt_info): New table.
1684         (CPU32_FLAG): Delete.
1685         (PLT_CPU32_ENTRY_SIZE): Rename to...
1686         (CPU32_PLT_ENTRY_SIZE): ...this.
1687         (elf_cpu32_plt0_entry): Update bounds accordingly.  Add R_68K_PC32-
1688         style in-place addends.
1689         (elf_cpu32_plt_entry): Likewise.
1690         (elf_cpu32_plt_info): New table.
1691         (elf_m68k_link_hash_table): Add a plt_info field.
1692         (elf_m68k_link_hash_table_create): Initialize it.
1693         (elf_m68k_get_plt_info): New function.
1694         (elf_m68k_always_size_sections): Likewise.
1695         (elf_m68k_adjust_dynamic_symbol): Use the plt_info hash table field.
1696         (elf_m68k_install_pc32): New function.
1697         (elf_m68k_finish_dynamic_symbol): Factor code using plt_info and
1698         elf_m68k_install_pc32.
1699         (elf_m68k_finish_dynamic_sections): Likewise.
1700         (elf_m68k_plt_sym_val): Use elf_m68k_get_plt_info.
1701         (elf_backend_always_size_sections): Define.
1703 2006-06-14  Alan Modra  <amodra@bigpond.net.au>
1705         * elflink.c (elf_link_add_object_symbols): Save and restore
1706         struct bfd_hash_table table, size and count fields for
1707         as-needed libs.
1709 2006-06-12  Thiemo Seufer  <ths@mips.com>
1711         * elf32-mips.c: Expand comment about ABI-mandated pagesize values.
1712         (ELF_MAXPAGESIZE, ELF_COMMONPAGESIZE): define in a more obvious way.
1713         * elf64-mips.c, elfn32-mips.c (ELF_MAXPAGESIZE): Fix value for IRIX6.
1714         Delete old comments.
1715         (ELF_COMMONPAGESIZE): Define in a more obvious way.
1717 2006-06-12  Nick Clifton  <nickc@redhat.com>
1719         PR binutils/2735
1720         * elflink.c (elf_link_add_object_symbols): Fix the warning message
1721         about mismatched alignments to allow for the case where the common
1722         alignment has been deduced from the section alignment.
1723         * bfd.c (_bfd_default_error_handler): Update comment to explain
1724         why bfd and asection varargs are out of order.  Explicitly catch
1725         and abort on NULL bfd and asection arguments.
1727 2006-06-11  Richard Sandiford  <richard@codesourcery.com>
1728             Thiemo Seufer  <ths@mips.com>
1730         * elfxx-mips.c (mips_elf_link_hash_table): Add function_stub_size.
1731         (STUB_ORI): New macro.
1732         (STUB_LI16U): Fix formatting.
1733         (MIPS_FUNCTION_STUB_SIZE): Delete.
1734         (MIPS_FUNCTION_STUB_MAX_SIZE): Likewise.
1735         (MIPS_FUNCTION_STUB_NORMAL_SIZE): New macro.
1736         (MIPS_FUNCTION_STUB_BIG_SIZE): Likewise.
1737         (_bfd_mips_elf_adjust_dynamic_symbol): Use htab->function_stub_size
1738         instead of MIPS_FUNCTION_STUB_SIZE.
1739         (count_section_dynsyms): New function, split out from
1740         _bfd_mips_elf_final_link.
1741         (_bfd_mips_elf_always_size_sections): Get a worst-case estimate
1742         of the number of dynamic symbols needed and use it to set up
1743         function_stub_size.  Use function_stub_size rather than
1744         MIPS_FUNCTION_STUB_SIZE to determine the size of the stub section.
1745         Use 16-byte stubs for 0x10000 dynamic symbols.
1746         (_bfd_mips_elf_size_dynamic_sections): Use htab->function_stub_size
1747         instead of MIPS_FUNCTION_STUB_SIZE.  Fix formatting.
1748         (_bfd_mips_elf_finish_dynamic_symbol): Likewise.  Change the
1749         size of the stub buffer from MIPS_FUNCTION_STUB_MAX_SIZE to
1750         MIPS_FUNCTION_STUB_BIG_SIZE.  Tweak the check for unhandled dynindxes.
1751         Use MIPS_FUNCTION_STUB_BIG_SIZE rather than a hard-coded 20.
1752         Use STUB_ORI rather than STUB_LI16U for big stubs.
1753         (_bfd_mips_elf_link_hash_table_create): Initialize function_stub_size.
1754         (_bfd_mips_elf_final_link): Use count_section_dynsyms.
1756 2006-06-09  David Ung  <davidu@mips.com>
1758         * bfd/elfxx-mips.c (mips_elf_calculate_relocation): Fix mode for stub
1759         calling relocations.
1761 2006-06-08  David Daney  <ddaney@avtrex.com>
1763         * elfxx-mips.c (STUB_LI16): Removed.
1764         (STUB_LUI): New macro.
1765         (STUB_LI16U): Ditto.
1766         (STUB_LI16S): Ditto.
1767         (MIPS_FUNCTION_STUB_SIZE): Rewrote to take info parameter.
1768         (_bfd_mips_elf_adjust_dynamic_symbol): Pass info parameter to
1769         MIPS_FUNCTION_STUB_SIZE.
1770         (_bfd_mips_elf_always_size_sections): Ditto.
1771         (_bfd_mips_elf_size_dynamic_sections): Ditto.
1772         (_bfd_mips_elf_finish_dynamic_sections): Ditto.
1773         (_bfd_mips_elf_finish_dynamic_symbol): Rewrote stub generation
1774         to allow larger symbol table indexes.
1776 2006-06-07  Joseph S. Myers  <joseph@codesourcery.com>
1778         * po/Make-in (pdf, ps): New dummy targets.
1780 2006-06-06  Alan Modra  <amodra@bigpond.net.au>
1782         * hash.c (bfd_hash_lookup): Correct stray line.
1784         * elf.c (_bfd_elf_init_private_section_data): Comment typo.
1785         (elfcore_grok_nto_status): Use long instead of pid_t.
1786         (elfcore_grok_nto_regs, elfcore_grok_nto_note): Likewise.
1788 2006-06-05  Daniel Jacobowitz  <dan@codesourcery.com>
1790         * po/Make-in (top_builddir): Define.
1792 2006-06-05  Alan Modra  <amodra@bigpond.net.au>
1794         * Makefile.am: Run "make dep-am".
1795         * Makefile.in: Regenerate.
1796         * config.in: Regenerate.
1798 2006-06-02  Alan Modra  <amodra@bigpond.net.au>
1799             H.J. Lu  <hongjiu.lu@intel.com>
1801         PR ld/2723
1802         * elflink.c (bfd_elf_final_link): Don't output section symbols
1803         for special ELF sections.
1805 2006-06-01  Alan Modra  <amodra@bigpond.net.au>
1807         * stabs.c (_bfd_link_section_stabs): Use bfd_make_section*_with_flags
1808         instead of bfd_make_section*.
1809         * aix386-core.c: Likewise.
1810         * aix5ppc-core.c: Likewise.
1811         * aout-adobe.c: Likewise.
1812         * aoutf1.h: Likewise.
1813         * binary.c: Likewise.
1814         * cisco-core.c: Likewise.
1815         * coff-arm.c: Likewise.
1816         * coff-h8300.c: Likewise.
1817         * elf.c: Likewise.
1818         * elf32-bfin.c: Likewise.
1819         * elf32-m32c.c: Likewise.
1820         * hppabsd-core.c: Likewise.
1821         * hpux-core.c: Likewise.
1822         * i386linux.c: Likewise.
1823         * ieee.c: Likewise.
1824         * ihex.c: Likewise.
1825         * irix-core.c: Likewise.
1826         * lynx-core.c: Likewise.
1827         * m68klinux.c: Likewise.
1828         * mach-o.c: Likewise.
1829         * netbsd-core.c: Likewise.
1830         * nlmcode.h: Likewise.
1831         * opncls.c: Likewise.
1832         * osf-core.c: Likewise.
1833         * peXXigen.c: Likewise.
1834         * ppcboot.c: Likewise.
1835         * ptrace-core.c: Likewise.
1836         * rs6000-core.c: Likewise.
1837         * sco5-core.c: Likewise.
1838         * sparclinux.c: Likewise.
1839         * srec.c: Likewise.
1840         * sunos.c: Likewise.
1841         * trad-core.c: Likewise.
1842         * xcofflink.c: Likewise.
1843         * xsym.c: Likewise.
1845 2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
1847         * Makefile.am (INCLUDES): Use @INCINTL@.
1848         * acinclude.m4: Include new gettext macros.
1849         * configure.in: Use ZW_GNU_GETTEXT_SISTER_DIR and AM_PO_SUBDIRS.
1850         Manually substitute POFILES and GMOFILES.
1851         * Makefile.in, aclocal.m4, configure, doc/Makefile.in: Regenerated.
1853 2006-05-30  H.J. Lu  <hongjiu.lu@intel.com>
1855         * bfd.c (bfd_emul_get_maxpagesize): New.
1856         (bfd_elf_set_pagesize): Likewise.
1857         (bfd_emul_set_maxpagesize): Likewise.
1858         (bfd_emul_get_commonpagesize): Likewise.
1859         (bfd_emul_set_commonpagesize): Likewise.
1860         * bfd-in2.h: Regenerated.
1862         * elf-bfd.h (elf_backend_data): Add commonpagesize.
1863         (xvec_get_elf_backend_data): New.
1864         (get_elf_backend_data): Use xvec_get_elf_backend_data.
1866         * elf32-arm.c (elf32_arm_vxworks_bed): Remove const.
1867         * elfxx-target.h (elfNN_bed): Likewise.
1869         * elf32-arm.c (ELF_COMMONPAGESIZE): Defined.
1870         * elf32-mips.c (ELF_COMMONPAGESIZE): Likewise.
1871         * elf32-ppc.c (ELF_COMMONPAGESIZE): Likewise.
1872         * elf32-sh.c (ELF_COMMONPAGESIZE): Likewise.
1873         * elf32-sh64.c (ELF_COMMONPAGESIZE): Likewise.
1874         * elf32-sparc.c (ELF_COMMONPAGESIZE): Likewise.
1875         * elf64-alpha.c (ELF_COMMONPAGESIZE): Likewise.
1876         * elf64-ppc.c (ELF_COMMONPAGESIZE): Likewise.
1877         * elf64-sparc.c (ELF_COMMONPAGESIZE): Likewise.
1878         * elf64-x86-64.c (ELF_COMMONPAGESIZE): Likewise.
1879         * elfn32-mips.c (ELF_COMMONPAGESIZE): Likewise.
1880         * elfxx-ia64.c (ELF_COMMONPAGESIZE): Likewise.
1882         * elfxx-target.h (ELF_COMMONPAGESIZE): Define if not defined.
1883         (elfNN_bed): Initialize commonpagesize with ELF_COMMONPAGESIZE.
1885         * targets.c (bfd_find_target): Support NULL abfd.
1887 2006-05-30  Nick Clifton  <nickc@redhat.com>
1889         * po/es.po: Updated Spanish translation.
1891 2006-05-27  Alan Modra  <amodra@bigpond.net.au>
1892             H.J. Lu  <hongjiu.lu@intel.com>
1894         * elf.c (assign_file_positions_for_load_sections): Retrieve
1895         maxpagesize from m->p_align if it is valid.  Set p_vaddr,
1896         p_paddr and p_align earlier.  Revert 2006-05-19 change to p_align.
1897         (copy_elf_program_header): Copy p_align.  Set p_align_valid.
1899 2006-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1901         * elf64-x86-64.c (ELF_MINPAGESIZE): Changed to 0x1000.
1903 2006-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1905         * elf64-x86-64.c (ELF_MINPAGESIZE): Set to 0x100000.
1907 2006-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1909         * elf64-x86-64.c (ELF_MAXPAGESIZE): Updated to 0x200000.
1911 2006-05-26  Alan Modra  <amodra@bigpond.net.au>
1913         * elf.c (sym_is_global): Return a bfd_boolean.
1914         (ignore_section_sym): New function.
1915         (elf_map_symbols): Use ignore_section_sym to discard some syms.
1916         (_bfd_elf_symbol_from_bfd_symbol): Ensure section belongs to
1917         bfd before using elf_section_syms.
1919 2006-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1921         * config.bfd: (sh-*-linux*): Treat as 64bit target.
1922         (sh*l*-*-netbsdelf*): Likewise.
1923         (sh-*-netbsdelf*): Likewise.
1924         (shl*-*-elf*): Likewise.
1925         (sh[1234]l*-*-elf*): Likewise.
1926         (sh3el*-*-elf*): Likewise.
1927         (shl*-*-kaos*): Likewise.
1928         (sh-*-elf*): Likewise.
1929         (sh[1234]*-elf*): Likewise.
1930         (sh-*-rtems*): Likewise.
1931         (sh-*-kaos*): Likewise.
1933 2006-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1935         PR ld/1485
1936         * config.bfd: Set want64 to true if 64bit bfd is used.
1937         (sh-*-linux*): Use targ64_selvecs for 64bit targets.
1938         (sh*l*-*-netbsdelf*): Likewise.
1939         (sh-*-netbsdelf*): Likewise.
1940         (shl*-*-elf*): Likewise.
1941         (sh[1234]l*-*-elf*): Likewise.
1942         (sh3el*-*-elf*): Likewise.
1943         (shl*-*-kaos*): Likewise.
1944         (sh-*-elf*): Likewise.
1945         (sh[1234]*-elf*): Likewise.
1946         (sh-*-rtems*): Likewise.
1947         (sh-*-kaos*): Likewise.
1949 2006-05-24  Paul Brook  <paul@codesourcery.com>
1951         * elf-bfd.h (elf_backend_data): Add elf_backend_output_arch_local_syms
1952         * elf32-arm.c (output_arch_syminfo): Define.
1953         (elf32_arm_ouput_plt_map_sym, elf32_arm_output_plt_map,
1954         elf32_arm_output_arch_local_syms): New functions.
1955         (elf_backend_output_arch_local_syms): Define.
1956         * elflink.c (bfd_elf_final_link): Call
1957         elf_backend_output_arch_local_syms.
1958         * elfxx-target.h (elf_backend_output_arch_local_syms): Provide default
1959         definition.
1960         (elfNN_bed): Add elf_backend_output_arch_local_syms.
1962 2006-05-24  Paul Brook  <paul@codesourcery.com>
1964         * elf32-arm.c (put_arm_insn, put_thumb_insn): New functions.
1965         (elf32_thumb_to_arm_stub, elf32_arm_to_thumb_stub,
1966         elf32_arm_finish_dynamic_symbol): Use them.
1968 2006-05-24  Carlos O'Donell  <carlos@systemhalted.org>
1969             Randolph Chung  <tausq@debian.org>
1971         * elf-hppa.h (reloc_hppa_howto_table): Check bitfield for
1972         TPREL21L/TPREL14R relocations. Handle LTOFF_TP14R relocations.
1973         Add handling for TLS relocations.
1974         (elf_hpp_reloc_final_type): Handle TLS relocs.
1975         * elf32-hppa.c: Add authors for cleanup and TLS support.
1976         (hppa_elf_local_got_tls_type, hh_name, eh_name): Define.
1977         (elf32_hppa_link_hash_entry): Add tls_type.
1978         (elf32_hppa_link_hash_table): Add tld_ldm_got.
1979         (hppa_link_has_newfunc): Set tls_type.
1980         (elf32_hppa_link_hash_table_create): Set tls_ldm_got refcount.
1981         (hppa_stub_name): Use hh_name macro.
1982         (elf32_hppa_copy_indirect_symbol): Copy TLS information.
1983         (elf32_hppa_check_relocs): Call elf32_hppa_optimized_tls_reloc.
1984         Handle TLS relocs.
1985         (elf32_hppa_gc_sweep_hook): Likewise.
1986         (allocate_dynrelocs): Handle TLS relocs.
1987         (elf32_hppa_size_dynamic_sections): Count space required by TLS
1988         relocs. Use hh_name macro.
1989         (dtpoff_base): New function.
1990         (tpoff): Likewise.
1991         (elf32_hppa_optimized_tls_reloc): Likewise.
1992         (final_link_relocate): Handle TLS relocs.
1993         (elf32_hppa_relocate_section): Handle TLS relocs. Use eh_name
1994         and hh_name macros.
1995         (elf32_hppa_finish_dynamic_symbol): Setup TLS got entries. Use
1996         hh_name and eh_name macros.
1997         (elf32_hppa_reloc_type_clas): Handle TLS relocs.
1999 2006-05-24  Bjoern Haase  <bjoern.m.haase@web.de>
2001         * archures.c: Add bfd_mach_avr6.
2002         * cpu-avr.c: Likewise.
2003         * reloc.c (BFD_RELOC_AVR_LO8_LDI_GS, BFD_RELOC_AVR_HI8_LDI_GS):
2004         New relocations.
2005         * libbfd.h: Regenerate.
2006         * bfd-in2.h:Regenerate.
2007         * elf32-avr.h: New file.  Protoypes for functions accessed from ld.
2008         * elf32-avr.c: Add elf32-avr.h to include list.
2009         (elf32_avr_stub_hash_entry): New function.
2010         (elf32_avr_link_hash_table): New struct.
2011         (avr_link_hash_table): Likewise.
2012         (avr_stub_hash_entry): Likewise.
2013         (avr_stub_hash_lookup): New function.
2014         (stub_hash_newfunc): New function.
2015         (elf32_avr_link_hash_table_create): New function.
2016         (elf32_avr_link_hash_table_free): New function.
2017         (avr_get_stub_addr): New function.
2018         (debug_relax, debug_stubs): Add new global variables controlling
2019         debugging printout to stdout.
2020         (avr_pc_wrap_around): Change the type to bfd_vma.
2021         (avr_replace_call_ret_sequences): Add a new variable controling
2022         linkrelax optimizations.
2023         (avr_stub_is_required_for_16_bit_reloc): New function.
2024         (avr_final_link_relocate):
2025         Add linker hash table to parameter list. Use stub addr. if necessary.
2026         (elf32_avr_relocate_section):
2027         Add linker hashtable to parameter list of avr_final_link_relocate.
2028         (bfd_elf_avr_final_write_processing): Add support for bfd_mach_avr6.
2029         (elf32_avr_object_p): Add support for E_AVR_MACH_AVR6.
2030         (elf32_avr_relax_delete_bytes):
2031         Iterate over all sections of a bfd when adjusting relocs addends.
2032         (elf32_avr_relax_section):
2033         Evaluate avr_replace_call_ret_sequences and recalculate the size of
2034         stub section.
2035         (avr_stub_name): New function.
2036         (avr_get_stub_entry): New function.
2037         (avr_add_stub): New function.
2038         (avr_build_one_stub): New function.
2039         (avr_size_one_stub): New function.
2040         (elf32_avr_setup_params): New function.
2041         (elf32_avr_setup_section_lists): New function.
2042         (get_local_syms): New function.
2043         (elf32_avr_size_stubs): New function.
2044         (bfd_elf32_bfd_link_hash_table_create): New function.
2045         (bfd_elf32_bfd_link_hash_table_free): New function.
2047 2006-05-23  H.J. Lu  <hongjiu.lu@intel.com>
2049         PR ld/2655
2050         PR ld/2657
2051         * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Properly
2052         update CIE/FDE length.  Don't pad to the section alignment.
2054 2006-05-23  Jie Zhang  <jie.zhang@analog.com>
2056         * elf32-bfin.c (bfinfdpic_relocate_section): Clear reloc for
2057         deteted entries in .eh_frame section.
2059 2006-05-23  Jie Zhang  <jie.zhang@analog.com>
2061         * elf32-bfin.c (bfin_check_relocs): Use __GLOBAL_OFFSET_TABLE_
2062         instead of _GLOBAL_OFFSET_TABLE_.
2063         (bfin_relocate_section): Ditto.
2064         (_bfin_create_got_section): Ditto.
2065         (elf32_bfinfdpic_create_dynamic_sections): Use
2066         __PROCEDURE_LINKAGE_TABLE_ instead of _PROCEDURE_LINKAGE_TABLE_.
2067         (bfin_finish_dynamic_symbol): Use __DYNAMIC instead of _DYNAMIC.
2069 2006-05-23  Alan Modra  <amodra@bigpond.net.au>
2071         * elf64-ppc.c (compare_symbols): Prefer strong dynamic global
2072         function syms over other syms.
2074 2006-05-22  Daniel Jacobowitz  <dan@codesourcery.com>
2076         * elflink.c (_bfd_elf_add_dynamic_entry): Remove DT_TEXTREL
2077         check.
2078         (bfd_elf_final_link): Add a late DT_TEXTREL check.
2079         * elfxx-mips.c (MIPS_ELF_READONLY_SECTION): Define.
2080         (mips_elf_create_dynamic_relocation): Set DF_TEXTREL.
2081         (_bfd_mips_elf_check_relocs): Delete MIPS_READONLY_SECTION.
2082         Use MIPS_ELF_READONLY_SECTION.
2083         (_bfd_mips_elf_size_dynamic_sections): Clear DF_TEXTREL after
2084         creating DT_TEXTREL.
2085         (_bfd_mips_elf_finish_dynamic_sections): Clear textrel markers
2086         if no text relocations were generated.
2088 2006-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2090         * elfxx-ia64.c (ELF_MAXPAGESIZE): Fix a typo in comment.
2092 2006-05-19  Alan Modra  <amodra@bigpond.net.au>
2094         * elf.c (elf_fake_sections): Formatting.
2095         (assign_file_positions_for_load_sections): Only add SEC_ALLOC
2096         sections to p_memsz.  Remove hack for PT_NOTE sections.  Allow
2097         section alignment to increase p_align for PT_LOAD.
2098         (assign_file_positions_for_non_load_sections): Remove ARM BPABI
2099         hack for PT_DYNAMIC.  Instead, set p_filesz for all segments
2100         other than PT_LOAD, and PT_NOTE in core.
2102 2006-05-17  Alan Modra  <amodra@bigpond.net.au>
2104         * elf.c (assign_file_positions_for_segments): Split into..
2105         (assign_file_positions_for_load_sections): ..this, and..
2106         (assign_file_positions_for_non_load_sections): ..this new function,..
2107         (assign_file_positions_except_relocs): ..writing program headers here.
2109 2006-05-17  Alan Modra  <amodra@bigpond.net.au>
2111         * elflink.c (elf_gc_sweep): Don't specially keep non-alloc,
2112         non-load sections if they have relocs.
2114 2006-05-15  Paul Brook  <paul@codesourcery.com>
2116         * cpu-arm.c (bfd_is_arm_mapping_symbol_name): Rename ...
2117         (bfd_is_arm_special_symbol_name): ... to this.  Add type argument.
2118         Check symbol name is of specified type.
2119         * elf32-arm.c (elf32_arm_is_target_special_symbol,
2120         arm_elf_find_function, elf32_arm_output_symbol_hook): Use
2121         bfd_is_arm_special_symbol_name.
2122         * bfd-in.h (BFD_ARM_SPECIAL_SYM_TYPE_MAP,
2123         BFD_ARM_SPECIAL_SYM_TYPE_TAG, BFD_ARM_SPECIAL_SYM_TYPE_OTHER,
2124         BFD_ARM_SPECIAL_SYM_TYPE_ANY): Define.
2125         (bfd_is_arm_mapping_symbol_name): Remove prototype.
2126         (bfd_is_arm_special_symbol_name): Add prototype.
2127         * bfd-in2.h: Regenerate.
2129 2006-05-15  David Heine  <dlheine@tensilica.com>
2130             Bob Wilson  <bob.wilson@acm.org>
2132         * elf32-xtensa.c (check_loop_aligned): Fix reversed check for
2133         undefined opcode.  Clean up assertions.
2134         (narrow_instruction, widen_instruction): Remove "do_it" parameters.
2135         Factor most of the code into separate functions....
2136         (can_narrow_instruction, can_widen_instruction): New.
2137         (prev_instr_is_a_loop): New.
2138         (compute_ebb_proposed_actions): Combine error handling code for
2139         decode errors.  Replace call to insn_decode_len with inline code.
2140         Use can_narrow_instruction and can_widen_instruction.  Handle errors
2141         from call to xtensa_opcode_is_loop.
2142         (relax_section): Adjust calls to narrow_instruction and
2143         widen_instruction.
2145 2006-05-15  Alan Modra  <amodra@bigpond.net.au>
2147         PR 2658
2148         * elf32-ppc.c (ppc_elf_relax_section): Don't segfault on non-pic
2149         -shared link.
2151 2006-05-11  Michael Matz  <matz@suse.de>
2153         * elflink.c (match_group_member): Correctly iterate group
2154         members.
2156 2006-05-11  Paul Brook  <paul@codesourcery.com>
2158         * elf32-arm.c (elf32_arm_reloc_map): Add MOVW and MOVT relocs.
2159         (elf32_arm_final_link_relocate): Handle MOVW and MOVT relocs.
2160         (elf32_arm_gc_sweep_hook, elf32_arm_check_relocs): Ditto.
2161         * reloc.c: Ditto.
2162         * bfd-in2.h: Regenerate.
2163         * libbfd.h: Regenerate.
2164         * libcoff.h: Regenerate.
2166 2006-05-11  Mike Bland  <mbland@google.com>
2168         * elf.c (_bfd_elf_init_private_section_data): Don't change
2169         section type if already set.
2171 2006-05-10  Nick Clifton  <nickc@redhat.com>
2173         PR ld/2607
2174         * elfcode.h (valid_section_index_p): New function: Checks for a
2175         valid section index.  Allows indicies in the range SHN_LOPROC to
2176         SHN_HIOS.
2177         (elf_object_p): Use valid_section_index_p.
2179 2006-05-11  Pedro Alves  <pedro_alves@portugalmail.pt>
2181         * coff-arm.c (ARM_26D, ARM_32, ARM_RVA_32, ARM_SECTION,
2182         ARM_SECREL): Mark WinCE versions of these relocs as partial
2183         inplace.
2184         (coff_arm_relocate_section): Adjust addend for WinCE.
2186 2006-05-10  Alan Modra  <amodra@bigpond.net.au>
2188         PR 2342
2189         * elflink.c (_bfd_elf_default_action_discarded): Revert 2006-02-16.
2191 2006-05-09  Nick Clifton  <nickc@redhat.com>
2193         * coffcode.h (coff_write_relocs): Produce an error message if a an
2194         out-of-range symbol index is detected in a reloc.
2196 2006-05-09  Ben Elliston  <bje@au.ibm.com>
2198         * elf64-ppc.c (ppc64_elf_finish_dynamic_symbol): Remove unused
2199         local variable `dynobj'.
2201 2006-05-05  Bjoern Haase  <bjoern.m.haase@web.de>
2203         * elf32-avr.c (elf32_avr_relax_delete_bytes): Iterate over all
2204         of the bfd's sections for the reloc-addend adjustments.
2206 2006-05-05  Martin Schwidefsky  <schwidefsky@de.ibm.com>
2208         * elf32-s390.c (invalid_tls_insn): Call bfd_set_error.
2209         (elf_s390_relocate_section): Add code to do the GD->LE and
2210         LD->LE TLS linker optimizations if a brasl instruction is used
2211         for the __tls_get_offset function call.
2212         * elf64-s390.c (invalid_tls_insn): Call bfd_set_error.
2214 2006-05-05  Alan Modra  <amodra@bigpond.net.au>
2216         * elf64-ppc.c (ppc64_elf_tls_optimize): Only optimize
2217         R_PPC64_TPREL64 and R_PPC64_DTPMOD64 relocs when they are in
2218         the .toc and referenced by a TLS code sequence.
2219         (ppc64_elf_edit_toc): Cater for the unlikely situation that
2220         .toc is the first section in a file.
2222 2006-05-04  Andreas Schwab  <schwab@suse.de>
2224         * aoutf1.h (struct external_sparc_core): Declare c_regs as struct
2225         regs instead of an array of int.
2226         (struct external_solaris_bcp_core): Likewise.
2227         (swapcore_sun3): Use offsetof instead of computing the offset
2228         manually.
2229         (swapcore_sparc): Likewise.  Simplify reference to c_regs.
2230         (swapcore_solaris_bcp): Likewise.
2232 2006-05-04  Daniel Jacobowitz  <dan@codesourcery.com>
2234         * elfxx-mips.c (_bfd_mips_elf_hide_symbol): Adjust handling
2235         for missing GOTs.
2237 2006-05-04  Daniel Jacobowitz  <dan@codesourcery.com>
2239         * cpu-arm.c (bfd_is_arm_mapping_symbol_name): Accept more
2240         mapping symbols.
2242 2006-05-04  Ben Elliston  <bje@au.ibm.com>
2244         * coff-or32.c (bfd_section_from_shdr): Remove unused local
2245         variable `ptr'.
2246         * cofflink.c (process_embedded_commands): Remove unused local
2247         variables `had_read' and `had_shared'.
2248         * ecofflink.c (bfd_ecoff_debug_accumulate): Remove unused local
2249         variable `fdr_adr'.
2250         * ihex.c (ihex_read_section): Remove unused local variable `addr'.
2252 2006-05-03  Alan Modra  <amodra@bigpond.net.au>
2254         * libbfd-in.h (_bfd_generic_new_section_hook): Declare.
2255         * section.c (bfd_abs_symbol, bfd_com_symbol): Delete.
2256         (bfd_und_symbol, bfd_ind_symbol): Delete.
2257         (BFD_FAKE_SECTION): Remove SYM_PTR param, set symbol_ptr_ptr to
2258         &SEC.symbol.
2259         (STD_SECTION): Adjust.
2260         (_bfd_generic_new_section_hook): New function, extracted from..
2261         (bfd_section_init): ..here.
2262         (bfd_make_section_old_way): Call new_section_hook for abs, com,
2263         und and ind sections.
2264         * elf.c (_bfd_elf_large_com_section): Adjust.
2265         * aoutx.h (new_section_hook): Call _bfd_generic_new_section_hook.
2266         * pdp11.c (new_section_hook): Likewise.
2267         * coffcode.h (coff_new_section_hook): Likewise.
2268         * ecoff.c (_bfd_ecoff_new_section_hook): Likewise.
2269         * elf.c (_bfd_elf_new_section_hook): Likewise.
2270         * vms.c (vms_new_section_hook): Likwise.
2271         * elf32-arm.c (elf32_arm_new_section_hook): Check used_by_bfd isn't
2272         already set.
2273         * elf32-sh64.c (sh64_elf_new_section_hook): Likewise.
2274         * elf32-xtensa.c (elf_xtensa_new_section_hook): Likewise.
2275         * elf64-mmix.c (mmix_elf_new_section_hook): Likewise.
2276         * elf64-ppc.c (ppc64_elf_new_section_hook): Likewise.
2277         * elfxx-mips.c (_bfd_mips_elf_new_section_hook): Likewise.
2278         * elfxx-sparc.c (_bfd_sparc_elf_new_section_hook): Likewise.
2279         * ieee.c (ieee_new_section_hook): Likewise.  Call
2280         _bfd_generic_new_section_hook too.
2281         * mmo.c (mmo_new_section_hook): Likewise.
2282         * oasys.c (oasys_new_section_hook): Likewise.
2283         * som.c (som_new_section_hook): Likewise.
2284         * coff-w65.c (reloc_processing): Don't use bfd_abs_symbol.
2285         * bfd-in2.h: Regenerate.
2286         * libbfd.h: Regenerate.
2288 2006-05-03  Alan Modra  <amodra@bigpond.net.au>
2290         * hash.c (DEFAULT_SIZE): Revert last change.
2291         (higher_prime_number): Correct test for no larger prime.  Don't
2292         abort on error, instead return 0.  Depopulate primes[].
2293         (bfd_hash_lookup): If we overflow size, refuse to grow table.
2295 2006-05-02  Paul Brook  <paul@codesourcery.com>
2297         * elf32-arm.c (elf32_arm_final_link_relocate): Set thumb funciton bit
2298         for R_ARM_REL32.
2300 2006-05-02  Ben Elliston  <bje@au.ibm.com>
2302         * archive.c (bfd_generic_archive_p): Remove unused local variable
2303         `fail'.
2304         * dwarf2.c (decode_line_info): Remove unused local variable
2305         `basic_block'.
2306         * elfcode.h (elf_slurp_reloc_table_from_section): Remove unused
2307         local variable `s'.
2308         * tekhex.c (tekhex_write_object_contents): Remove unused local
2309         variable `bytes_written'.
2310         * aout-ns32k.c (MY_swap_std_reloc_out): Remove unused local
2311         variable `r_addend'.
2312         * elf32-dlx.c (dlx_rtype_to_howto): Remove breaks after returns.
2313         * elfxx-mips.c (_bfd_elf_mips_mach): Remove breaks after returns.
2314         (_bfd_ns32k_relocate_contents): Remove break after return.
2315         * elf.c (bfd_section_from_shdr): Remove breaks after returns.
2317 2006-05-02  Nick Clifton  <nickc@redhat.com>
2319         * elf32-sh-symbian.c: Rename local define DEBUG to SYMBIAN_DEBUG
2320         in order to avoid conflicts with the global DEBUG define.
2322 2006-05-02  Alan Modra  <amodra@bigpond.net.au>
2324         * dwarf2.c: Formatting.
2325         * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Simplify
2326         output section check.
2327         * elf32-i370.c: Warning fixes inside #ifdef DEBUG.
2328         * elf32-m32c.c: Similarly.
2329         * elf32-ppc.c: Similarly.
2330         * elf32-v850.c: Similarly.
2331         * nlm32-sparc.c: Similarly.
2332         * elfcode.h: Similarly.
2333         (elf_symbol_flags): Delete.
2334         * elflink.c (elf_link_input_bfd): Comment typo.
2336 2006-05-01  DJ Delorie  <dj@redhat.com>
2338         * bfd-in.h (bfd_hash_table): Add count field.
2339         * bfd-in2.h: Regenerate.
2340         * hash.c (higher_prime_number): New.
2341         (bfd_hash_table_inint_n): Init count field.
2342         (bfd_hash_lookup): Grow table as needed.
2344 2006-04-27  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
2346         PR binutils/2584
2347         * tekhex.c (getvalue): Change return type to bfd_boolean and
2348         add the new parameter.  Return false if the unexpected character
2349         is found.
2350         (getsym): Likewise.
2351         (first_phase): Change return type to bfd_boolean and return
2352         false if the unexpected character is found.  Replace abort
2353         with returning false.
2354         (pass_over): Change return type to bfd_boolean and the type of
2355         the second argument to bfd_boolean (*) (bfd *, int, char *).
2356         Return false if FUNC returns false.
2357         (tekhex_object_p): Return NULL if pass_over fails.
2359 2006-04-27  Alan Modra  <amodra@bigpond.net.au>
2361         * coff-rs6000.c (xcoff_write_archive_contents_old): Warning fix.
2363 2006-04-26  H.J. Lu  <hongjiu.lu@intel.com>
2365         PR binutils/2593
2366         * elf.c (_bfd_elf_new_section_hook): Don't set section ELF type
2367         and flags if its BFD flags have been set.
2368         (_bfd_elf_init_private_section_data): Don't copy the output ELF
2369         section type from input if it has been set to something
2370         different.
2372 2006-04-25  H.J. Lu  <hongjiu.lu@intel.com>
2374         PR binutils/2467
2375         * elf.c (_bfd_elf_close_and_cleanup): Check elf_tdata (abfd)
2376         is NULL first.
2378         * elf32-arm.c (elf32_arm_close_and_cleanup): Check if
2379         abfd->sections is NULL.
2380         (elf32_arm_bfd_free_cached_info): New.
2381         (bfd_elf32_bfd_free_cached_info): Defined.
2383         * elfxx-target.h (bfd_elfNN_bfd_free_cached_info): Default it
2384         to _bfd_free_cached_info.
2386         * libbfd-in.h (_bfd_free_cached_info): New.
2387         * libbfd: Regenerated.
2389         * opncls.c (_bfd_delete_bfd): Check if abfd->memory is NULL.
2390         (_bfd_free_cached_info): New.
2392 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
2394         * elf.c (assign_file_positions_except_relocs): Move code setting
2395         file position of non-loaded sections..
2396         (assign_file_positions_for_segments): ..to here.
2398 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
2400         PR ld/2537
2401         * elf.c (bfd_section_from_shdr): Allow sections reserved for
2402         applications. Issue an error on sections we don't know how
2403         to handle.
2405 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
2407         * Makefile.am: Run "make dep-am".
2408         * Makefile.in: Regenerate.
2410 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
2412         * warning.m4 (--enable-werror): Format help message.
2413         (--enable-build-warnings): Likewise.
2414         * configure: Regenerate.
2416 2006-04-18  Nick Clifton  <nickc@redhat.com>
2418         PR 2257
2419         * elfcode.h (elf_object_p): Allow files with corrupt e_shstrndx
2420         fields to still be handled as ELF files.
2422 2006-04-16  Daniel Jacobowitz  <dan@codesourcery.com>
2424         * po/SRC-POTFILES.in: Regenerated.
2426 2006-04-16  Daniel Jacobowitz  <dan@codesourcery.com>
2428         * configure.in: Update version to 2.17.50.
2429         * configure: Regenerated.
2431 2006-04-14  David Heine  <dlheine@tensilica.com>
2433         * elf32-xtensa.c (build_reloc_opcodes): New.
2434         (compute_text_actions): Use it to decode opcodes outside inner loop.
2435         (check_section_ebb_pcrels_fit): Add "reloc_opcodes" argument, and if
2436         it is set, use it to get the opcodes for relocations.
2437         (move_shared_literal): Adjust call to check_section_ebb_pcrels_fit.
2439 2006-04-08  H.J. Lu  <hongjiu.lu@intel.com>
2441         PR ld/2513
2442         * elf32-i386.c (GOT_TLS_MASK): New macro for tls_type.
2443         (GOT_TLS_IE_IE): Likewise.
2444         (GOT_TLS_IE_GD): Likewise.
2445         (GOT_TLS_IE_MASK): Likewise.
2446         (elf_i386_check_relocs): For global symbols, set GOT_TLS_IE_GD
2447         and GOT_TLS_IE_IE for R_386_TLS_GD and R_386_TLS_IE
2448         respectively.
2449         (allocate_dynrelocs): If both GOT_TLS_IE_IE and GOT_TLS_IE_GD
2450         are set, treat tls_type as GOT_TLS_IE_BOTH.
2451         (elf_i386_relocate_section): Likewise.
2453 2006-04-07  Randolph Chung  <tausq@debian.org>
2455         * elf64-hppa.c (elf64_hppa_grok_prstatus): New function.
2456         (elf64_hppa_grok_psinfo): Likewise.
2457         (elf_backend_grok_pstatus, elf_backend_grok_psinfo): Define.
2459 2006-04-06  DJ Delorie  <dj@redhat.com>
2461         * elf32-m32c.c (m32c_elf_relocate_section): Generate a symbol for
2462         each plt entry we create.
2464 2006-04-06  Carlos O'Donell  <carlos@codesourcery.com>
2466         * po/Make-in: Add install-html target.
2467         * Makefile.am: Rename docdir to bfddocdir. Add datarootdir, docdir
2468         htmldir. Add install-html and install-html-recursive targets.
2469         * Makefile.in: Regenerate.
2470         * configure.in: AC_SUBST for datarootdir, docdir and htmldir.
2471         * configure: Regenerate.
2473 2006-04-06  H.J. Lu  <hongjiu.lu@intel.com>
2475         * elfxx-ia64.c (elfNN_ia64_relax_section): Skip unneeded passes
2476         with the skip_relax_pass_0 and skip_relax_pass_1 bits in the
2477         section structure.
2479 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
2481         * elf32-bfin.c (bfinfdpic_relocs_info_hash): Sprinkle casts to
2482         eliminate warnings.
2484 2006-04-05  H.J. Lu  <hongjiu.lu@intel.com>
2485             James E Wilson  <wilson@specifixinc.com>
2487         PR ld/2442
2488         * elfxx-ia64.c (elfNN_ia64_dyn_sym_info): Remove next.
2489         (elfNN_ia64_local_hash_entry): Add count, sorted_count and
2490         size.
2491         (elfNN_ia64_link_hash_entry): Likewise.
2492         (elfNN_ia64_new_elf_hash_entry): Initialize count, sorted_count
2493         and size.
2494         (elfNN_ia64_hash_copy_indirect): Updated elfNN_ia64_dyn_sym_info
2495         processing.
2496         (elfNN_ia64_hash_hide_symbol): Likewise.
2497         (elfNN_ia64_global_dyn_sym_thunk): Likewise.
2498         (elfNN_ia64_local_dyn_sym_thunk): Likewise.
2499         (elfNN_ia64_global_dyn_info_free): New function.
2500         (elfNN_ia64_local_dyn_info_free): Likewise.
2501         (elfNN_ia64_hash_table_free): Free local and global
2502         elfNN_ia64_dyn_sym_info.
2503         (addend_compare): New function.
2504         (sort_dyn_sym_info): Likewise.
2505         (get_dyn_sym_info): Updated to use binary search for addend.
2506         (elfNN_ia64_check_relocs): Scan relocations to create dynamic
2507         relocation arrays first.
2509 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
2511         * elf32-bfin.c (_bfin_create_got_section): Don't generate a _gp
2512         symbol.
2514 2006-04-05  H.J. Lu  <hongjiu.lu@intel.com>
2516         PR ld/2411
2517         * elflink.c (check_dynsym): New.
2518         (elf_link_output_extsym): Use it.
2519         (bfd_elf_final_link): Likewise.
2521 2006-04-05  H.J. Lu  <hongjiu.lu@intel.com>
2523         PR ld/2404
2524         * elflink.c (_bfd_elf_merge_symbol): Skip the default indirect
2525         symbol from the dynamic definition with the default version if
2526         its type and the type of existing regular definition mismatch.
2528 2006-04-05  Richard Sandiford  <richard@codesourcery.com>
2529             Daniel Jacobowitz  <dan@codesourcery.com>
2531         * config.bfd (sparc-*-vxworks*): New stanza.
2532         * configure.in (bfd_elf32_sparc_vxworks_vec): New stanza.
2533         (bfd_elf32_sparc_vec, bfd_elf64_sparc_vec): Add elf-vxworks.lo.
2534         * configure: Regenerate.
2535         * elf32-sparc.c: Include elf-vxworks.h.
2536         (elf32_sparc_vxworks_link_hash_table_create: New.
2537         (elf32_sparc_vxworks_final_write_processing): New.
2538         (TARGET_BIG_SYM): Override for VxWorks.
2539         (TARGET_BIG_NAME, ELF_MINPAGESIZE): Likewise.
2540         (bfd_elf32_bfd_link_hash_table_create): Likewise.
2541         (elf_backend_want_got_plt, elf_backend_plt_readonly): Likewise.
2542         (elf_backend_got_header_size, elf_backend_add_symbol_hook): Likewise.
2543         (elf_backend_link_output_symbol_hook): Likewise.
2544         (elf_backend_emit_relocs): Likewise.
2545         (elf_backend_final_write_processing, elf32_bed): Likewise.
2546         * elfxx-sparc.c: Include libiberty.h and elf-vxworks.h.
2547         (sparc_vxworks_exec_plt0_entry, sparc_vxworks_exec_plt_entry): New.
2548         (sparc_vxworks_shared_plt0_entry, sparc_vxworks_shared_plt_entry): New.
2549         (_bfd_sparc_elf_link_hash_table_create): Don't initialize
2550         build_plt_entry here.
2551         (create_got_section): Initialize sgotplt for VxWorks.
2552         (_bfd_sparc_elf_create_dynamic_sections): Initialize build_plt_entry,
2553         plt_header_size and plt_entry_size, with new VxWorks-specific settings.
2554         Call elf_vxworks_create_dynamic_sections for VxWorks.
2555         (allocate_dynrelocs): Use plt_header_size and plt_entry_size.
2556         Allocate room for .got.plt and .rela.plt.unloaded entries on VxWorks.
2557         (_bfd_sparc_elf_size_dynamic_sections): Don't allocate a nop in .plt
2558         for VxWorks.  Check for the .got.plt section.
2559         (sparc_vxworks_build_plt_entry): New function.
2560         (_bfd_sparc_elf_finish_dynamic_symbol): Add handling of VxWorks PLTs.
2561         Don't make _GLOBAL_OFFSET_TABLE_ and _PROCEDURE_LINKAGE_TABLE_
2562         absolute on VxWorks.
2563         (sparc32_finish_dyn): Add special handling for DT_RELASZ
2564         and DT_PLTGOT on VxWorks.
2565         (sparc_vxworks_finish_exec_plt): New.
2566         (sparc_vxworks_finish_shared_plt): New.
2567         (_bfd_sparc_elf_finish_dynamic_sections): Call them.
2568         Use plt_header_size and plt_entry_size.
2569         * elfxx-sparc.h (_bfd_sparc_elf_link_hash_table): Add is_vxworks,
2570         srelplt2, sgotplt, plt_header_size and plt_entry_size fields.
2571         * Makefile.am (elfxx-sparc.lo): Depend on elf-vxworks.h.
2572         (elf32-sparc.lo): Likewise.
2573         * Makefile.in: Regenerate.
2574         * targets.c (bfd_elf32_sparc_vxworks_vec): Declare.
2575         (_bfd_target_vector): Add a pointer to it.
2577 2006-03-30  Ben Elliston  <bje@au.ibm.com>
2579         PR ld/2267
2580         * elflink.c (elf_fixup_link_order): Ensure `elfsec' is not a
2581         special section number that exceeds the number of ELF sections
2582         (eg. SHN_MIPS_SCOMMON).
2584 2006-03-27  Richard Sandiford  <richard@codesourcery.com>
2586         * elfxx-mips.c (mips_got_entry): Add more commentary.
2587         (mips_elf_local_got_index): Use the hash table entry to record
2588         the GOT index of forced-local symbols.
2589         (mips_elf_initialize_tls_index): Rearrange code.  Store the index
2590         in either the hash table entry or the mips_got_entry, not both.
2591         Add more commentary.
2592         (mips_elf_multi_got): Make sure the g->next is nonnull when calling
2593         mips_elf_initialize_tls_index.
2595 2006-03-25  Bernd Schmidt  <bernd.schmidt@analog.com>
2597         * elf32-bfin.c (bfd_const_reloc, bfd_oper_reloc, bfin_push_reloc,
2598         RELOC_STACK_SIZE, reloc_stack, reloc_stack_tos, is_reloc_stack_empty,
2599         reloc_stack_push, reloc_stack_pop, reloc_stack_operate,
2600         bfin_areloc_howto_table): Delete.  All
2601         uses deleted as well.
2602         (bfin_reloc_map): Delete all stack relocs.
2603         (bfin_info_to_howto, bfin_bfd_reloc_type_lookup,
2604         bfin_reloc_type_lookup): Don't support them.
2605         (bfin_relocate_section): Don't try to handle them.
2607         * config.bfd (bfin-*-*): Add bfd_elf32_bfinfdpic_vec.
2608         * configure.in: Likewise.
2609         * configure: Regenerate.
2610         * elf32-bfin.c: Include "elf/dwarf2.h" and "hashtab.h".
2611         (BFIN_RELOC_MAX): Now 0x21.
2612         (bfin_howto_table, bfin_reloc_map): Add FD-PIC relocs.
2613         (bfd_elf32_bfinfdpic_vec): Declare.
2614         (IS_FDPIC): New macro.
2615         (struct bfinfdpic_elf_link_hash_table): New struct.
2616         (bfinfdpic_hash_table, bfinfdpic_got_section,
2617         bfinfdpic_gotrel_section, bfinfdpic_gotfixup_section,
2618         bfinfdpic_plt_setion, bfinfdpic_pltrel_section,
2619         bfinfdpic_relocs_info, bfinfdpic_got_initial_offset,
2620         bfinfdpic_plt_initial_offset): Accessor macros for it.
2621         (BFINFDPIC_SYM_LOCAL, BFINFDPIC_FUNCDESC_LOCAL): New macros.
2622         (struct bfinfdpic_relocs_info): New struct.
2623         (LZPLT_RESOLVER_EXTRA, LZPLT_NORMAL_SIZE, LZPLT_ENTRIES,
2624         BFINFDPIC_LZPLT_BLOCK_SIZE, BFINFDPIC_LZPLT_RESOLV_LOC,
2625         DEFAULT_STACK_SIZE): New macros.
2626         (bfinfdpic_elf_link_hash_table_create, bfinfdpic_relocs_info_hash,
2627         bfinfdpic_relocs_info_eq, bfinfdpics_relocs_info_find,
2628         bfinfdpic_relocs_info_for_global, bfinfdpic_relocs_info_for_local,
2629         bfinfdpic_pic_merge_early_relocs_info, _bfinfdpic_add_dyn_reloc,
2630         _bfinfdpic_add_rofixup, _bfinfdpic_osec_to_segment,
2631         _bfinfdpic_osec_readonly_p, bfinfdpic_relocate_section,
2632         bfinfdpic_check_relocs, bfinfdpic_gc_sweep_hook,
2633         _bfinfdpic_link_omit_section_dynsym, _bfin_create_got_section,
2634         elf32_bfinfdpic_create_dynamic_sections, _bfinfdpic_get_fd_entry,
2635         _bfinfdpic_compute_got_alloc_data, _bfinfdpic_get_got_entry,
2636         _bfinfdpic_assign_got_entries, _bfinfdpic_assign_plt_entries,
2637         _bfinfdpic_resolve_final_relocs_info,
2638         elf32_bfinfdpic_size_dynamic_sections,
2639         elf32_bfinfdpic_always_size_sections,
2640         elf32_bfinfdpic_modify_segment_map,
2641         _bfinfdpic_count_got_plt_entries,
2642         elf32_bfinfdpic_finish_dynamic_sections,
2643         elf32_bfinfdpic_adjust_dynamic_symbol,
2644         elf32_bfinfdpic_finish_dynamic_symbol,
2645         elf32_bfinfdpic_elf_use_relative_eh_frame,
2646         elf32_bfinfdpic_elf_encode_eh_address,
2647         elf32_bfin_object_p, bfin_elf_copy_private_bfd_data,
2648         elf32_bfinfdpic_copy_private_bfd_data,
2649         (struct _bfinfdpic_dynamic_got_info,
2650         struct _bfinfdpic_dynamic_got_plt_info): New structs.
2651         (elf32_bfin_print_private_bfd_data): Print PIC flags.
2652         (elf32_bfin_merge_private_bfd_data): Extend to support FD-PIC.
2653         (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME, elf32_bed,
2654         elf_backend_got_header_size, bfd_elf32_bfd_link_hash_table_create,
2655         elf_backend_always_size_sectinos, elf_backend_modify_segment_map,
2656         bfd_elf32_bfd_copy_private_bfd_data,
2657         elf_backend_create_dynamic_sections, elf_backend_adjust_dynamic_symbol,
2658         elf_backend_size_dynamic_sections, elf_backend_finish_dynamic_symbol,
2659         elf_backend_finish_dynamic_sections, elf_backend_relocate_section,
2660         elf_backend_can_make_relative_eh_frame, elf_backend_check_relocs,
2661         elf_backend_can_make_ldsa_relative_eh_frame, elf_backend_may_use_rel_p,
2662         elf_backend_may_use_rela_p, elf_backend_default_use_rela_p,
2663         elf_backend_omit_section_dynsym): Redefine these macros and include
2664         "elf32-target.h" again to create the elf32-bfinfdpic target.
2665         * reloc.c (BFD_RELOC_BFIN_GOT17M4, BFD_RELOC_BFIN_GOTHI,
2666         BFD_RELOC_BFIN_GOTLO, BFD_RELOC_BFIN_FUNCDESC,
2667         BFD_RELOC_BFIN_FUNCDESC_GOT17M4, BFD_RELOC_BFIN_FUNCDESC_GOTHI,
2668         BFD_RELOC_BFIN_FUNCDESC_GOTLO, BFD_RELOC_BFIN_FUNCDESC_VALUE,
2669         BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4, BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI,
2670         BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO, BFD_RELOC_BFIN_GOTOFFHI,
2671         BFD_RELOC_BFIN_GOTOFFLO): New.
2672         * targets.c (bfd_elf32_bfinfdpic_vec): New bfd_target.
2673         (_bfd_target_vector): Add it.
2674         * bfd-in2.h: Regenerate.
2675         * libbfd.h: Regenerate.
2677 2006-03-25  Richard Sandiford  <richard@codesourcery.com>
2679         * cpu-m68k.c (bfd_m68k_compatible): Treat ISA A+ and ISA B code as
2680         incompatible.  Likewise MAC and EMAC code.
2681         * elf32-m68k.c (elf32_m68k_merge_private_bfd_data): Use
2682         bfd_get_compatible to set the new bfd architecture.  Rely on it
2683         to detect incompatibilities.
2685 2006-03-23  Michael Matz  <matz@suse.de>
2687         * reloc.c: Add BFD_RELOC_X86_64_GOT64, BFD_RELOC_X86_64_GOTPCREL64,
2688         BFD_RELOC_X86_64_GOTPC64, BFD_RELOC_X86_64_GOTPLT64,
2689         BFD_RELOC_X86_64_PLTOFF64.
2690         * bfd-in2.h: Regenerated.
2691         * libbfd.h: Regenerated.
2692         * elf64-x86-64.c (x86_64_elf_howto_table): Correct comment.
2693         Add howtos for above relocs.
2694         (x86_64_reloc_map): Add mappings for new relocs.
2695         (elf64_x86_64_check_relocs): R_X86_64_GOT64, R_X86_64_GOTPCREL64,
2696         R_X86_64_GOTPLT64 need a got entry.  R_X86_64_GOTPLT64 also a PLT
2697         entry.  R_X86_64_GOTPC64 needs a .got section.  R_X86_64_PLTOFF64
2698         needs a PLT entry.
2699         (elf64_x86_64_gc_sweep_hook): Reflect changes from
2700         elf64_x86_64_check_relocs for the new relocs.
2701         (elf64_x86_64_relocate_section): Handle new relocs.
2703 2006-03-22  Bob Wilson  <bob.wilson@acm.org>
2705         * elf32-xtensa.c (xtensa_read_table_entries): Remove assertion that
2706         rel->r_addend is zero.
2708 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
2710         * elfxx-mips.c (_bfd_mips_vxworks_finish_dynamic_symbol): Fix type
2711         of "loc".
2713 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
2714             Daniel Jacobowitz  <dan@codesourcery.com>
2715             Phil Edwards  <phil@codesourcery.com>
2716             Zack Weinberg  <zack@codesourcery.com>
2717             Mark Mitchell  <mark@codesourcery.com>
2718             Nathan Sidwell  <nathan@codesourcery.com>
2720         * bfd-in2.h: Regenerate.
2721         * config.bfd (mips*-*-vxworks*, mips*el-*-vxworks*): New stanzas.
2722         * configure.in (bfd_elf32_bigmips_vxworks_vec): New stanza.
2723         (bfd_elf32_littlemips_vxworks_vec): Likewise.
2724         (bfd_elf32_bigmips_vec): Add elf-vxworks.lo.
2725         (bfd_elf32_littlemips_vec): Likewise.
2726         (bfd_elf32_nbigmips_vec): Likewise.
2727         (bfd_elf32_nlittlemips_vec): Likewise.
2728         (bfd_elf32_ntradbigmips_vec): Likewise.
2729         (bfd_elf32_ntradlittlemips_vec): Likewise.
2730         (bfd_elf32_tradbigmips_vec): Likewise.
2731         (bfd_elf32_tradlittlemips_vec): Likewise.
2732         (bfd_elf64_bigmips_vec): Likewise.
2733         (bfd_elf64_littlemips_vec): Likewise.
2734         (bfd_elf64_tradbigmips_vec): Likewise.
2735         (bfd_elf64_tradlittlemips_vec): Likewise.
2736         * elf32-mips.c: Include elf-vxworks.h.
2737         (mips_info_to_howto_rel): Use elf_backend_mips_rtype_to_howto
2738         instead of calling mips_elf32_rtype_to_howto directly.
2739         (mips_vxworks_copy_howto_rela): New reloc howto.
2740         (mips_vxworks_jump_slot_howto_rela): Likewise.
2741         (mips_vxworks_bfd_reloc_type_lookup): New function.
2742         (mips_vxworks_rtype_to_howto): Likewise.
2743         (mips_vxworks_final_write_processing): Likewise.
2744         (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME): Override for VxWorks.
2745         (TARGET_BIG_SYM, TARGET_BIG_NAME, elf_bed, ELF_MAXPAGESIZE): Likewise.
2746         (elf_backend_want_got_plt): Likewise.
2747         (elf_backend_want_plt_sym): Likewise.
2748         (elf_backend_got_symbol_offset): Likewise.
2749         (elf_backend_want_dynbss): Likewise.
2750         (elf_backend_may_use_rel_p): Likewise.
2751         (elf_backend_may_use_rela_p): Likewise.
2752         (elf_backend_default_use_rela_p): Likewise.
2753         (elf_backend_got_header_size: Likewise.
2754         (elf_backend_plt_readonly): Likewise.
2755         (bfd_elf32_bfd_reloc_type_lookup): Likewise.
2756         (elf_backend_mips_rtype_to_howto): Likewise.
2757         (elf_backend_adjust_dynamic_symbol): Likewise.
2758         (elf_backend_finish_dynamic_symbol): Likewise.
2759         (bfd_elf32_bfd_link_hash_table_create): Likewise.
2760         (elf_backend_add_symbol_hook): Likewise.
2761         (elf_backend_link_output_symbol_hook): Likewise.
2762         (elf_backend_emit_relocs): Likewise.
2763         (elf_backend_final_write_processing: Likewise.
2764         (elf_backend_additional_program_headers): Likewise.
2765         (elf_backend_modify_segment_map): Likewise.
2766         (elf_backend_symbol_processing): Likewise.
2767         * elfxx-mips.c: Include elf-vxworks.h.
2768         (mips_elf_link_hash_entry): Add is_relocation_target and
2769         is_branch_target fields.
2770         (mips_elf_link_hash_table): Add is_vxworks, srelbss, sdynbss, srelplt,
2771         srelplt2, sgotplt, splt, plt_header_size and plt_entry_size fields.
2772         (MIPS_ELF_RELA_SIZE, MIPS_ELF_REL_DYN_NAME): New macros.
2773         (MIPS_RESERVED_GOTNO): Take a mips_elf_link_hash_table argument.
2774         Return 3 for VxWorks.
2775         (ELF_MIPS_GP_OFFSET): Change the argument from a bfd to a
2776         mips_elf_link_hash_table.  Return 0 for VxWorks.
2777         (MIPS_ELF_GOT_MAX_SIZE): Change the argument from a bfd to a
2778         mips_elf_link_hash_table.  Update the call to ELF_MIPS_GP_OFFSET.
2779         (mips_vxworks_exec_plt0_entry): New variable.
2780         (mips_vxworks_exec_plt_entry): Likewise.
2781         (mips_vxworks_shared_plt0_entry): Likewise.
2782         (mips_vxworks_shared_plt_entry): Likewise.
2783         (mips_elf_link_hash_newfunc): Initialize the new hash_entry fields.
2784         (mips_elf_rel_dyn_section): Change the bfd argument to a
2785         mips_elf_link_hash_table.  Use MIPS_ELF_REL_DYN_NAME to get
2786         the name of the section.
2787         (mips_elf_initialize_tls_slots): Update the call to
2788         mips_elf_rel_dyn_section.
2789         (mips_elf_gotplt_index): New function.
2790         (mips_elf_local_got_index): Add an input_section argument.
2791         Update the call to mips_elf_create_local_got_entry.
2792         (mips_elf_got_page): Likewise.
2793         (mips_elf_got16_entry): Likewise.
2794         (mips_elf_create_local_got_entry): Add bfd_link_info and input_section
2795         arguments.  Create dynamic relocations for each entry on VxWorks.
2796         (mips_elf_merge_gots): Update the use of MIPS_ELF_GOT_MAX_SIZE.
2797         (mips_elf_multi_got): Update the uses of MIPS_ELF_GOT_MAX_SIZE
2798         and MIPS_RESERVED_GOTNO.
2799         (mips_elf_create_got_section): Update the uses of
2800         MIPS_ELF_GOT_MAX_SIZE.  Create .got.plt on VxWorks.
2801         (is_gott_symbol): New function.
2802         (mips_elf_calculate_relocation): Use a dynobj local variable.
2803         Update the calls to mips_elf_local_got_index, mips_elf_got16_entry and
2804         mips_elf_got_page_entry.  Set G to the .got.plt entry when calculating
2805         VxWorks R_MIPS_CALL* relocations.  Calculate and use G for all GOT
2806         relocations on VxWorks.  Add dynamic relocations for references
2807         to the VxWorks __GOTT_BASE__ and __GOTT_INDEX__ symbols.  Don't
2808         create dynamic relocations for R_MIPS_32, R_MIPS_REL32 or R_MIPS_64
2809         in VxWorks executables.
2810         (mips_elf_allocate_dynamic_relocations): Add a bfd_link_info argument.
2811         Use MIPS_ELF_RELA_SIZE to calculate the size of a VxWorks entry.
2812         Don't allocate a null entry on VxWorks.
2813         (mips_elf_create_dynamic_relocation): Update the call to
2814         mips_elf_rel_dyn_section.  Use absolute rather than relative
2815         relocations for VxWorks, and make them RELA rather than REL.
2816         (_bfd_mips_elf_create_dynamic_sections): Don't make .dynamic
2817         read-only on VxWorks.  Update the call to mips_elf_rel_dyn_section.
2818         Create the .plt, .rela.plt, .dynbss and .rela.bss sections on
2819         VxWorks.  Likewise create the _PROCEDURE_LINKAGE_TABLE symbol.
2820         Call elf_vxworks_create_dynamic_sections for VxWorks and
2821         initialize the plt_header_size and plt_entry_size fields.
2822         (_bfd_mips_elf_check_relocs): Don't allow GOT relocations to be
2823         used in VxWorks executables.  Don't allocate dynamic relocations
2824         for R_MIPS_32, R_MIPS_REL32 or R_MIPS_64 in VxWorks executables.
2825         Set is_relocation_target for each symbol referenced by a relocation.
2826         Allocate .rela.dyn entries for relocations against the special
2827         VxWorks __GOTT_BASE__ and __GOTT_INDEX__ symbols.  Create GOT
2828         entries for all VxWorks R_MIPS_GOT16 relocations.  Don't allocate
2829         a global GOT entry for symbols mentioned in VxWorks R_MIPS_CALL*,
2830         R_MIPS_32, R_MIPS_REL32 or R_MIPS_64 relocations.  Update the calls
2831         to mips_elf_rel_dyn_section and mips_elf_allocate_dynamic_relocations.
2832         Set is_branch_target for symbols mentioned in R_MIPS_PC16 or R_MIPS_26
2833         relocations.  Don't set no_fn_stub on VxWorks.
2834         (_bfd_mips_elf_adjust_dynamic_symbol): Update the call to
2835         mips_elf_allocate_dynamic_relocations.
2836         (_bfd_mips_vxworks_adjust_dynamic_symbol): New function.
2837         (_bfd_mips_elf_always_size_sections): Do not allocate GOT page
2838         entries for VxWorks, and do not create multiple GOTs.
2839         (_bfd_mips_elf_size_dynamic_sections): Use MIPS_ELF_REL_DYN_NAME.
2840         Handle .got specially for VxWorks.  Update the uses of
2841         MIPS_RESERVED_GOTNO and mips_elf_allocate_dynamic_relocations.
2842         Check for sgotplt and splt.  Allocate the .rel(a).dyn contents last,
2843         once its final size is known.  Set DF_TEXTREL for VxWorks.  Add
2844         DT_RELA, DT_RELASZ, DT_RELAENT, DT_PLTREL, DT_PLTRELSZ and DT_JMPREL
2845         tags on VxWorks.  Do not add the MIPS-specific tags for VxWorks.
2846         (_bfd_mips_vxworks_finish_dynamic_symbol): New function.
2847         (mips_vxworks_finish_exec_plt): Likewise.
2848         (mips_vxworks_finish_shared_plt): Likewise.
2849         (_bfd_mips_elf_finish_dynamic_sections): Remove an unncessary call
2850         to mips_elf_rel_dyn_section.  Use a VxWorks-specific value of
2851         DT_PLTGOT.  Handle DT_RELA, DT_RELASZ, DT_RELAENT, DT_PLTREL,
2852         DT_PLTRELSZ and DT_JMPREL.  Update the uses of MIPS_RESERVED_GOTNO
2853         and mips_elf_rel_dyn_section.  Use a different GOT header for
2854         VxWorks.  Don't sort .rela.dyn on VxWorks.  Finish the PLT on VxWorks.
2855         (_bfd_mips_elf_link_hash_table_create): Initialize the new
2856         mips_elf_link_hash_table fields.
2857         (_bfd_mips_vxworks_link_hash_table_create): New function.
2858         (_bfd_mips_elf_final_link): Set the GP value to _GLOBAL_OFFSET_TABLE_
2859         on VxWorks.  Update the call to ELF_MIPS_GP_OFFSET.
2860         * elfxx-mips.h (_bfd_mips_vxworks_adjust_dynamic_symbol): Declare.
2861         (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
2862         (_bfd_mips_vxworks_link_hash_table_create): Likewise.
2863         * libbfd.h: Regenerate.
2864         * Makefile.am (elfxx-mips.lo): Depend on elf-vxworks.h.
2865         (elf32-mips.lo): Likewise.
2866         * Makefile.in: Regenerate.
2867         * reloc.c (BFD_RELOC_MIPS_COPY, BFD_RELOC_MIPS_JUMP_SLOT): Declare.
2868         * targets.c (bfd_elf32_bigmips_vxworks_vec): Declare.
2869         (bfd_elf32_littlemips_vxworks_vec): Likewise.
2870         (_bfd_target_vector): Add entries for them.
2872 2006-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2874         * elf64-hppa.c (elf64_hppa_special_sections): Change flags for .tbss
2875         section from SHF_PARISC_WEAKORDER to SHF_HP_TLS.
2876         (elf_backend_special_sections): Remove #undef.
2878 2006-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2880         * elf64-hppa.c (allocate_global_data_opd): Don't create an OPD entry
2881         for undefined weak symbols.
2883 2006-03-17  Daniel Jacobowitz  <dan@codesourcery.com>
2885         PR ld/2462
2886         * elflink.c (bfd_elf_final_link): Remove
2887         bed->elf_backend_emit_relocs from emit_relocs.
2889 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
2891         * elf32-ppc.c (ppc_elf_relocate_section): Copy addend from
2892         first relocation to the second when relaxing TLS GD to LE;
2893         zero it out when relaxing to IE.
2895 2006-03-17  Alan Modra  <amodra@bigpond.net.au>
2897         PR 2434
2898         * elflink.c (elf_link_add_object_symbols): Save and restore
2899         warning sym's linked sym.
2901 2006-03-16  Alan Modra  <amodra@bigpond.net.au>
2903         PR 2434
2904         * elflink.c (struct elf_smash_syms_data, elf_smash_syms): Delete.
2905         (elf_link_add_object_symbols): Delete unnecessary locals.  Rename
2906         hash_table -> htab.  Formatting.  Save entire symbol table
2907         before loading as-needed syms, and restore afterwards if lib not
2908         needed.  Use bfd_hash_allocate rather than bfd_alloc for sym
2909         name.  Free some buffers earlier.
2910         * bfd-in.h (struct bfd_hash_table): Add entsize.
2911         (bfd_hash_table_init, bfd_hash_table_init_n): Adjust prototype.
2912         * elf-bfd.h (_bfd_elf_link_hash_table_init): Likewise
2913         * hash.c (bfd_hash_table_init_n): Add entsize param, save to
2914         hash table.
2915         (bfd_hash_table_init): Add param, adjust calls.
2916         * aoutx.h: Adjust all hash_table_init functions and calls.
2917         * bfd.c: Likewise.
2918         * coff-arm.c: Likewise.
2919         * coff-h8300.c: Likewise.
2920         * coff-ppc.c: Likewise.
2921         * cofflink.c: Likewise.
2922         * ecoff.c: Likewise.
2923         * ecofflink.c: Likewise.
2924         * elf-m10300.c: Likewise.
2925         * elf-strtab.c: Likewise.
2926         * elf.c: Likewise.
2927         * elf32-arm.c: Likewise.
2928         * elf32-bfin.c: Likewise.
2929         * elf32-cris.c: Likewise.
2930         * elf32-frv.c: Likewise.
2931         * elf32-hppa.c: Likewise.
2932         * elf32-i386.c: Likewise.
2933         * elf32-m32r.c: Likewise.
2934         * elf32-m68hc1x.c: Likewise.
2935         * elf32-m68k.c: Likewise.
2936         * elf32-ppc.c: Likewise.
2937         * elf32-s390.c: Likewise.
2938         * elf32-sh.c: Likewise.
2939         * elf32-vax.c: Likewise.
2940         * elf64-alpha.c: Likewise.
2941         * elf64-hppa.c: Likewise.
2942         * elf64-ppc.c: Likewise.
2943         * elf64-s390.c: Likewise.
2944         * elf64-sh64.c: Likewise.
2945         * elf64-x86-64.c: Likewise.
2946         * elfxx-ia64.c: Likewise.
2947         * elfxx-mips.c: Likewise.
2948         * elfxx-sparc.c: Likewise.
2949         * i386linux.c: Likewise.
2950         * libaout.h: Likewise.
2951         * libbfd-in.h: Likewise.
2952         * libcoff-in.h: Likewise.
2953         * linker.c: Likewise.
2954         * m68klinux.c: Likewise.
2955         * merge.c: Likewise.
2956         * opncls.c: Likewise.
2957         * pdp11.c: Likewise.
2958         * sparclinux.c: Likewise.
2959         * stabs.c: Likewise.
2960         * sunos.c: Likewise.
2961         * vms.c: Likewise.
2962         * xcofflink.c: Likewise.
2963         * section.c (struct section_hash_entry): Move to..
2964         * libbfd-in.h: ..here.
2965         * Makefile.am: Run "make dep-am"
2966         * Makefile.in: Regenerate.
2967         * bfd-in2.h: Regenerate.
2968         * libbfd.h: Regenerate.
2969         * libcoff.h: Regenerate.
2971 2006-03-16  Alan Modra  <amodra@bigpond.net.au>
2973         * elf32-ppc.c (ppc_elf_check_relocs): REL24 and REL14 relocs
2974         against __GLOBAL_OFFSET_TABLE__ need never be dynamic.  Tweak
2975         last change to REL32 relocs so that they are counted as
2976         possibly dynamic as per REL24 and REL14.
2978 2006-03-16  Alan Modra  <amodra@bigpond.net.au>
2980         * elf32-ppc.c (ppc_elf_check_relocs): Don't fall into REL24
2981         checks from REL32.
2983 2006-03-15  Ben Elliston  <bje@au.ibm.com>
2985         * elf32-arm.c (elf32_arm_merge_eabi_attributes): Iterate over all
2986         in_list elements, not just the first.
2988 2006-03-14  Richard Sandiford  <richard@codesourcery.com>
2990         * elf32-mips.c (mips_elf_adjust_addend): New function, mostly split
2991         out from...
2992         (_bfd_mips_elf_relocate_section): ...here.  Use it to adjust r_addend
2993         for final links too.
2995 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
2997         * elfxx-mips.c (mips_elf_create_got_section): Initialize hgot.
2999 2006-03-11  H.J. Lu  <hongjiu.lu@intel.com>
3001         PR ld/2443
3002         * dwarf2.c (concat_filename): Don't issue an error if file is 0.
3004 2006-03-10  Paul Brook  <paul@codesourcery.com>
3006         * elf32-arm.c (INTERWORK_FLAG): Handle EABIv5.
3007         (elf32_arm_print_private_bfd_data): Ditto.
3009 2006-03-09  Paul Brook  <paul@codesourcery.com>
3011         * cpu-arm.c (bfd_is_arm_mapping_symbol_name): Recognise additional
3012         mapping symbols.
3014 2006-03-09  Khem Raj  <khem@mvista.com>
3016         * elf32-arm.c(elf32_arm_finish_dynamic_sections): Use unsigned
3017         char type.
3019 2006-03-08  H.J. Lu  <hongjiu.lu@intel.com>
3021         * elfxx-ia64.c (elfNN_ia64_choose_gp): Properly choose gp.
3023 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
3024             Daniel Jacobowitz  <dan@codesourcery.com>
3025             Zack Weinberg  <zack@codesourcery.com>
3026             Nathan Sidwell  <nathan@codesourcery.com>
3027             Paul Brook  <paul@codesourcery.com>
3028             Ricardo Anguiano  <anguiano@codesourcery.com>
3029             Phil Edwards  <phil@codesourcery.com>
3031         * configure.in (bfd_elf32_bigarm_vec): Include elf-vxworks.lo.
3032         (bfd_elf32_bigarm_symbian_vec): Likewise.
3033         (bfd_elf32_bigarm_vxworks_vec): Likewise.
3034         (bfd_elf32_littlearm_vec): Likewise.
3035         (bfd_elf32_littlearm_symbian_vec): Likewise.
3036         (bfd_elf32_littlearm_vxworks_vec): Likewise.
3037         * configure: Regenerate.
3038         * elf32-arm.c: Include libiberty.h and elf-vxworks.h.
3039         (RELOC_SECTION, RELOC_SIZE, SWAP_RELOC_IN, SWAP_RELOC_OUT): New macros.
3040         (elf32_arm_vxworks_bed): Add forward declaration.
3041         (elf32_arm_howto_table_1): Fix the masks for R_ASM_ABS12.
3042         (elf32_arm_vxworks_exec_plt0_entry): New table.
3043         (elf32_arm_vxworks_exec_plt_entry): Likewise.
3044         (elf32_arm_vxworks_shared_plt_entry): Likewise.
3045         (elf32_arm_link_hash_table): Add vxworks_p and srelplt2 fields.
3046         (reloc_section_p): New function.
3047         (create_got_section): Use RELOC_SECTION.
3048         (elf32_arm_create_dynamic_sections): Likewise.  Call
3049         elf_vxworks_create_dynamic_sections for VxWorks targets.
3050         Choose between the two possible values of plt_header_size
3051         and plt_entry_size.
3052         (elf32_arm_link_hash_table_create): Initialize vxworks_p and srelplt2.
3053         (elf32_arm_abs12_reloc): New function.
3054         (elf32_arm_final_link_relocate): Call it.  Allow the creation of
3055         dynamic R_ARM_ABS12 relocs on VxWorks.  Use reloc_section_p,
3056         RELOC_SIZE, SWAP_RELOC_OUT and RELOC_SECTION.  Initialize the
3057         r_addend fields of relocs.  On rela targets, skip any code that
3058         adjusts in-place addends.  When using _bfd_link_final_relocate
3059         to perform a final relocation, pass rel->r_addend as the addend
3060         argument.
3061         (elf32_arm_merge_private_bfd_data): If one of the bfds is a VxWorks
3062         object, ignore flags that are not standard on VxWorks.
3063         (elf32_arm_check_relocs): Allow the creation of dynamic R_ARM_ABS12
3064         relocs on VxWorks.  Use reloc_section_p.
3065         (elf32_arm_adjust_dynamic_symbol): Use RELOC_SECTION and RELOC_SIZE.
3066         (allocate_dynrelocs): Use RELOC_SIZE.  Account for the size of
3067         .rela.plt.unloaded relocs on VxWorks targets.
3068         (elf32_arm_size_dynamic_sections): Use RELOC_SIZE.  Check for
3069         .rela.plt.unloaded as well as .rel(a).plt.  Add DT_RELA* tags
3070         instead of DT_REL* tags on RELA targets.
3071         (elf32_arm_finish_dynamic_symbol): Use RELOC_SECTION, RELOC_SIZE
3072         and SWAP_RELOC_OUT.  Initialize r_addend fields.  Handle VxWorks
3073         PLT entries.  Do not make _GLOBAL_OFFSET_TABLE_ absolute on VxWorks.
3074         (elf32_arm_finish_dynamic_sections): Use RELOC_SECTION, RELOC_SIZE
3075         and SWAP_RELOC_OUT.  Initialize r_addend fields.  Handle DT_RELASZ
3076         like DT_RELSZ.  Handle the VxWorks form of initial PLT entry.
3077         Correct the .rela.plt.unreloaded symbol indexes.
3078         (elf32_arm_output_symbol_hook): Call the VxWorks version of this
3079         hook on VxWorks targets.
3080         (elf32_arm_vxworks_link_hash_table_create): Set vxworks_p to true.
3081         Minor formatting tweak.
3082         (elf32_arm_vxworks_final_write_processing): New function.
3083         (elf_backend_add_symbol_hook): Override for VxWorks and reset
3084         for Symbian.
3085         (elf_backend_final_write_processing): Likewise.
3086         (elf_backend_emit_relocs): Likewise.
3087         (elf_backend_want_plt_sym): Likewise.
3088         (ELF_MAXPAGESIZE): Likewise.
3089         (elf_backend_may_use_rel_p): Minor formatting tweak.
3090         (elf_backend_may_use_rela_p): Likewise.
3091         (elf_backend_default_use_rela_p): Likewise.
3092         (elf_backend_rela_normal): Likewise.
3093         * Makefile.in (elf32-arm.lo): Depend on elf-vxworks.h.
3095 2006-03-06  Nathan Sidwell  <nathan@codesourcery.com>
3097         * archures.c (bfd_mach_mcf_isa_a_nodiv, bfd_mach_mcf_isa_b_nousp):
3098         New.  Adjust other variants.
3099         (bfd_default_scan): Update.
3100         * bfd-in2.h: Rebuilt.
3101         * cpu-m68k.c: Adjust.
3102         (bfd_m68k_compatible): New. Use it for architectures.
3103         * elf32-m68k.c (elf32_m68k_object_p): Adjust.
3104         (elf32_m68k_merge_private_bfd_data): Adjust.  Correct isa-a/b
3105         mismatch.
3106         (elf32_m68k_print_private_bfd_data): Adjust.
3107         * ieee.c (ieee_write_processor): Adjust.
3109 2006-03-06  Alan Modra  <amodra@bigpond.net.au>
3111         * dwarf2.c: Formatting.
3112         (add_line_info): Remove outer loop.
3114 2006-03-05  H.J. Lu  <hongjiu.lu@intel.com>
3115             Alan Modra  <amodra@bigpond.net.au>
3117         PR binutils/2338
3118         * dwarf2.c (loadable_section): New struct.
3119         (dwarf2_debug): Add loadable_section_count and
3120         loadable_sections.
3121         (new_line_sorts_after): New.
3122         (add_line_info): Use new_line_sorts_after to compare line
3123         addresses.
3124         (check_function_name): Removed.
3125         (unset_sections): New.
3126         (place_sections): New.
3127         (_bfd_dwarf2_find_nearest_line): Updated. Call place_sections
3128         and unset_sections on relocatable files.
3129         (_bfd_dwarf2_find_line): Likewise.
3131 2006-03-03  Nick Clifton  <nickc@redhat.com>
3133         * cpu-avr.c: Update to ISO-C90 formatting.
3134         * elf32-avr.c: Likewise.
3136 2006-03-03  Bjoern Haase  <bjoern.m.haase@web.de>
3138         * elf32-avr.c (avr_reloc_map): Insert BFD_RELOC_AVR_MS8_LDI
3139         and R_AVR_MS8_LDI
3140         (bfd_elf_avr_final_write_processing): Set
3141         EF_AVR_LINKRELAX_PREPARED in e_flags field.
3142         (elf32_avr_relax_section): New function.
3143         (elf32_avr_relax_delete_bytes): New function.
3144         (elf32_avr_get_relocated_section_contents): New function.
3145         (avr_pc_wrap_around): New function.
3146         (avr_relative_distance_considering_wrap_around): New function.
3147         (avr_final_link_relocate): Handle negative int8t_t immediate for R_AVR_LDI.
3148         * reloc.c: Add BFD_RELOC_AVR_MS8_LDI and BFD_RELOC_AVR_LDI_NEG
3149         * libbfd.h: Regenerate.
3150         * bfd-in2.h: Regenerate.
3152 2006-03-02  DJ Delorie  <dj@redhat.com>
3154         * elf32-m32c.c (m32c_offset_for_reloc): Fix local symbol
3155         calculations.
3157 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
3159         * elf32-ppc.c (is_ppc_elf_target): Return true if the target is
3160         bfd_elf32_powerpc_vxworks_vec.
3162 2006-03-02  Nick Clifton  <nickc@redhat.com>
3164         * elf32-m32c.c (m32c_elf_relax_section): Initialise 'gap'.
3166 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
3168         * elf32-i386.c (elf_i386_create_dynamic_sections): Use
3169         elf_vxworks_create_dynamic_sections.
3170         (elf_i386_size_dynamic_sections): Remove VxWorks GOT and PLT
3171         symbol handling.
3172         * elf32-ppc.c (ppc_elf_create_dynamic_sections): Use
3173         elf_vxworks_create_dynamic_sections.
3174         (ppc_elf_size_dynamic_sections): Remove VxWorks GOT and PLT
3175         symbol handling.
3176         * elf-vxworks.c (elf_vxworks_create_dynamic_sections): New function.
3177         * elf-vxworks.h (elf_vxworks_create_dynamic_sections): Declare.
3179 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
3181         * elf32-i386.c (elf_i386_vxworks_link_output_symbol_hook): Delete.
3182         (elf_backend_link_output_symbol_hook): Use
3183         elf_vxworks_link_output_symbol_hook instead.
3184         * elf32-ppc.c (elf_i386_vxworks_link_output_symbol_hook): Delete.
3185         (elf_backend_link_output_symbol_hook): Use
3186         elf_vxworks_link_output_symbol_hook instead.
3187         * elf-vxworks.c (elf_vxworks_link_output_symbol_hook): Provide the
3188         same interface as elf_backend_link_output_symbol_hook.
3189         * elf-vxworks.h (elf_vxworks_link_output_symbol_hook): Update
3190         prototype accordingly.
3192 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
3194         * elf32-ppc.c (ppc_elf_plt_type): New enumeration.
3195         (ppc_elf_link_hash_table): Replace old_got and new_got with
3196         plt_type and can_use_new_plt.
3197         (ppc_elf_create_dynamic_sections): Add SEC_HAS_CONTENTS,
3198         SEC_LOAD and SEC_READONLY to the VxWorks .plt flags.
3199         (ppc_elf_check_relocs): Set can_use_new_plt instead of new_plt.
3200         Move from plt_type == PLT_UNSET to PLT_OLD instead of setting old_plt.
3201         (ppc_elf_select_plt_layout): Move from plt_type == PLT_UNSET to
3202         either plt_type == PLT_OLD or plt_type == PLT_NEW.  Assert that
3203         this function should not be called for VxWorks targets.
3204         (ppc_elf_tls_setup): Use plt_type instead of old_got.
3205         (allocate_got): Likewise.  Rearrange so that max_before_header
3206         is only used for PLT_OLD and PLT_NEW.
3207         (allocate_dynrelocs): Use plt_type instead of old_got and is_vxworks.
3208         (ppc_elf_size_dynamic_sections): Likewise.
3209         (ppc_elf_relax_section): Likewise.
3210         (ppc_elf_relocate_section): Likewise.
3211         (ppc_elf_finish_dynamic_symbol): Likewise.
3212         (ppc_elf_vxworks_link_hash_table_create): Initialize plt_type.
3214 2006-02-28  Richard Sandiford  <richard@codesourcery.com>
3216         * elf32-i386.c (elf_i386_link_hash_table): Add next_tls_desc_index.
3217         (elf_i386_link_hash_table_create): Initialize it.
3218         (elf_i386_compute_jump_table_size): Use it instead of
3219         srelplt->reloc_count.
3220         (allocate_dynrelocs): Likewise.
3221         (elf_i386_size_dynamic_sections): Likewise.
3222         (elf_i386_relocate_section): Likewise.
3224 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
3226         * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Handle S flag.
3227         (_bfd_elf_write_section_eh_frame): Likewise.
3229 2006-02-27  Carlos O'Donell  <carlos@codesourcery.com>
3231         * po/Make-in: Add html target.
3233 2006-02-27  Richard Sandiford  <richard@codesourcery.com>
3235         * elf-m10300.c (_bfd_mn10300_elf_finish_dynamic_symbol): Use the
3236         cached hgot entry to check for _GLOBAL_OFFSET_TABLE_.
3237         * elf32-arm.c (elf32_arm_finish_dynamic_symbol): Likewise.
3238         * elf32-bfin.c (bfin_finish_dynamic_symbol): Likewise.
3239         * elf32-cris.c (elf_cris_finish_dynamic_symbol): Likewise.
3240         * elf32-hppa.c (elf32_hppa_finish_dynamic_symbol): Likewise.
3241         * elf32-i386.c (elf_i386_finish_dynamic_symbol): Likewise.
3242         * elf32-m32r.c (m32r_elf_finish_dynamic_symbol): Likewise.
3243         * elf32-m68k.c (elf_m68k_finish_dynamic_symbol): Likewise.
3244         * elf32-sh.c (sh_elf_finish_dynamic_symbol): Likewise.
3245         * elf32-vax.c (elf_vax_finish_dynamic_symbol): Likewise.
3246         * elf32-xtensa.c (elf_xtensa_finish_dynamic_symbol): Likewise.
3247         * elf64-sh64.c (sh64_elf64_finish_dynamic_symbol): Likewise.
3248         * elf64-x86-64.c (elf64_x86_64_finish_dynamic_symbol): Likewise.
3249         * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Likewise.
3250         * elf32-s390.c (elf_s390_finish_dynamic_symbol): Likewise.  Also use
3251         the cached hplt entry to check for _PROCEDURE_LINKAGE_TABLE_.
3252         * elf64-alpha.c (elf64_alpha_finish_dynamic_symbol): Likewise.
3253         * elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
3254         * elfxx-ia64.c (elfNN_ia64_finish_dynamic_symbol): Likewise.
3255         * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Likewise.
3257 2006-02-25  Richard Sandiford  <richard@codesourcery.com>
3259         * elf-bfd.h (elf_link_hash_table): Add hplt field.
3260         * elflink.c (_bfd_elf_create_dynamic_sections): Initialize it.
3261         * elf-m10300.c (_bfd_mn10300_elf_create_got_section): Likewise.
3262         * elf32-frv.c (_frv_create_got_section): Likewise.
3263         * elf32-m32r.c (m32r_elf_create_dynamic_sections): Likewise.
3264         * elf32-sh.c (sh_elf_create_dynamic_sections): Likewise.
3265         * elf64-alpha.c (elf64_alpha_create_dynamic_sections): Likewise.
3266         * elf64-sh64.c (sh64_elf64_create_dynamic_sections): Likewise.
3267         * elf32-i386.c (elf_i386_link_hash_table): Remove hgot and hplt.
3268         (elf_i386_link_hash_table_create): Don't initialize them.
3269         (elf_i386_size_dynamic_sections): Use the generic ELF hplt and
3270         hgot fields.
3271         (elf_i386_finish_dynamic_symbol): Likewise.
3272         * elf32-ppc.c (ppc_elf_link_hash_table): Remove hplt.
3273         (ppc_elf_size_dynamic_sections): Use the generic ELF hplt fields.
3274         (ppc_elf_finish_dynamic_symbol): Likewise.
3276 2006-02-24  DJ Delorie  <dj@redhat.com>
3278         * elf32-m32c.c (m32c_elf_howto_table): Add relaxation relocs.
3279         (m32c_elf_relocate_section): Don't relocate them.
3280         (compare_reloc): New.
3281         (relax_reloc): Remove.
3282         (m32c_offset_for_reloc): New.
3283         (m16c_addr_encodings): New.
3284         (m16c_jmpaddr_encodings): New.
3285         (m32c_addr_encodings): New.
3286         (m32c_elf_relax_section): Relax jumps and address displacements.
3287         (m32c_elf_relax_delete_bytes): Adjust for internal syms.  Fix up
3288         short jumps.
3290         * reloc.c: Add m32c relax relocs.
3291         * libbfd.h: Regenerate.
3292         * bfd-in2.h: Regenerate.
3294 2006-02-24  H.J. Lu  <hongjiu.lu@intel.com>
3296         PR ld/2218
3297         * elf-bfd.h (elf_backend_data): Add elf_backend_fixup_symbol.
3298         (_bfd_elf_link_hash_fixup_symbol): New.
3300         * elflink.c (_bfd_elf_link_hash_fixup_symbol): New.
3301         (_bfd_elf_fix_symbol_flags): Call elf_backend_fixup_symbol if
3302         it isn't NULL.
3304         * elfxx-ia64.c (elf_backend_fixup_symbol): Defined.
3306         * elfxx-target.h (elf_backend_fixup_symbol): New.
3307         (elfNN_bed): Initialize elf_backend_fixup_symbol.
3309 2006-02-23  H.J. Lu  <hongjiu.lu@intel.com>
3311         * cpu-ia64-opc.c (ins_immu5b): New.
3312         (ext_immu5b): Likewise.
3313         (elf64_ia64_operands): Add IMMU5b.
3315 2006-02-21  Alan Modra  <amodra@bigpond.net.au>
3317         PR ld/2218
3318         * elf32-arm.c (allocate_dynrelocs): Ensure undef weak sym in pie
3319         is dynamic.
3320         * elf32-hppa.c (allocate_dynrelocs): Likewise.
3321         * elf32-i386.c (allocate_dynrelocs): Likewise.
3322         * elf32-s390.c (allocate_dynrelocs): Likewise.
3323         * elf32-sh.c (allocate_dynrelocs): Likewise.
3324         * elf64-s390.c (allocate_dynrelocs): Likewise.
3325         * elf64-x86-64.c (allocate_dynrelocs): Likewise.
3326         * elf32-m32r.c (allocate_dynrelocs): Likewise.  Discard relocs
3327         on undef weak with non-default visibility too.
3328         * elfxx-sparc.c (allocate_dynrelocs): Ditto.
3330 2006-02-21  Alan Modra  <amodra@bigpond.net.au>
3332         * bfd.c: (_bfd_default_error_handler): Don't call abort on
3333         error, instead call _exit.
3334         (_bfd_abort): Call _exit not xexit.
3336 2006-02-17  Kevin Buettner  <kevinb@redhat.com>
3338         * elf32-frv.c (elf32_frv_grok_prstatus, elf32_frv_grok_psinfo):
3339         New functions.
3340         * elf_backend_grok_prstatus, elf_backend_grok_psinfo): Define.
3342 2006-02-17  Shrirang Khisti  <shrirangk@kpitcummins.com>
3343             Anil Paranjape  <anilp1@kpitcummins.com>
3344             Shilin Shakti  <shilins@kpitcummins.com>
3346         * Makefile.am: Add xc16x related entry
3347         * Makefile.in: Regenerate
3348         * archures.c: Add bfd_xc16x_arch
3349         * bfd-in2.h: Regenerate
3350         * config.bfd: Add xc16x-*-elf
3351         * configure.in: Add bfd_elf32_xc16x_vec
3352         * configure: Regenerate.
3353         * targets.c: Added xc16x related information
3354         * cpu-xc16x.c: New file
3355         * reloc.c: Add new relocations specific to xc16x:
3356         BFD_RELOC_XC16X_PAG, BFD_RELOC_XC16X_POF, BFD_RELOC_XC16X_SEG,
3357         BFD_RELOC_XC16X_SOF
3358         * elf32-xc16x.c: New file.
3360 2006-02-17  Alan Modra  <amodra@bigpond.net.au>
3362         * elf32-ppc.c (allocate_dynrelocs): Tweak undef weak handling.
3363         * elf64-ppc.c (allocate_dynrelocs): Likewise.
3365 2006-02-17  Alan Modra  <amodra@bigpond.net.au>
3367         PR ld/2218
3368         * elf64-ppc.c (allocate_dynrelocs): Ensure undef weak sym is
3369         dynamic.
3370         (ppc64_elf_relocate_section): Check output reloc section size.
3371         * elf32-ppc.c (allocate_dynrelocs): Simplify undef weak test.
3373 2006-02-16  H.J. Lu  <hongjiu.lu@intel.com>
3375         PR ld/2322
3376         * elf.c (get_segment_type): New function.
3377         (_bfd_elf_print_private_bfd_data): Use it.
3378         (print_segment_map): New function.
3379         (assign_file_positions_for_segments): Call print_segment_map
3380         when there are not enough room for program headers.
3382 2006-02-16  Nick Hudson  <nick.hudson@dsl.pipex.com>
3384         * config.bfd (mips*el-*-netbsd*, mips*-*-netbsd*): Use
3385         traditional MIPS ELF targets.
3387 2006-02-15  H.J. Lu  <hongjiu.lu@intel.com>
3389         PR binutils/2338
3390         * dwarf2.c (check_function_name): New function.
3391         (_bfd_dwarf2_find_nearest_line): Use check_function_name to
3392         check if function is correct.
3394 2006-02-16  Alan Modra  <amodra@bigpond.net.au>
3396         * elflink.c (_bfd_elf_default_action_discarded): Return 0 for
3397         debug sections.
3398         (elf_link_input_bfd): Adjust comments.
3400 2006-02-10  H.J. Lu  <hongjiu.lu@intel.com>
3402         * elf.c (copy_private_bfd_data): Minor update.
3404 2006-02-10  H.J. Lu  <hongjiu.lu@intel.com>
3406         PR binutils/2258
3407         * elf.c (copy_private_bfd_data): Renamed to ...
3408         (rewrite_elf_program_header): This.
3409         (copy_elf_program_header): New function.
3410         (copy_private_bfd_data): Likewise.
3412 2006-02-07  Nathan Sidwell  <nathan@codesourcery.com>
3414         * archures.c (bfd_mach_mcf5200, bfd_mach_mcf5206e,
3415         bfd_mach_mcf5307, bfd_mach_mcf5407, bfd_mach_mcf528x,
3416         bfd_mach_mcfv4e, bfd_mach_mcf521x, bfd_mach_mcf5249,
3417         bfd_mach_mcf547x, bfd_mach_mcf548x): Remove.
3418         (bfd_mach_mcf_isa_a, bfd_mach_mcf_isa_a_div,
3419         bfd_mach_mcf_isa_a_div_mac, bfd_mach_mcf_isa_a_div_emac,
3420         bfd_mach_mcf_isa_aplus, bfd_mach_mcf_isa_aplus_mac,
3421         bfd_mach_mcf_isa_aplus_emac, bfd_mach_mcf_isa_aplus_usp,
3422         bfd_mach_mcf_isa_aplus_usp_mac, bfd_mach_mcf_isa_aplus_usp_emac,
3423         bfd_mach_mcf_isa_b, bfd_mach_mcf_isa_b_mac, bfd_mach_mcf_isa_b_emac,
3424         bfd_mach_mcf_isa_b_usp_float, bfd_mach_mcf_isa_b_usp_float_mac,
3425         bfd_mach_mcf_isa_b_usp_float_emac): New.
3426         (bfd_default_scan): Update coldfire mapping.
3427         * bfd-in.h (bfd_m68k_mach_to_features,
3428         bfd_m68k_features_to_mach): Declare.
3429         * bfd-in2.h: Rebuilt.
3430         * cpu-m68k.c (arch_info_struct): Add new coldfire machines,
3431         adjust legacy names.
3432         (m68k_arch_features): New.
3433         (bfd_m68k_mach_to_features,
3434         bfd_m68k_features_to_mach): Define.
3435         * elf32-m68k.c (elf32_m68k_object_p): New.
3436         (elf32_m68k_merge_private_bfd_data): Merge the CF EF flags.
3437         (elf32_m68k_print_private_bfd_data): Print the CF EF flags.
3438         (elf_backend_object_p): Define.
3439         * ieee.c (ieee_write_processor): Update coldfire machines.
3440         * libbfd.h: Rebuilt.
3442 2006-02-06  Steve Ellcey  <sje@cup.hp.com>
3444         * elfxx-ia64.c (elfNN_ia64_fake_sections): Set SHF_IA_64_HP_TLS
3445         if SHF_TLS is set.
3447 2006-02-05  Arnold Metselaar  <arnold.metselaar@planet.nl>
3449         * coff-z80.c (r_imm24): New howto.
3450         (rtype2howto): New case R_IMM24.
3451         (coff_z80_reloc_type_lookup): New case BFD_RELOC_24.
3452         (extra_case): Use bfd_get_8 for R_IMM8, new case R_IMM24.
3454 2006-02-04  Richard Sandiford  <richard@codesourcery.com>
3456         * elfxx-mips.c (mips_elf_initialize_tls_index): If a TLS symbol
3457         has already been assigned a GOT index, copy that index to the
3458         current hash table entry.
3460 2006-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
3462         * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Reinstate bypass
3463         for call-to-undefweak reloc overflow.
3465 2006-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
3467         * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Reinstate bypass
3468         for 32-bit relocs overflow.
3470 2006-01-27  Paul Brook  <paul@codesourcery.com>
3472         * elf32-arm.c (elf32_arm_get_symbol_type): Allow STT_TLS thumb
3473         objects.
3475 2006-01-18  Alexandre Oliva  <aoliva@redhat.com>
3477         Introduce TLS descriptors for i386 and x86_64.
3478         * reloc.c (BFD_RELOC_386_TLS_GOTDESC, BFD_RELOC_386_TLS_DESC,
3479         BFD_RELOC_386_TLS_DESC_CALL, BFD_RELOC_X86_64_GOTPC32_TLSDESC,
3480         BFD_RELOC_X86_64_TLSDESC, BFD_RELOC_X86_64_TLSDESC_CALL): New.
3481         * libbfd.h, bfd-in2.h: Rebuilt.
3482         * elf32-i386.c (elf_howto_table): New relocations.
3483         (R_386_tls): Adjust.
3484         (elf_i386_reloc_type_lookup): Map new relocations.
3485         (GOT_TLS_GDESC, GOT_TLS_GD_BOTH_P): New macros.
3486         (GOT_TLS_GD_P, GOT_TLS_GDESC_P, GOT_TLS_GD_ANY_P): New macros.
3487         (struct elf_i386_link_hash_entry): Add tlsdesc_got field.
3488         (struct elf_i386_obj_tdata): Add local_tlsdesc_gotent field.
3489         (elf_i386_local_tlsdesc_gotent): New macro.
3490         (struct elf_i386_link_hash_table): Add sgotplt_jump_table_size.
3491         (elf_i386_compute_jump_table_size): New macro.
3492         (link_hash_newfunc): Initialize tlsdesc_got.
3493         (elf_i386_link_hash_table_create): Set sgotplt_jump_table_size.
3494         (elf_i386_tls_transition): Handle R_386_TLS_GOTDESC and
3495         R_386_TLS_DESC_CALL.
3496         (elf_i386_check_relocs): Likewise.  Allocate space for
3497         local_tlsdesc_gotent.
3498         (elf_i386_gc_sweep_hook): Handle R_386_TLS_GOTDESC and
3499         R_386_TLS_DESC_CALL.
3500         (allocate_dynrelocs): Count function PLT relocations.  Reserve
3501         space for TLS descriptors and relocations.
3502         (elf_i386_size_dynamic_sections): Reserve space for TLS
3503         descriptors and relocations.  Set up sgotplt_jump_table_size.
3504         Don't zero reloc_count in srelplt.
3505         (elf_i386_always_size_sections): New.  Set up _TLS_MODULE_BASE_.
3506         (elf_i386_relocate_section): Handle R_386_TLS_GOTDESC and
3507         R_386_TLS_DESC_CALL.
3508         (elf_i386_finish_dynamic_symbol): Use GOT_TLS_GD_ANY_P.
3509         (elf_backend_always_size_sections): Define.
3510         * elf64-x86-64.c (x86_64_elf_howto): Add R_X86_64_GOTPC32_TLSDESC,
3511         R_X86_64_TLSDESC, R_X86_64_TLSDESC_CALL.
3512         (R_X86_64_standard): Adjust.
3513         (x86_64_reloc_map): Map new relocs.
3514         (elf64_x86_64_rtype_to_howto): New, split out of...
3515         (elf64_x86_64_info_to_howto): ... this function, and...
3516         (elf64_x86_64_reloc_type_lookup): ... use it to map elf_reloc_val.
3517         (GOT_TLS_GDESC, GOT_TLS_GD_BOTH_P): New macros.
3518         (GOT_TLS_GD_P, GOT_TLS_GDESC_P, GOT_TLS_GD_ANY_P): New macros.
3519         (struct elf64_x86_64_link_hash_entry): Add tlsdesc_got field.
3520         (struct elf64_x86_64_obj_tdata): Add local_tlsdesc_gotent field.
3521         (elf64_x86_64_local_tlsdesc_gotent): New macro.
3522         (struct elf64_x86_64_link_hash_table): Add tlsdesc_plt,
3523         tlsdesc_got and sgotplt_jump_table_size fields.
3524         (elf64_x86_64_compute_jump_table_size): New macro.
3525         (link_hash_newfunc): Initialize tlsdesc_got.
3526         (elf64_x86_64_link_hash_table_create): Initialize new fields.
3527         (elf64_x86_64_tls_transition): Handle R_X86_64_GOTPC32_TLSDESC and
3528         R_X86_64_TLSDESC_CALL.
3529         (elf64_x86_64_check_relocs): Likewise.  Allocate space for
3530         local_tlsdesc_gotent.
3531         (elf64_x86_64_gc_sweep_hook): Handle R_X86_64_GOTPC32_TLSDESC and
3532         R_X86_64_TLSDESC_CALL.
3533         (allocate_dynrelocs): Count function PLT relocations.  Reserve
3534         space for TLS descriptors and relocations.
3535         (elf64_x86_64_size_dynamic_sections): Reserve space for TLS
3536         descriptors and relocations.  Set up sgotplt_jump_table_size,
3537         tlsdesc_plt and tlsdesc_got.  Make room for them.  Don't zero
3538         reloc_count in srelplt.  Add dynamic entries for DT_TLSDESC_PLT
3539         and DT_TLSDESC_GOT.
3540         (elf64_x86_64_always_size_sections): New.  Set up
3541         _TLS_MODULE_BASE_.
3542         (elf64_x86_64_relocate_section): Handle R_386_TLS_GOTDESC and
3543         R_386_TLS_DESC_CALL.
3544         (elf64_x86_64_finish_dynamic_symbol): Use GOT_TLS_GD_ANY_P.
3545         (elf64_x86_64_finish_dynamic_sections): Set DT_TLSDESC_PLT and
3546         DT_TLSDESC_GOT.  Set up TLS descriptor lazy resolver PLT entry.
3547         (elf_backend_always_size_sections): Define.
3549 2006-01-17  H.J. Lu  <hongjiu.lu@intel.com>
3551         PR binutils/2096
3552         * dwarf2.c (comp_unit_contains_address): Update comment.
3553         (_bfd_dwarf2_find_nearest_line): Use section's vma, instead of
3554         lma.  Return TRUE only if both comp_unit_contains_address and
3555         comp_unit_find_nearest_line return TRUE.
3556         (_bfd_dwarf2_find_line): Use section's vma, instead of lma.
3558 2006-01-18  Alan Modra  <amodra@bigpond.net.au>
3560         * elf-bfd.h (struct elf_backend_data): Add gc_mark_dynamic_ref.
3561         (bfd_elf_gc_mark_dynamic_ref_symbol): Declare.
3562         * elflink.c (bfd_elf_gc_mark_dynamic_ref_symbol): Rename from
3563         elf_gc_mark_dynamic_ref_symbol.  Make global.
3564         (bfd_elf_gc_sections): Call bed->gc_mark_dynamic_ref.
3565         * elfxx-target.h (elf_backend_gc_mark_dynamic_ref): Define.
3566         (elfNN_bed): Init new field.
3567         * elf64-ppc.c (elf_backend_gc_mark_dynamic_ref): Define.
3568         (ppc64_elf_gc_mark_dynamic_ref): New function.
3570 2006-01-17  Alan Modra  <amodra@bigpond.net.au>
3572         * elf64-ppc.c (ppc64_elf_gc_mark_hook): Don't hang forever in loop.
3574 2006-01-17  Nick Clifton  <nickc@redhat.com>
3576         PR binutils/2159
3577         * elf.c (elfcore_write_pstatus): Add ATTRIBUTE_UNUSED to unused
3578         parameters.
3580 2006-01-11  Nick Clifton  <nickc@redhat.com>
3582         * elf32-arm.c (elf32_arm_output_symbol_hook): Install new entry
3583         into the newly (re)allocated map array.
3585 2006-01-09  Alexis Wilke  <alexis_wilke@yahoo.com>
3587         * peXXigen.c (tbl): Add comma after "HIGH3ADJ".
3589 2006-01-01  Jakub Jelinek  <jakub@redhat.com>
3591         * elf64-ppc.c (ppc64_elf_action_discarded): Return 0
3592         for .toc1 section.
3594 For older changes see ChangeLog-2005
3596 Copyright (C) 2006 Free Software Foundation, Inc.
3598 Copying and distribution of this file, with or without modification,
3599 are permitted in any medium without royalty provided the copyright
3600 notice and this notice are preserved.
3602 Local Variables:
3603 mode: change-log
3604 left-margin: 8
3605 fill-column: 74
3606 version-control: never
3607 End: