12008-12-29  Arnold Metselaar  <arnold.metselaar@planet.nl>
2
3	* coff-z80.c (r_imm32): Fix copy-paste bug that caused z80-objdump to
4	issue warnings about stabs debugging symbols rather than to show them.
5
62008-12-23  Jon Beniston <jon@beniston.com>
7
8	* Makefile.am: Add LM32 object files and dependencies.
9	* Makefile.in: Regenerate.
10	* archures.c: Add LM32 architechiture info.
11	* targets.c: Likewise.
12	* reloc.c: Likewise.
13	* bfd-in2.h: Regenerate.
14	* config.bfd: Add LM32 targets.
15	* configure.in: Likewise.
16	* configure: Regenerate.
17	* cpu-lm32.c: New file.
18	* elf32-lm32.c: New file.
19
202008-12-23  H.J. Lu  <hongjiu.lu@intel.com>
21
22	PR ld/7036
23	* elfxx-ia64.c (elfNN_ia64_relax_section): Assume linker will
24	always insert 32byte between the .plt and .text sections after
25	the first relaxation pass.
26
272008-12-23  Nick Clifton  <nickc@redhat.com>
28
29	PR 7093
30	* elf32-arm.c (bfd_elf32_arm_init_maps): Only process ARM ELF
31	object files.
32
332008-12-23  Tristan Gingold  <gingold@adacore.com>
34
35	* mach-o.c (bfd_mach_o_make_bfd_section): Use the standard ELF name
36	.eh_frame for __TEXT.__eh_frame so that it is recognized by gdb.
37	Use shorter sections name for well known sections.
38	(bfd_mach_o_scan_read_dylinker): Only put dylinker name in the
39	section content.
40	(bfd_mach_o_scan_read_segment): Use shorter sections name for
41	well known segments.
42	(bfd_mach_o_scan_read_command): Ignore some new commands.
43	(bfd_mach_o_openr_next_archived_file): Use more descriptive names
44	for members filename.
45	(bfd_mach_o_fat_extract): New function to easily extract members
46	of a fat binary.
47	* mach-o.h (bfd_mach_o_load_command_type): Add new constants.
48	(bfd_mach_o_dylinker_command): Fix comment and reindent.
49	(bfd_mach_o_fat_extract): New prototype.
50
512008-12-23  Johan Olmutz Nielsen  <jnielsen@ddci.com>
52
53	* coffcode.h (coff_write_object_contents): Always initialise
54	section.s_page.
55
562008-12-23  Andreas Schwab  <schwab@suse.de>
57
58	* elf32-m68k.c (elf_m68k_discard_copies): Use SYMBOL_CALLS_LOCAL.
59	(elf_m68k_relocate_section): Use SYMBOL_CALLS_LOCAL and
60	SYMBOL_REFERENCES_LOCAL.
61	(elf_m68k_relocate_section): Likewise.
62
632008-12-23  Nick Clifton  <nickc@redhat.com>
64
65	* elf-bfd.h (struct bfd_elf_section_data): Remove indirect_relocs
66	field.
67	(_bfd_elf_make_ifunc_reloc_section): Remove prototype.
68	* elf.c (swap_out_syms): Remove STT_IFUNC support.
69	(elf_find_function): Likewise.
70	* elf32-arm.c (arm_elf_find_function): Likewise.
71	(elf32_arm_adjust_dynamic_symbol): Likewise.
72	(elf32_arm_swap_symbol_in): Likewise.
73	(elf32_arm_is_function_type): Likewise.
74	* elf32-i386.c (is_indirect_symbol): Delete.
75	(elf_i386_check_relocs): Remove STT_IFUNC support.
76	(allocate_dynrelocs): Likewise.
77	(elf_i386_relocate_section): Likewise.
78	* elf64-x86-64.c (is_indirect_symbol): Delete.
79	(elf64_x86_64_check_relocs): Remove STT_IFUNC support.
80	(allocate_dynrelocs): Likewise.
81	(elf64_x86_64_relocate_section): Likewise.
82	* elfcode.h (elf_slurp_symbol_table): Likewise.
83	* elflink.c (_bfd_elf_adjust_symbol): Likewise.
84	(get_ifunc_reloc_section_name): Delete.
85	(_bfd_elf_make_ifunc_reloc_section): Delete.
86	* syms.c (BSF_INDIRECT_FUNCTION): Delete.
87	(bfd_print_symbol_vandf): Remove STT_IFUNC support.
88	(bfd_decode_symclass): Likewise.
89	* bfd-in2.h: Regenerate.
90
912008-12-20  Hans-Peter Nilsson  <hp@axis.com>
92
93	* elf32-cris.c 	(cris_elf_howto_table): Add entry for R_CRIS_32_IE.
94	(cris_reloc_map): Similarly.
95	(cris_elf_relocate_section, cris_elf_gc_sweep_hook)
96	(cris_elf_check_relocs): Handle R_CRIS_32_IE.
97	* reloc.c (bfd_reloc_code_type): Add entry for R_CRIS_32_IE.
98	* bfd-in2.h, libbfd.h: Regenerate.
99
1002008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
101
102	* configure: Regenerate.
103
1042008-12-17  Hans-Peter Nilsson  <hp@axis.com>
105
106	* elf32-cris.c (elf_cris_copy_indirect_symbol): Return without
107	action for symbols other than bfd_link_hash_indirect.
108	(cris_elf_relocate_section) <R_CRIS_8, R_CRIS_16, R_CRIS_32>: Add missing
109	gate h != NULL for h->def_regular test.
110
1112008-12-15  Hans-Peter Nilsson  <hp@axis.com>
112
113	* elf32-cris.c (elf_cris_copy_indirect_symbol): New function.
114	(elf_backend_copy_indirect_symbol): Define to above.
115
116	* elf32-cris.c (struct elf_cris_pcrel_relocs_copied): New member
117	r_type.  Fix formatting.
118	(cris_elf_relocate_section) <R_CRIS_8_PCREL, R_CRIS_16_PCREL>
119	<R_CRIS_32_PCREL>: Also break early if the symbol doesn't get
120	emitted as a dynamic one.
121	(cris_elf_check_relocs) <R_CRIS_7, R_CRIS_16, R_CRIS_32>: Fork
122	from PCREL relocs code and simplify; don't fall through.
123	<R_CRIS_8_PCREL, R_CRIS_16_PCREL, R_CRIS_32_PCREL>: Simplify for
124	pcrel only.  For non-local or overridable symbols in a DSO, always
125	keep count of relocs, not just when -Bsymbolic.  Don't emit
126	message nor mark as TEXTREL here.
127	(elf_cris_discard_excess_dso_dynamics): Emit warning and mark as
128	TEXTREL here, if there are nondiscarded pcrel relocs.
129
130	* elf32-cris.c (elf_cris_got_elt_size) <symtab_hdr>: Initialize
131	using ibfd, not abfd.
132
1332008-12-11  Alan Modra  <amodra@bigpond.net.au>
134
135	PR 7041
136	* elf64-ppc.c (func_desc_adjust): Correct logic making fake function
137	descriptors.  Similarly correct making function descriptors dynamic.
138
1392008-12-10  Alan Modra  <amodra@bigpond.net.au>
140
141	* elf32-spu.h (struct spu_elf_params): Add num_regions.
142	* elf32-spu.c (spu_elf_auto_overlay): Handle multiple overlay regions.
143
1442008-12-10  Alan Modra  <amodra@bigpond.net.au>
145
146	* elf32-spu.g (struct spu_elf_params, enum _ovly_flavour): New.
147	(spu_elf_setup): Declare.
148	(spu_elf_create_sections, spu_elf_size_stubs): Update prototype.
149	(spu_elf_build_stubs, spu_elf_check_vma): Likewise.
150	* elf32-spu.c (struct spu_link_hash_table): Add "params". Remove
151	various other fields now in "params".  Adjust code throughout.
152	(struct call_info, struct function_info): Move earlier in file.
153	(struct spu_elf_stack_info): Likewise.
154	(spu_elf_setup): New function.
155	(spu_elf_create_sections): Remove args other than "info".
156	(spu_elf_size_stubs, spu_elf_build_stubs, spu_elf_check_vma): Likewise.
157	(maybe_needs_stubs): Remove "output_bfd" arg.  Adjust all calls.
158	(interesting_section): Similarly with "obfd" arg.
159	(needs_ovl_stub): Adjust output_section test.
160	(allocate_spuear_stubs): Likewise.
161	(OVL_STUB_SIZE): Don't define.
162	(ovl_stub_size): New function, use in place of OVL_STUB_SIZE.
163	(build_stub): Test params->ovly_flavour rather than OVL_STUB_SIZE.
164	(spu_elf_auto_overlay): Remove args other than "info".  Make use
165	of size returned from spu_elf_load_ovl_mgr.
166	(spu_elf_stack_analysis): Remove args other than "info".
167	(spu_elf_relocate_section): Tidy setting of "ea".
168
1692008-12-10  Alan Modra  <amodra@bigpond.net.au>
170
171	* elf32-spu.c (find_function_stack_adjust): Don't limit number
172	of insns scanned.  Correct sp tests.  Handle "fsmbi" and "andbi".
173	(mark_detached_root): New function.
174	(build_call_tree): Call it.
175	(sort_calls): Don't do void* arithmetic.
176	(define_ovtab_symbol): Don't abort on symbols defined in linker scripts.
177	(discover_functions): Consider STT_SECTION symbols too.
178	(collect_lib_sections): Don't cut short call tree traversal
179	when function size is too large.
180
1812008-12-09  Tom Tromey  <tromey@redhat.com>
182
183	* pef.c (bfd_pef_parse_traceback_table): Add parens to placate gcc
184	4.4.
185
1862008-12-09  Tristan Gingold  <gingold@adacore.com>
187
188	* cpu-avr.c (compatible): Makes avr-6 compatible only with itself.
189
1902008-12-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
191
192	* elf64-s390.c (elf_s390_check_relocs): Initialize
193	htab->elf.dynobj if necessary.
194
1952008-12-03  Nick Clifton  <nickc@redhat.com>
196
197	* syms.c (struct bfd_symbol): Add new flag BSF_INDIRECT_FUNCTION.
198	Remove redundant flag BFD_FORT_COMM_DEFAULT_VALUE.  Renumber flags
199	to remove gaps.
200	(bfd_print_symbol_vandf): Return 'i' for BSF_INDIRECT_FUNCTION.
201	(bfd_decode_symclass): Likewise.
202	* elf.c (swap_out_syms): Translate BSF_INDIRECT_FUNCTION into
203	STT_IFUNC.
204	(elf_find_function): Treat STT_IFUNC in the same way as STT_FUNC.
205	(_bfd_elf_is_function_type): Likewise.
206	* elf32-arm.c (arm_elf_find_function): Likewise.
207	(elf32_arm_adjust_dynamic_symbol): Likewise.
208	(elf32_arm_swap_symbol_in): Likewise.
209	(elf32_arm_additional_program_headers): Likewise.
210	* elf32-i386.c (is_indirect_symbol): New function.
211	(elf_i386_check_relocs): Also generate dynamic relocs for
212	relocations against STT_IFUNC symbols.
213	(allocate_dynrelocs): Likewise.
214	(elf_i386_relocate_section): Likewise.
215	* elf64-x86-64.c (is_indirect_symbol): New function.
216	(elf64_x86_64_check_relocs): Also generate dynamic relocs for
217	relocations against STT_IFUNC symbols.
218	(allocate_dynrelocs): Likewise.
219	(elf64_x86_64_relocate_section): Likewise.
220	* elfcode.h (elf_slurp_symbol_table): Translate STT_IFUNC into
221	BSF_INDIRECT_FUNCTION.
222	* elflink.c (_bfd_elf_adjust_dynamic_reloc_section): Add support
223	for STT_IFUNC symbols.
224	(get_ifunc_reloc_section_name): New function.
225	(_bfd_elf_make_ifunc_reloc_section): New function.
226	* elf-bfd.h (struct bfd_elf_section_data): Add indirect_relocs field.
227	* bfd-in2.h: Regenerate.
228
2292008-12-02  Tristan Gingold  <gingold@adacore.com>
230
231	* config.bfd: Add x86_64-*-darwin*
232
2332008-11-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
234
235	* hpux-core.c: Don't include sys/file.h.
236
2372008-11-28  Joshua Kinard  <kumba@gentoo.org>
238
239	* aoutx.h (NAME): Add case statements for bfd_mach_mips14000,
240	bfd_mach_mips16000.
241	* archures.c (bfd_architecture): Add .#defines for bfd_mach_mips14000,
242	bfd_mach_mips16000.
243	* bfd-in2.h: Regenerate.
244	* cpu-mips.c: Add enums I_mips14000, I_mips16000.
245	(arch_info_struct): Add refs to R14000, R16000.
246	* elfxx-mips.c (mips_set_isa_flags): Handle bfd_mach_mips14000,
247	bfd_mach_mips16000.
248	(mips_mach_extensions): Map R14000, R16000 to R10000.
249
2502008-11-27   M R Swami Reddy <MR.Swami.Reddy@nsc.com>
251
252	* Add PIC support for CR16 target.
253	* elf32-cr16.c (R_CR16_GOT_REGREL20, R_CR16_GOTC_REGREL20 and
254	R_CR16_GLOB_DAT): New macros
255	(cr16_elf_howto_table): Add entries for for R_CR16_GOT_REGREL20,
256	R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT.
257	(cr16_reloc_map): Ditto
258	(_bfd_cr16_elf_create_got_section): New function to create GOT section.
259	(_bfd_cr16_elf_create_dynamic_sections): New function to create dynamic
260	section.
261	(_bfd_cr16_elf_adjust_dynamic_symbol): New function to adjust symbol
262	defined by dynamic object.
263	(_bfd_cr16_elf_size_dynamic_sections): New function to find the size of
264	dynamic sections.
265	(_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic
266	symbols.
267	(_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic
268	sections.
269	(bfd_cr16_elf32_create_embedded_relocs): New function to create
270	embedded relocs in .emreloc section in memory for .data.rel section.
271	(_bfd_cr16_elf_reloc_type_class): New function for classify reloc types.
272	(cr16_elf_check_relocs): New function for checking reloc types in first
273	phase.
274	(cr16_elf_final_link_relocate): Update for handling the new reloc types
275	R_CR16_GOT_REGREL20 and R_CR16_GOTC_REGREL20.
276	(elf32_cr16_relax_section): Update relax implementation.
277	* reloc.c (bfd_reloc_code_type): Add entries for R_CR16_GOT_REGREL20,
278	R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT.
279	* bfd-in.h (bfd_boolean bfd_cr16_elf32_create_embedded_relocs): Declared
280	* libbfd.h, bfd-in2.h: Regenerate.
281
2822008-11-26  Alan Modra  <amodra@bigpond.net.au>
283
284	PR 7047
285	* configure.in: Bump version.
286	* configure: Regenerate.
287	* elflink.c (_bfd_elf_link_assign_sym_version): Continue matching
288	against version nodes when a global match is a wildcard.  Similarly
289	continue matching on local wildcard matches, rather than only
290	continuing for "*".  Have any global wildcard match override a
291	local wildcard match.  Correct logic hiding unversioned symbol.
292	(bfd_elf_size_dynamic_sections): Update for changes to struct
293	bfd_elf_version_expr.
294
2952008-11-25  Joel Brobecker  <brobecker@adacore.com>
296
297	* configure.in: Deactivate large-file support on native x86-solaris
298	as well unless the user explicitly requested it.
299	* configure: Regenerate.
300
3012008-11-25  Joseph Myers  <joseph@codesourcery.com>
302
303	* elf32-arm.c (elf32_arm_final_link_relocate): Do not turn
304	branches to undefine weak symbols into branches to the next
305	instruction if creating PLT entries for those symbols.
306
3072008-11-25  Nick Clifton  <nickc@redhat.com>
308
309	* elflink.c (is_reloc_section): New function.  Returns true if the
310	given name matches the name of the reloc-containing section
311	associated with the given section.
312	(get_dynamic_reloc_section_name): New function.  Computes the name
313	of the section that contains the dynamic relocs associated with
314	the given section.
315	(_bfd_elf_get_dynamic_reloc_section): New function.  Returns a
316	pointer to the section containing the dynamic relocs associated
317	with the given section.
318	(_bfd_elf_make_dynamic_reloc_section): New function.  Creates a
319	section to contain the dynamic relocs associated with a given
320	section.
321	* elf-bfd.h: Prototype the new functions.
322	* elf-m10300.c (mn10300_elf_check_relocs): Use new functions.
323	(mn10300_elf_final_link_relocs): Likewise.
324	* elf32-arm.c (reloc_section_p): Delete - replaced by new
325	functions.
326	(elf32_arm_final_link_relocate): Use new functions.
327	(elf32_arm_check_relocs): Likewise.
328	* elf32-cris.c (cris_elf_relocate_section): Likewise.
329	(elf_cris_check_relocs): Likewise.
330	* elf32-hppa.c (elf32_hppa_check_relocs): Likewise.
331	* elf32-i370.c (i370_elf_check_relocs): Likewise.
332	(i370_elf_relocate_section): Likewise.
333	* elf32-i386.c (elf_i386_check_relocs): Likewise.
334	* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
335	(m32r_elf_check_relocs): Likewise.
336	* elf32-m68k.c (elf_m68k_check_relocs): Likewise.
337	* elf32_ppc.c (ppc_elf_check_relocs): Likewise.
338	(ppc_elf_relocate_section): Likewise.
339	* elf32-s390.c (elf_s390_check_relocs): Likewise.
340	* elf32-sh.c (sh_elf_relocate_section): Likewise.
341	(sh_elf_check_relocs): Likewise.
342	* elf32-vax.c (elf_vax_check_relocs): Likewise.
343	(elf_vax_relocate_section): Likewise.
344	* elf64-alpha.c (elf64_alpha_check_relocs): Likewise.
345	* elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
346	* elf64-s390.c (elf_s390_check_relocs): Likewise.
347	* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
348	* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
349	* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise.
350	* elf32-bfin.c (bfin_check_relocs): Remove redundant local
351	variable 'sreloc'.
352	(bfin_relocate_section): Likewise.
353	* elf32-v850.c (v850_elf_check_relocs): Likewise.
354
3552008-11-23  Hans-Peter Nilsson  <hp@axis.com>
356
357	Implement TLS for CRIS.
358	* elf32-cris.c: Include limits.h.
359	(TLSHOWTO16): Redefine in terms of and move contents to...
360	(TLSHOWTO16X): New macro.
361	(TLSHOWTO16S, LGOT_REG_NDX, LGOT_DTP_NDX, LGOT_ALLOC_NELTS_FOR)
362	(elf_cris_hash_entry): New macros.
363	(cris_elf_howto_table): Make R_CRIS_16_DTPREL,
364	R_CRIS_16_GOT_TPREL, R_CRIS_16_TPREL check overflow for signed,
365	not unsigned values.
366	(cris_info_to_howto_rela): Make r_type a enum elf_cris_reloc_type,
367	not unsigned int.
368	(struct elf_cris_link_hash_entry): New members reg_got_refcount,
369	tprel_refcount, and dtp_refcount.
370	(struct elf_cris_link_hash_table): New member dtpmod_refcount.
371	(elf_cris_link_hash_newfunc): Initialize new members.
372	(elf_cris_link_hash_table_create): Similar.
373	(cris_final_link_relocate, elf_cris_reloc_type_class): Use a
374	temporary variable when testing the relocation type.
375	(cris_elf_gc_mark_hook): Ditto.  Add default case where needed.
376	(cris_elf_gc_sweep_hook): Ditto.  Handle reference-counting for
377	the new assembly-generated relocs.  Rewrite refcount handling to
378	set temporary variables to pointers to reloc-specific variables
379	and entry size and common code for the update.
380	(additional_relocation_error_msg_count): New variable.
381	(cris_elf_relocate_section): Use a function-local variable srelgot
382	for the .rela.got section instead of looking it up for every need.
383	Make r_type a enum elf_cris_reloc_type, not int.  Actually set
384	symname for non-local symbols.  Handle new assembly-generated
385	relocs.  For overflow, emit additional messages for the new 16-bit
386	relocs as well as R_CRIS_16_GOTPLT and R_CRIS_16_GOT.
387	(elf_cris_finish_dynamic_symbol): Use elf_cris_finish_dynamic_symbol
388	instead of plain casts.  Check new hash entry member
389	reg_got_refcount when checking whether to emit a GOT entry.
390	(elf_cris_finish_dynamic_sections): Update head comment to warn
391	about emitting relocs here.  Use a temporary variable when testing
392	the relocation type.
393	(elf_cris_discard_excess_program_dynamics)
394	(elf_cris_adjust_gotplt_to_got): Handle reference counting change
395	regarding h->reg_got_refcount.
396	(cris_elf_check_relocs): Rewrite refcount handling to set
397	temporary variables and entry size and common code for the update
398	for local symbols.  Use new macro elf_cris_hash_entry.  Adjust
399	allocation for change in reference counting of GOT entries for
400	local symbols.
401	(elf_cris_size_dynamic_sections): Adjust calculated size of
402	.got.plt and .rela.got if we need a GOT entry for a
403	R_CRIS_DTPMOD relocation.
404	(elf_cris_got_elt_size): New function.
405	(elf_backend_got_elt_size): Define.
406
4072008-11-21  Sterling Augustine  <sterling@tensilica.com>
408
409	* xtensa-isa.c (xtensa_state_is_shared_or): New function.
410
4112008-11-21  Hans-Peter Nilsson  <hp@axis.com>
412
413	* elf-bfd.h (struct elf_backend_data): New member got_elt_size.
414	(_bfd_elf_default_got_elt_size): Declare.
415	* elflink.c (struct alloc_got_off_arg): Replace member got_elt_size
416	by new member info.
417	(elf_gc_allocate_got_offsets): Adjust for calling bed->got_elt_size
418	to get the element size instead of using a gofarg entry.
419	(bfd_elf_gc_common_finalize_got_offsets): Similar.
420	(_bfd_elf_default_got_elt_size): New function.
421	* elfxx-target.h: New macro elf_backend_got_elt_size.
422	(elfNN_bed): Use it.
423
4242008-11-20  Tristan Gingold  <gingold@adacore.com>
425
426	* bfdwin.c: Fix comment.
427
4282008-11-20  Tristan Gingold  <gingold@adacore.com>
429
430	* bfd.c (is32bit): Use architecture information for non-ELF
431	targets.
432
4332008-11-20  Alan Modra  <amodra@bigpond.net.au>
434
435	* elf32-ppc.c (allocate_dynrelocs): Always use tlsld_got for
436	TLS_LD even when symbol is used with other TLS reloc types.
437	(ppc_elf_relocate_section): Bypass symbol checks when using tlsld_got.
438	Leave addend zero on LD DTPMOD dynamic reloc.
439
4402008-11-19  Bob Wilson  <bob.wilson@acm.org>
441
442	* xtensa-modules.c (sysregs): Add MMID, VECBASE, EPC5, EPC6, EPC7,
443	EXCSAVE5, EXCSAVE6, EXCSAVE7, EPS5, EPS6, EPS7, CPENABLE,
444	SCOMPARE1, and THREADPTR registers.
445	(NUM_SYSREGS, MAX_USER_REG): Update.
446	(states): Change width of INTERRUPT, WindowBase, WindowStart, and
447	INTENABLE.  Add VECBASE, EPC5, EPC6, EPC7, EXCSAVE5, EXCSAVE6,
448	EXCSAVE7, EPS6, EPS6, EPS7, THREADPTR, CPENABLE, and SCOMPARE1 states.
449	(NUM_STATES): Update.
450	(enum xtensa_state_id): Add entries for new states.
451	(enum xtensa_field_id): Add entries for xt_wbr15_imm and xt_wbr18_imm
452	fields, along with functions to extract and set them.
453	(regfiles): Change number of AR registers to 32.
454	(Operand_ar0_encode, Operand_ar4_encode, Operand_ar8_encode,
455	Operand_ar12_encode, Operand_ars_entry_encode): Update register mask.
456	(operands): Add entries for tp7, xt_wbr15_label, xt_wbr18_label,
457	xt_wbr15_imm, and xt_wbr18_imm operands, along with functions to
458	encode and decode them.
459	(enum xtensa_operand_id): Add entries for new operands.
460	(Iclass_xt_iclass_rfi_stateArgs): Add EPC5, EPC6, EPC7, EPS5, EPS6, and
461	EPC7 states.
462	(Iclass_xt_iclass_rfdo_stateArgs): Replace EPC4 and EPS4 by EPC6 and
463	EPS6, respectively.
464	(iclasses): Add entries for rur_threadptr, wur_threadptr,
465	xt_iclass_wsr_176, xt_iclass_rsr_epc5, xt_iclass_wsr_epc5,
466	xt_iclass_xsr_epc5, xt_iclass_rsr_excsave5, xt_iclass_wsr_excsave5,
467	xt_iclass_xsr_excsave5, xt_iclass_rsr_epc6, xt_iclass_wsr_epc6,
468	xt_iclass_xsr_epc6, xt_iclass_rsr_excsave6, xt_iclass_wsr_excsave6,
469	xt_iclass_xsr_excsave6, xt_iclass_rsr_epc7, xt_iclass_wsr_epc7,
470	xt_iclass_xsr_epc7, xt_iclass_rsr_excsave7, xt_iclass_wsr_excsave7,
471	xt_iclass_xsr_excsave7, xt_iclass_rsr_eps5, xt_iclass_wsr_eps5,
472	xt_iclass_xsr_eps5, xt_iclass_rsr_eps6, xt_iclass_wsr_eps6,
473	xt_iclass_xsr_eps6, xt_iclass_rsr_eps7, xt_iclass_wsr_eps7,
474	xt_iclass_xsr_eps7, xt_iclass_rsr_vecbase, xt_iclass_wsr_vecbase,
475	xt_iclass_xsr_vecbase, xt_iclass_mul16, xt_iclass_wsr_mmid,
476	xt_iclass_icache_lock, xt_iclass_dcache_lock, xt_iclass_rsr_cpenable,
477	xt_iclass_wsr_cpenable, xt_iclass_xsr_cpenable, xt_iclass_clamp,
478	xt_iclass_minmax, xt_iclass_sx, xt_iclass_l32ai, xt_iclass_s32ri,
479	xt_iclass_s32c1i, xt_iclass_rsr_scompare1, xt_iclass_wsr_scompare1,
480	xt_iclass_xsr_scompare1, xt_iclass_div, and xt_iclass_mul32, along
481	with corresponding argument and state argument arrays.  Change
482	number of state arguments for xt_iclass_rfi.  Add arguments for
483	xt_iclass_rfdo.
484	(enum xtensa_iclass_id): Add entries for new iclasses.
485	(opcodes): Add entries for RUR_THREADPTR, WUR_THREADPTR, WSR_176,
486	RSR_EPC5, WSR_EPC5, XSR_EPC5, RSR_EXCSAVE5, WSR_EXCSAVE5, XSR_EXCSAVE5,
487	RSR_EPC6, WSR_EPC6, XSR_EPC6, RSR_EXCSAVE6, WSR_EXCSAVE6, XSR_EXCSAVE6,
488	RSR_EPC7, WSR_EPC7, XSR_EPC7, RSR_EXCSAVE7, WSR_EXCSAVE7, XSR_EXCSAVE7,
489	RSR_EPS5, WSR_EPS5, XSR_EPS5, RSR_EPS6, WSR_EPS6, XSR_EPS6, RSR_EPS7,
490	WSR_EPS7, XSR_EPS7, RSR_VECBASE, WSR_VECBASE, XSR_VECBASE, MUL16U,
491	MUL16S, WSR_MMID, IPFL, IHU, IIU, DPFL, DHU, DIU, RSR_CPENABLE,
492	WSR_CPENABLE, XSR_CPENABLE, CLAMPS, MIN, MAX, MINU, MAXU, SEXT, L32AI,
493	S32RI, S32C1I, RSR_SCOMPARE1, WSR_SCOMPARE1, XSR_SCOMPARE1, QUOU, QUOS,
494	REMU, REMS, and MULL opcodes, along with the corresponding functions
495	to encode them.
496	(enum xtensa_opcode_id): Add entries for new opcodes.
497	(Slot_inst_decode): Handle new opcodes.
498	(Slot_inst_get_field_fns, Slot_inst_set_field_fns): Add entries for
499	xt_wbr15_imm and xt_wbr18_imm fields.
500	(Slot_inst16a_get_field_fns, Slot_inst16a_set_field_fns): Likewise.
501	(Slot_inst16b_get_field_fns, Slot_inst16b_set_field_fns): Likewise.
502	(xtensa_modules): Update number of fields, operands, iclasses and
503	opcodes.
504
5052008-11-19  Nix  <nix@esperi.org.uk>
506
507	* elf.c (swap_out_syms) [USE_STT_COMMON]: Fix syntax error.
508
5092008-11-19  Nick Clifton  <nickc@redhat.com>
510
511	PR 7027
512	* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Treat WPLT30 relocs
513	against local symbols in 64-bit binaries as if they were WDISP30
514	relocs.
515	(_bfd_sparc_elf_relocate_section): Likewise.
516
5172008-11-18  Catherine Moore  <clm@codesourcery.com>
518
519	* elf32-arm.c (elf32_arm_merge_eabi_attributes): Merge
520	half-precision attributes.
521	(elf32_arm_copy_one_eabi_other_attribute): New.
522	(elf32_arm_copy_other_attribute_list): New.
523
5242008-11-18  Nick Clifton  <nickc@redhat.com>
525
526	* dwarf2.c (read_section): Fix formatting.
527	(read_n_bytes): Remove unhelpful comment.
528	(read_indirect_string): Pass symbol table to read_section in case
529	the .debug_str section needs relocating.
530
531	PR 7037
532	* elf32-cr16.c (cr16_elf_howto_table): Zero the src_mask field of
533	the reloc descriptions.
534
5352008-11-14  Eric B. Weddington  <eric.weddington@atmel.com>
536
537	PR 7022
538	* elf32-avr.c (bfd_elf_avr_final_write_processing):
539	Add missing break statements.
540
5412008-11-14  Bob Wilson  <bob.wilson@acm.org>
542
543	* xtensa-modules.c (xtensa_state_id): New enum, replacing STATE macros.
544	(xtensa_field_id, xtensa_regfile_id, xtensa_operand_id)
545	(xtensa_iclass_id, xtensa_opcode_id): New enums.
546	Replace hardcoded constants throughout this file with enum values.
547
5482008-11-14  Nathan Sidwell  <nathan@codesourcery.com>
549
550	* elf.c (assign_file_positions_for_load_sections): Use header_size
551	to avoid moving the load address of file headers.
552	(assign_file_positions_for_load_sections): Set header_size for
553	segments containing the file header.
554
5552008-11-14  Tristan Gingold  <gingold@adacore.com>
556
557	* configure.com: Handle bfd_default_target_size, BFD_HOST_LONG_LONG,
558	BFD_HOST_64BIT_LONG_LONG, BFD_HOSTPTR_T, bfd_file_ptr.
559	Generate bfdver.h.
560	* vms-hdr.c (_bfd_vms_write_hdr): Use strdup/free instead of alloca.
561	* hosts/alphavms.h: Defines macros to bypass i18n.
562	* makefile.vms (OBJS): Update file list.
563	(DEFS): Remove VMS_DEBUG, const, add DEBUGDIR.
564	(CFLAGS): Update flags.
565	* bfdio.c (real_fopen): Add code specific to VMS: extract attributes
566	from modes.
567
5682008-11-13  Joel Brobecker  <brobecker@adacore.com>
569
570	* configure.in: Deactivate large-file support on native 32bit
571	sparc-solaris unless the user explicitly requested it.
572	* configure: Regenerate.
573
5742008-11-13  Hans-Peter Nilsson  <hp@axis.com>
575
576	PR ld/7028
577	* elf.c (assign_file_positions_for_load_sections): Allocate phrds
578	with bfd_zalloc2 instead of bfd_alloc2.  For the amount, use
579	the possibly-preset header-size, not the computed one.
580
5812008-11-13  Alan Modra  <amodra@bigpond.net.au>
582
583	PR 7023
584	* elf.c (bfd_section_from_shdr <SHT_SYMTAB>): Fail on invalid sh_info.
585
5862008-11-11  Alan Modra  <amodra@bigpond.net.au>
587
588	* elf.c (assign_file_positions_for_non_load_sections): Consolidate
589	PT_GNU_RELRO handling.
590
5912008-11-11  Alan Modra  <amodra@bigpond.net.au>
592
593	PR 7012
594	* dwarf2.c (find_line): Don't keep stale pointers into realloc'd
595	memory.  Return on errors.  Fix memory leak.
596	(_bfd_dwarf2_cleanup_debug_info): Free dwarf_str_buffer.
597
5982008-11-10  Andreas Schwab  <schwab@suse.de>
599
600	PR 7011
601	* elf.c (assign_file_positions_for_non_load_sections): Handle
602	PT_GNU_RELRO specially.
603
6042008-11-06  Joel Sherrill <joel.sherrill@oarcorp.com>
605
606	* config.bfd: Add m32c-*-rtems* and m32r-*-rtems*.
607
6082008-11-06  Tom Tromey  <tromey@redhat.com>
609
610	* configure, config.in: Rebuild.
611	* configure.in: Check for fileno.
612	* bfdio.c (close_on_exec): New function.
613	(real_fopen): Use it.
614	(FD_CLOEXEC): New define.
615
6162008-11-06  Tristan Gingold  <gingold@adacore.com>
617
618	* mach-o.h (BFD_MACH_O_NO_SECT): Add; reorders the macros.
619	(BFD_MACH_O_SYM_NTYPE, BFD_MACH_O_SYM_NSECT,
620	BFD_MACH_O_SYM_NDESC): New macros.
621	(bfd_mach_o_i386_thread_flavour): Define according to the latest
622	definition from system header.
623	(bfd_mach_o_load_command_type): Add BFD_MACH_O_LC_RPATH,
624	BFD_MACH_O_LC_CODE_SIGNATURE.
625	(BFD_MACH_O_SECTION_TYPE_MASK, BFD_MACH_O_SECTION_ATTRIBUTES_MASK,
626	BFD_MACH_O_SECTION_ATTRIBUTES_SYS, BFD_MACH_O_SECTION_ATTRIBUTES_USR,
627	BFD_MACH_O_S_ATTR_LOC_RELOC, BFD_MACH_O_S_ATTR_EXT_RELOC,
628	BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS, BFD_MACH_O_S_ATTR_DEBUG,
629	BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS): Add.
630	(bfd_mach_o_segment_command): Add room for a nul terminator in
631	segname field.
632	(BFD_MACH_O_PROT_READ, BFD_MACH_O_PROT_WRITE,
633	BFD_MACH_O_PROT_EXECUTE): Add.
634	(INDIRECT_SYMBOL_LOCAL): Renames to BFD_MACH_O_INDIRECT_SYMBOL_LOCAL.
635	(INDIRECT_SYMBOL_ABS): Renames to BFD_MACH_O_INDIRECT_SYMBOL_ABS.
636	(bfd_mach_o_uuid_command): Add the structure.
637	(bfd_mach_o_load_command): Add uuid field.
638	(bfd_get_mach_o_data): New macro.
639	* mach-o.c (bfd_mach_o_bfd_print_private_bfd_data): New function which
640	replaces the macro.
641	(SECTION_TYPE, SECTION_ATTRIBUTES, SECTION_ATTRIBUTES_USR,
642	S_ATTR_PURE_INSTRUCTIONS, SECTION_ATTRIBUTES_SYS,
643	S_ATTR_SOME_INSTRUCTIONS, S_ATTR_EXT_RELOC, S_ATTR_LOC_RELOC): Renamed
644	and moved to mach-o.h.
645	(N_STAB, N_TYPE, N_EXT, N_UNDF, N_ABS, N_TEXT, N_DATA, N_BSS,
646	N_SECT, N_INDR): Removed as they duplicated macros in mach-o.h.
647	(bfd_mach_o_print_symbol): Print much more details.
648	(bfd_mach_o_make_bfd_section): Add prot argument, use canonical
649	dwarf name for dwarf sections.  Precisely set section flags.
650	(bfd_mach_o_scan_read_section_32): Add prot argument.
651	(bfd_mach_o_scan_read_section_64): Ditto.
652	(bfd_mach_o_scan_read_section): Ditto.
653	(bfd_mach_o_scan_read_symtab_symbol): Set section for debugging
654	stabs, set BSF_GLOBAL and LOCAL flags correctly.  Fix section
655	for N_SECT symbols.
656	(bfd_mach_o_i386_flavour_string): Reindent and adjust for new
657	names.
658	(bfd_mach_o_scan_read_symtab): Set HAS_SYMS flags on bfd if there
659	are symbols.
660	(bfd_mach_o_scan_read_uuid): New function.
661	(bfd_mach_o_scan_read_segment): Add a trailing nul.  Segments
662	flags are now simply HAS_CONTENTS.  Pass protection to
663	bfd_mach_o_scan_read_section.
664	(bfd_mach_o_scan_read_command): Decode UUID command.
665	(bfd_mach_o_flatten_sections): Add comments.  Fix flavour names.
666	(bfd_mach_o_scan): Set flags according to file type.
667	(mach_o_fat_archentry): Remove abfd field.
668	(bfd_mach_o_archive_p): Remove initialization of abfd field.
669	(bfd_mach_o_openr_next_archived_file): Find previous archive
670	by position and not by bfd (as former bfds may have been freed).
671	Give architecture name to archived file.
672	* mach-o-target.c (TARGET_NAME): Use generic archive for non fat
673	targets.
674
6752008-10-30  Jay Krell  <jay.krell@cornell.edu>
676
677	* cache.c (cache_bread): Cast void * pointer before performing
678	arithmetic on it.
679
6802008-10-20  Alan Modra  <amodra@bigpond.net.au>
681
682	* elf64-ppc.c (ppc64_elf_process_dot_syms): Renamed from
683	ppc64_elf_check_directives.
684	* elf32-sh-symbian.c (sh_symbian_process_directives): Combine..
685	(sh_symbian_check_directives): ..this
686	(bfd_elf32_sh_symbian_process_directives) ..and this function.
687
6882008-10-20  Alan Modra  <amodra@bigpond.net.au>
689
690	* elflink.c (bfd_elf_final_link): Move code reading relocs to..
691	* elf32-spu.c (spu_elf_count_relocs): ..here.  Adjust params.
692	* elf-bfd.h (struct elf_backend_data): Update elf_backend_count_relocs
693	params.
694
6952008-10-20  Alan Modra  <amodra@bigpond.net.au>
696
697	* elflink.c (bfd_elf_final_link): Use d_ptr rather than d_val
698	where Elf_Internal_Dyn holds an address.
699
7002008-10-10  Nathan Froyd  <froydnj@codesourcery.com>
701
702	* elf32-ppc.c (ppc_elf_merge_obj_attributes): Merge
703	Tag_GNU_Power_ABI_Struct_Return.
704
7052008-10-09  Kai Tietz  <kai.tietz@onevision.com>
706
707	* cofflink.c (_bfd_coff_generic_relocate_section): Dump bfd_vma
708	sized addresses instead of long sized.
709
7102008-10-09  Alan Modra  <amodra@bigpond.net.au>
711
712	* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't attempt to
713	read plt relocs if no dynamic syms.
714
7152008-10-08  Nick Clifton  <nickc@redhat.com>
716
717	* configure.in (ALL_LINGUAS): Add "id".
718	* configure: Regenerate.
719	* po/id.po: New Indonesian translation.
720
7212008-10-08  Alan Modra  <amodra@bigpond.net.au>
722
723	* elf.c (assign_file_positions_for_load_sections): When checking
724	a segment for contents, don't assume that a non-TLS nobits section
725	must only be followed by nobits sections.
726
7272008-10-04  Hans-Peter Nilsson  <hp@axis.com>
728
729	* elf32-cris.c (TLSHOWTO32, TLSHOWTO16): New macros.
730	(cris_elf_howto_table): Add entries for R_CRIS_32_GOT_GD,
731	R_CRIS_16_GOT_GD, R_CRIS_32_GD, R_CRIS_DTP, R_CRIS_32_DTPREL,
732	R_CRIS_16_DTPREL, R_CRIS_DTPMOD, R_CRIS_32_GOT_TPREL,
733	R_CRIS_16_GOT_TPREL,  R_CRIS_32_TPREL,  R_CRIS_16_TPREL.
734	(cris_reloc_map): Similarly.
735	* reloc.c (bfd_reloc_code_type): Add entries for
736	BFD_RELOC_CRIS_32_GOT_GD, BFD_RELOC_CRIS_16_GOT_GD,
737	BFD_RELOC_CRIS_32_GD, BFD_RELOC_CRIS_DTP,
738	BFD_RELOC_CRIS_32_DTPREL, BFD_RELOC_CRIS_16_DTPREL,
739	BFD_RELOC_CRIS_DTPMOD, BFD_RELOC_CRIS_32_GOT_TPREL,
740	BFD_RELOC_CRIS_16_GOT_TPREL, BFD_RELOC_CRIS_32_TPREL,
741	BFD_RELOC_CRIS_16_TPREL.
742	* libbfd.h, bfd-in2.h: Regenerate.
743
7442008-10-03  Alan Modra  <amodra@bigpond.net.au>
745
746	PR 6931
747	* elf.c (bfd_elf_set_group_contents): Assign sh_info for ld -r when
748	the signature symbol is global.
749	* elflink.c (elf_link_input_bfd): Ensure group signature symbol
750	is output when ld -r.  Set group sh_info when local.
751	* linker.c (default_indirect_link_order): Handle group sections
752	specially.
753
7542008-09-30  Wesley W. Terpstra  <wesley@terpstra.ca>
755	    Nick Clifton  <nickc@redhat.com>
756
757	* coffgen.c (coff_write_symbols): Check to see if a symbol's flags
758	do not match it class and if necessary update the class.
759	(null_error_handler): New function.  Suppresses the generation of
760	bfd error messages.
761	* coff64-rs6000.c (bfd_xcoff_backend_data): Update comment.
762
7632008-09-30  Alan Modra  <amodra@bigpond.net.au>
764
765	* Makefile.am: Run "make dep-am".
766	* Makefile.in: Regenerate.
767
7682008-09-30  Alan Modra  <amodra@bigpond.net.au>
769
770	* elflink.c (elf_link_add_object_symbols): Don't ignore returned
771	value of check_directives.
772
7732008-09-29  Peter O'Gorman  <pogma@thewrittenword.com>
774	    Steve Ellcey  <sje@cup.hp.com>
775
776	* configure: Regenerate for new libtool.
777	* aclocal.m4: Ditto.
778	* Makefile.in: Ditto.
779	* doc/Makefile.in: Ditto.
780
7812008-09-29  Alan Modra  <amodra@bigpond.net.au>
782
783	PR 6789
784	* elf.c (assign_file_positions_for_load_sections): Call
785	_bfd_elf_map_sections_to_segments, not elf_modify_segment_map.
786	(get_program_header_size): Protect against NULL info.
787	(_bfd_elf_map_sections_to_segments): Likewise.
788	* elf32-spu.c (spu_elf_additional_program_headers): Likewise.
789
7902008-09-29  Nick Clifton  <nickc@redhat.com>
791
792	* po/vi.po: Updated Vietnamese translation.
793
7942008-09-28  Alan Modra  <amodra@bigpond.net.au>
795
796	* elf.c (_bfd_elf_init_private_section_data): Tweak union copy.
797	(bfd_section_from_shdr): Don't change SHT_GROUP section name.
798	* elflink.c (section_signature): New function.
799	(_bfd_elf_section_already_linked): Use it.
800
8012008-09-19  Alan Modra  <amodra@bigpond.net.au>
802
803	* elf32-ppc.c (ppc_elf_finish_dynamic_sections): Handle vxworks
804	_GLOBAL_OFFSET_TABLE_ in .got.plt section.  Add BFD_ASSERTs.
805
8062008-09-17  Bob Wilson  <bob.wilson@acm.org>
807
808	* elf32-xtensa.c (elf_xtensa_check_relocs): Check for negative
809	refcount.
810
8112008-09-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
812
813	PR 6893 - Do not consider FDEs for discarded sections as invalid.
814	* elf-eh-frame.c (_bfd_elf_parse_eh_frame): New REQUIRE_CLEARED_RELOCS.
815	Consider FDEs with cleared relocations as valid and ignorable.
816
8172008-09-16  H.J. Lu  <hongjiu.lu@intel.com>
818
819	PR ld/6877
820	* elflink.c (_bfd_elf_merge_symbol): Allow a common symbol to
821	override the function in a shared library.
822
8232008-09-16  Alan Modra  <amodra@bigpond.net.au>
824
825	PR 6844
826	* elf32-ppc.c (SYM_VAL): Define.  Use throughout to find symbol vma.
827	(ppc_elf_relocate_section): Correct GOT offset calculation.
828	(ppc_elf_finish_dynamic_symbol): Use PPC_HA and PPC_LO.
829	(ppc_elf_finish_dynamic_sections): Likewise.  Error if
830	htab->elf.hgot symbol is not defined in htab->got section.
831
8322008-09-16  Alan Modra  <amodra@bigpond.net.au>
833
834	PR 6888
835	* elf32-ppc.c (ppc_elf_relocate_section): Handle NULL symbol section
836	on R_PPC_TOC16, R_PPC_SDAREL16, R_PPC_EMB_SDA2REL, R_PPC_EMB_SDA21,
837	R_PPC_EMB_RELSDA, R_PPC_SECTOFF* relocs.
838
8392008-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
840
841	Fix loading large elf64 binaries on 32bit hosts.
842	* configure.in: Call AC_SYS_LARGEFILE.
843	* config.in: Regenerate.
844	* configure: Regenerate.
845
8462008-09-08  Tom Tromey  <tromey@redhat.com>
847
848	* elfxx-mips.c (mips16_stub_symndx) <sec>: Mark argument as
849	unused.
850
8512008-09-08  H.J. Lu  <hongjiu.lu@intel.com>
852	    Daniel Jacobowitz  <dan@codesourcery.com>
853
854	PR ld/3191
855	* dwarf2.c (struct adjusted_section): Renamed from struct
856	loadable_section.
857	(struct dwarf2_debug): Adjust for renaming.  Add version field.
858	(read_attribute_value): Correctly handle DW_FORM_ref_addr for
859	DWARF3.
860	(find_abstract_instance_name): Pass a pointer to
861	attribute instead of offset.  For DW_FORM_ref_addr, get the
862	entry at the offset from the .debug_info section.
863	(scan_unit_for_symbols): Update.
864	(parse_comp_unit): Allow DWARF3.  Save the version.
865	(unset_sections): Update for renaming.
866	(place_sections): Likewise.  Set new VMAs for DWARF sections
867	also.
868
8692008-09-08  Tristan Gingold  <gingold@adacore.com>
870
871	* configure.in: Update version to 2.19.50
872	* configure: Regenerated.
873
8742008-09-05  Daniel Jacobowitz  <dan@codesourcery.com>
875
876	* dwarf2.c: Change leading whitespace to tabs.
877
8782008-09-05  Tristan Gingold  <gingold@adacore.com>
879
880	Add MacOSX 64 bits support.
881	* mach-o.h (bfd_mach_o_ppc_thread_flavour): Add
882	BFD_MACH_O_PPC_THREAD_STATE_64.
883	(bfd_mach_o_i386_thread_flavour): Add BFD_MACH_O_x86_THREAD_STATE64,
884	BFD_MACH_O_x86_FLOAT_STATE64, BFD_MACH_O_x86_EXCEPTION_STATE64,
885	BFD_MACH_O_x86_THREAD_STATE, BFD_MACH_O_x86_FLOAT_STATE,
886	BFD_MACH_O_x86_EXCEPTION_STATE.
887	(bfd_mach_o_load_command_type): Add
888	BFD_MACH_O_LC_SEGMENT_64, BFD_MACH_O_LC_ROUTINES_64,
889	BFD_MACH_O_LC_UUID.
890	(BFD_MACH_O_CPU_IS64BIT): Added.
891	(bfd_mach_o_cpu_type): Add BFD_MACH_O_CPU_TYPE_POWERPC_64,
892	BFD_MACH_O_CPU_TYPE_X86_64.
893	(bfd_mach_o_header): Add version field.
894	(bfd_mach_o_section) Add reserved3 field.
895	(bfd_mach_o_segment_command): Add initprot and maxprot fields.
896
897	* mach-o.c (N_TEXT, N_DATA, N_BSS): Added.
898	(bfd_mach_o_version): New function.
899	(bfd_mach_o_valid): Handle 64bits cpus.
900	(bfd_mach_o_write_header): handler 64bits headers.
901	(bfd_mach_o_scan_write_section_32, bfd_mach_o_scan_write_section_64):
902	New functions (from bfd_mach_o_scan_write_section) to handle both
903	flavors.
904	(bfd_mach_o_scan_write_segment): Parameter wide added to support
905	both flavors.
906	(bfd_mach_o_write_contents): Support both flavors.
907	(bfd_mach_o_read_header): Ditto.
908	(bfd_mach_o_scan_read_section_32, bfd_mach_o_scan_read_section_64):
909	New functions (from bfd_mach_o_scan_read_section) to support both
910	flavors.
911	(bfd_mach_o_scan_read_symtab_symbol): Support both flavors.
912	(bfd_mach_o_scan_read_symtab): Ditto.
913	(bfd_mach_o_scan_read_segment): Parameter wide added to support
914	both flavors.
915	(bfd_mach_o_scan_read_segment_32, bfd_mach_o_scan_read_segment_64):
916	New functions to call bfd_mach_o_scan_read_segment.
917	(bfd_mach_o_flatten_sections): Support both flavors.
918	(bfd_mach_o_scan_start_address): Ditto.
919	(bfd_mach_o_scan): Ditto.
920	(bfd_mach_o_lookup_section): Ditto.
921
9222008-08-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
923
924	* elf-hppa.h (elf_hppa_reloc_final_type): Handle R_PARISC_GPREL64,
925	R_PARISC_SEGREL32 and R_PARISC_SEGREL64.
926	* som.c (som_fixup_formats): Add R_DATA_GPREL fixup.
927	(som_hppa_howto_table): Likewise.
928	(hppa_som_gen_reloc_type): In case R_HPPA_GOTOFF, detect R_DATA_GPREL
929	final type.
930	(som_write_fixups): Handle R_DATA_GPREL.
931
9322008-08-26  Nick Clifton  <nickc@redhat.com>
933
934	* elf32-arm.c: Fix up comment describing Thumb to ARM interworking
935	stub.
936
9372008-08-25  Christophe Lyon  <christophe.lyon@st.com>
938
939	* elf32-arm.c (arm_thumb_arm_v4t_short_branch_stub): Define.
940	(elf32_arm_stub_type): Add arm_thumb_arm_v4t_stub_short_branch.
941	(arm_type_of_stub): Handle armv4t short branches. Update
942	prototype.
943	(arm_stub_is_thumb): Handle arm_thumb_arm_v4t_stub_short_branch.
944	(arm_build_one_stub): Likewise.
945	(arm_size_one_stub): Likewise.
946	(elf32_arm_size_stubs): Use new arm_type_of_stub prototype.
947	(arm_map_one_stub): Handle arm_thumb_arm_v4t_stub_short_branch.
948
9492008-08-24  Andreas Schwab  <schwab@suse.de>
950
951	* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Do proper
952	extension when calculating difference of offsets.
953
9542008-08-24  Alan Modra  <amodra@bigpond.net.au>
955
956	* configure.in: Update a number of obsolete autoconf macros.
957	* aclocal.m4: Regenerate.
958
9592008-08-23  Andreas Schwab  <schwab@suse.de>
960
961	* opncls.c (find_separate_debug_file): Use the canonical
962	absolute name of the bfd object for finding the debug file in
963	the global debugfile directory.
964
9652008-08-22  Jakub Jelinek  <jakub@redhat.com>
966
967	Fix PR ld/3290 regression for cross-files DW_FORM_ref_addr relocations.
968	* elflink.c (elf_link_add_object_symbols): Make debug symbols local
969	now only for non-RELOCATABLE targets.
970
9712008-08-20  Bob Wilson  <bob.wilson@acm.org>
972
973	* elf-bfd.h (elf_object_id): Add XTENSA_ELF_TDATA.
974	* elf32-xtensa.c (elf_howto_table): Add TLS relocations.
975	(elf_xtensa_reloc_type_lookup): Likewise.
976	(TCB_SIZE): Define.
977	(elf_xtensa_link_hash_entry): New.
978	(GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE, GOT_TLS_ANY): Define.
979	(elf_xtensa_hash_entry): Define.
980	(elf_xtensa_obj_tdata): New.
981	(elf_xtensa_tdata): Define.
982	(elf_xtensa_local_got_tls_type): Define.
983	(elf_xtensa_local_tlsfunc_refcounts): Define.
984	(is_xtensa_elf): Define.
985	(elf_xtensa_mkobject): New.
986	(elf_xtensa_link_hash_table): Add tlsbase field.
987	(elf_xtensa_link_hash_newfunc): New.
988	(elf_xtensa_link_hash_table_create): Use elf_xtensa_link_hash_newfunc.
989	Create an entry for "_TLS_MODULE_BASE_" and save it in tlsbase field.
990	(elf_xtensa_copy_indirect_symbol): New.
991	(elf_xtensa_check_relocs): Rewrite to handle TLS relocations.
992	(elf_xtensa_gc_sweep_hook): Likewise.
993	(elf_xtensa_allocate_dynrelocs): Optimize away GOT entries for
994	TLSDESC_FN relocations when an IE reference is seen.
995	(elf_xtensa_allocate_local_got_size): Likewise.
996	(elf_xtensa_always_size_sections): New.
997	(dtpoff_base, tpoff): New.
998	(elf_xtensa_do_reloc): Handle TLS relocations.
999	(replace_tls_insn): New.
1000	(IS_XTENSA_TLS_RELOC): Define.
1001	(elf_xtensa_relocate_section): Handle TLS relocations.
1002	(get_indirect_call_dest_reg): New.
1003	(bfd_elf32_mkobject): Define.
1004	(elf_backend_always_size_sections): New.
1005	(elf_backend_copy_indirect_symbol): New.
1006	* reloc.c (BFD_RELOC_XTENSA_TLSDESC_FN, BFD_RELOC_XTENSA_TLSDESC_ARG)
1007	(BFD_RELOC_XTENSA_TLS_DTPOFF, BFD_RELOC_XTENSA_TLS_TPOFF)
1008	(BFD_RELOC_XTENSA_TLS_FUNC, BFD_RELOC_XTENSA_TLS_ARG)
1009	(BFD_RELOC_XTENSA_TLS_CALL): New.
1010	* bfd-in2.h: Regenerate.
1011	* libbfd.h: Regenerate.
1012
10132008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
1014
1015	* elfxx-mips.c (_bfd_mips_elf_copy_indirect_symbol): Copy MIPS16
1016	stub information.
1017
10182008-08-17  Nick Clifton  <nickc@redhat.com>
1019
1020	* elf32-arm.c: Tidy up the code.
1021	(bfd_elf32_arm_allocate_interworking_sections): Move common code
1022	into...
1023	(arm_allocate_glue_section_space): ... New function.
1024	(bfd_elf32_arm_add_glue_sections_to_bfd): Move common code
1025	into...
1026	(arm_make_glue_section): ... New function.
1027
1028	* elfxx-mips.c (_bfd_mips_elf_check_relocs): Handle the situation
1029	where the sym_hashes are not available.
1030
10312008-08-17  Alan Modra  <amodra@bigpond.net.au>
1032
1033	* bfd.c (struct _bfd): Correct outsymbols comment.
1034	* bfd-in2.h: Regenerate.
1035	* linker.c (bfd_generic_link_read_symbols): Renamed from..
1036	(generic_link_read_symbols): ..this, and made global.
1037
10382008-08-15  Alan Modra  <amodra@bigpond.net.au>
1039
1040	PR 6526
1041	* configure.in: Invoke AC_USE_SYSTEM_EXTENSIONS.
1042	* Makefile.in: Regenerate.
1043	* aclocal.m4: Regenerate.
1044	* config.in: Regenerate.
1045	* configure: Regenerate.
1046
10472008-08-14  Jaka Močnik  <jaka@xlab.si>
1048
1049	* coffgen.c (coff_find_nearest_line): Correct cached line index.
1050
10512008-08-12  Alan Modra  <amodra@bigpond.net.au>
1052
1053	* elf32-ppc.c (allocate_dynrelocs): Ignore dyn_relocs when
1054	!dynamic_sections_created.  Don't make symbols with got
1055	references dynamic if !dynamic_sections_created.
1056	* elf64-ppc.c (allocate_dynrelocs): Likewise.  Alloc dynamic
1057	relocs on undefined symbols.
1058	(ppc64_elf_relocate_section): Allow dynamic relocs on
1059	undefined symbols.
1060
10612008-08-11  Alan Modra  <amodra@bigpond.net.au>
1062
1063	* elf64-ppc.c (toc_adjusting_stub_needed): Any call via the plt
1064	needs r2 valid, not just those to external syms.
1065
10662008-08-09  Pedro Alves  <pedro@codesourcery.com>
1067
1068	* archive.c (_bfd_archive_bsd_update_armap_timestamp): Cast stat
1069	st_mtime to long before comparison.
1070
10712008-08-08  Anatoly Sokolov  <aesok@post.ru>
1072
1073	* archures.c (bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35,
1074	bfd_mach_avr51): New.
1075	* bfd-in2.h: Regenerate.
1076	* cpu-avr.c (arch_info_struct): Add avr25, avr31, avr35, and avr51
1077	architectures. Change comments to match architecture comments in GCC.
1078	(compatible): Add test for new AVR architectures.
1079	* elf32-avr.c (bfd_elf_avr_final_write_processing): Recognize
1080	bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35 and bfd_mach_avr51.
1081	(elf32_avr_object_p): Recognize E_AVR_MACH_AVR25, E_AVR_MACH_AVR31,
1082	E_AVR_MACH_AVR35 and E_AVR_MACH_AVR51.
1083
1084
10852008-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
1086	    Daniel Jacobowitz  <dan@codesourcery.com>
1087	    Catherine Moore  <clm@codesourcery.com>
1088	    Mark Shinwell  <shinwell@codesourcery.com>
1089	    Maxim Kuvyrkov  <maxim@codesourcery.com>
1090
1091	* elf32-mips.c (mips_vxworks_copy_howto_rela): Replace with...
1092	(elf_mips_copy_howto): ...this howto.  Clear the size fields.
1093	(mips_vxworks_jump_slot_howto_rela): Replace with...
1094	(elf_mips_jump_slot_howto): ...this howto.
1095	(bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY
1096	and BFD_RELOC_MIPS_JUMP_SLOT.
1097	(bfd_elf32_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and
1098	"R_MIPS_JUMP_SLOT".
1099	(mips_elf32_rtype_to_howto): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT.
1100	(elf_backend_plt_readonly): Define.
1101	(elf_backend_plt_sym_val): Define for non-VxWorks targets.
1102	(mips_vxworks_bfd_reloc_type_lookup): Delete.
1103	(mips_vxworks_bfd_reloc_name_lookup): Likewise.
1104	(mips_vxworks_rtype_to_howto): Likewise.
1105	(elf_backend_want_dynbss): Don't define for VxWorks.
1106	(elf_backend_plt_readonly): Likewise.
1107	(bfd_elf32_bfd_reloc_type_lookup): Likewise.
1108	(bfd_elf32_bfd_reloc_name_lookup): Likewise.
1109	(elf_backend_mips_rtype_to_howto): Likewise.
1110	(elf_backend_adjust_dynamic_symbol): Likewise.
1111	(elf_backend_got_symbol_offset): Don't define.
1112	* elfn32-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto): New.
1113	(bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY
1114	and BFD_RELOC_MIPS_JUMP_SLOT.
1115	(bfd_elf32_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and
1116	"R_MIPS_JUMP_SLOT".
1117	(mips_elf32_n32_rtype_to_howto): Handle R_MIPS_COPY and
1118	R_MIPS_JUMP_SLOT.
1119	(elf_backend_rela_plts_and_copies_p, elf_backend_plt_readonly)
1120	(elf_backend_plt_sym_val): Define.
1121	* elf64-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto): New.
1122	(bfd_elf64_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY
1123	and BFD_RELOC_MIPS_JUMP_SLOT.
1124	(bfd_elf64_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and
1125	"R_MIPS_JUMP_SLOT".
1126	(mips_elf64_rtype_to_howto): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT.
1127	(elf_backend_rela_plts_and_copies_p, elf_backend_plt_readonly)
1128	(elf_backend_plt_sym_val): Define.
1129	* elfxx-mips.h (_bfd_mips_vxworks_adjust_dynamic_symbol): Delete.
1130	(_bfd_mips_elf_use_plts_and_copy_relocs, _bfd_mips_elf_init_stubs)
1131	(_bfd_mips_elf_plt_sym_val, _bfd_mips_post_process_headers): Declare.
1132	* elfxx-mips.c (mips_elf_la25_stub): New structure.
1133	(LA25_LUI, LA25_J, LA25_ADDIU): New macros.
1134	(mips_elf_link_hash_entry): Add "la25_stubs", "has_static_relocs"
1135	and "has_nonpic_branches" fields.  Remove "is_relocation_target" and
1136	"is_branch_target".
1137	(mips_elf_link_hash_table): Add blank lines.  Add
1138	"use_plts_and_copy_relocs", "reserved_gotno", "strampoline",
1139	"la25_stubs" and "add_stub_section" fields.
1140	(mips_htab_traverse_info): New structure.
1141	(PIC_OBJECT_P, MIPS_ELF_LOAD_WORD): New macros.
1142	(MIPS_RESERVED_GOTNO): Delete.
1143	(mips_o32_exec_plt0_entry, mips_n32_exec_plt0_entry)
1144	(mips_n64_exec_plt0_entry, mips_exec_plt_entry): New tables.
1145	(mips_elf_link_hash_newfunc): Update after the changes to
1146	mips_elf_link_hash_entry.
1147	(mips_elf_check_mips16_stubs): Replace the DATA parameter with
1148	an INFO parameter.  Don't look through warnings symbols here;
1149	do it in mips_elf_check_symbols instead.
1150	(mips_elf_create_stub_symbol): New function.
1151	(mips_elf_la25_stub_hash, mips_elf_la25_stub_eq): New functions.
1152	(_bfd_mips_elf_init_stubs, mips_elf_local_pic_function_p): Likewise.
1153	(mips_elf_add_la25_intro, mips_elf_add_la25_trampoline): Likewise.
1154	(mips_elf_add_la25_stub, mips_elf_check_symbols): New functions.
1155	(mips_elf_gotplt_index): Check for VxWorks.
1156	(mips_elf_output_dynamic_relocation): Take the relocation index
1157	as an extra parameter.  Do not increment reloc_count here.
1158	(mips_elf_initialize_tls_slots): Update the calls to
1159	mips_elf_output_dynamic_relocation accordingly.
1160	(mips_elf_multi_got): Use htab->reserved_gotno instead of
1161	MIPS_RESERVED_GOTNO.
1162	(mips_elf_create_got_section): Don't allocate reserved GOT
1163	entries here.  Unconditionally create .got.plt, but don't
1164	set its alignment here.
1165	(mips_elf_relocation_needs_la25_stub): New function.
1166	(mips_elf_calculate_relocation): Redirect branches and jumps to
1167	a non-PIC stub if one exists.  Check !h->has_static_relocs instead
1168	of !htab->is_vxworks when deciding whether to create dynamic
1169	relocations for R_MIPS_32, R_MIPS_REL32 and R_MIPS_64.
1170	(_bfd_mips_elf_create_dynamic_sections): Unconditionally call
1171	_bfd_elf_create_dynamic_sections.  Unconditionally set up
1172	htab->splt and htab->sdynbss.  Set htab->srelplt to ".rel.plt"
1173	if !htab->is_vxworks.  Add non-VxWorks values of
1174	htab->plt_header_size and htab->plt_entry_size.
1175	(_bfd_mips_elf_check_relocs): Set pointer_equality_needed for
1176	non-branch static relocations.  Set has_nonpic_branches when an la25
1177	stub might be required.  Set can_make_dynamic_p to TRUE if R_MIPS_32,
1178	R_MIPS_REL32 and R_MIPS_64 relocations can be made dynamic,
1179	rather than duplicating the condition.  Do not make them dynamic
1180	for read-only sections in non-PIC executable objects.
1181	Do not protect this code with dynobj == NULL || htab->sgot == NULL;
1182	handle each group of cases separately.  Add a default case that
1183	sets has_static_relocs for non-GOT relocations that cannot be
1184	made dynamic.  Don't set is_relocation_target and is_branch_target.
1185	Reject non-PIC static relocations in shared objects.
1186	(_bfd_mips_vxworks_adjust_dynamic_symbol): Fold into...
1187	(_bfd_mips_elf_adjust_dynamic_symbol): ...here, using
1188	htab->use_plts_and_copy_relocs instead of htab->is_vxworks
1189	to select PLT and copy-reloc handling.  Set the alignment of
1190	.plt and .got.plt when allocating the first entry.  Generalize
1191	code to handle REL as well as RELA sections and 64-bit as well as
1192	32-bit GOT entries.  Complain if we find a static-only reloc
1193	against an externally-defined symbol and if we cannot create
1194	dynamic relocations for it.  Allocate copy relocs using
1195	mips_elf_allocate_dynamic_relocations on non-VxWorks targets.
1196	Set possibly_dynamic_relocs to 0 when using PLTs or copy relocs.
1197	Skip reserved .got.plt entries.
1198	(_bfd_mips_elf_always_size_sections): Use mips_elf_check_symbols
1199	instead of mips_elf_check_mips16_stubs to process each symbol.
1200	Do the traversal for relocatable objects too.
1201	(mips_elf_lay_out_got): Use htab->reserved_gotno instead of
1202	MIPS_RESERVED_GOTNO.
1203	(_bfd_mips_elf_size_dynamic_sections): Exclude sdynbss if it
1204	is empty.  Extend the DT_PLTREL, DT_JMPREL and DT_PLTRELSZ handling
1205	to non-VxWorks targets.  Only add DT_REL{,A}, DT_REL{,A}SZ and
1206	DT_REL{,A}ENT if .rel.dyn is nonempty.  Create a symbol for the
1207	PLT.  Allocate a nop at the end of the PLT.  Allocate DT_MIPS_PLTGOT.
1208	(mips_elf_create_la25_stub_info): New function.
1209	(_bfd_mips_elf_finish_dynamic_symbol): Write out PLT entries
1210	and copy relocs where necessary.  Check pointer_equality_needed.
1211	(mips_finish_exec_plt): New function.
1212	(_bfd_mips_elf_finish_dynamic_sections): Always set DT_PLTGOT
1213	to the beginning of htab->sgot.  Use htab->reserved_gotno instead
1214	of MIPS_RESERVED_GOTNO.  Assert htab->use_plts_and_copy_relocs
1215	instead of htab->is_vxworks for DT_PLTREL, DT_PLTRELSZ and DT_JMPREL.
1216	Set DT_PLTREL to DT_REL instead of DT_RELA on non-VxWorks targets.
1217	Use mips_finish_exec_plt to create non-VxWorks PLT headers.  Set
1218	DT_MIPS_PLTGOT.
1219	(_bfd_mips_elf_copy_indirect_symbol): Copy has_static_relocs
1220	from the indirect symbol to the direct symbol.  Also copy
1221	has_nonpic_branches for indirect symbols.
1222	(_bfd_mips_elf_get_target_dtag): Handle DT_MIPS_PLTGOT and
1223	DT_MIPS_RWPLT.
1224	(_bfd_mips_elf_link_hash_table_create): Initialize the new
1225	mips_elf_link_hash_table fields.
1226	(_bfd_mips_vxworks_link_hash_table_create): Set
1227	use_plts_and_copy_relocs to TRUE.  Use TRUE rather than 1
1228	when setting is_vxworks.
1229	(_bfd_mips_elf_use_plts_and_copy_relocs): New function.
1230	(_bfd_mips_elf_final_link): Call mips_elf_create_la25_stub for
1231	each la25_stub.
1232	(_bfd_mips_elf_merge_private_bfd_data): Treat dynamic objects
1233	as PIC.  Generalize message about linking PIC and non-PIC.
1234	(_bfd_mips_elf_plt_sym_val, _bfd_mips_post_process_headers): New
1235	functions.
1236	* reloc.c: Update comment near BFD_RELOC_MIPS_JUMP_SLOT.
1237	* bfd-in2.h: Regenerated.
1238
12392008-08-08  Alan Modra  <amodra@bigpond.net.au>
1240
1241	* elf.c (bfd_elf_get_elf_syms): Don't leak memory on error.
1242	* elflink.c (_bfd_elf_link_read_relocs): bfd_release on error.
1243	(elf_link_add_object_symbols): Don't leak memory on error.
1244	(bfd_elf_size_dynsym_hash_dynstr): Likewise.
1245	(elf_fixup_link_order): Free sections.
1246
12472008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
1248
1249	* elf-bfd.h (elf_backend_data): Add a "rela_plts_and_copies_p" field.
1250	* elfxx-target.h (elf_backend_rela_plts_and_copies_p): New macro.
1251	(elfNN_bed): Use it.
1252	* elf.c (_bfd_elf_get_synthetic_symtab): Use rela_plts_and_copies_p
1253	instead of default_use_rela_p to choose between ".rel.plt" and
1254	".rela.plt".
1255	* elflink.c (_bfd_elf_create_dynamic_sections): Use
1256	rela_plts_and_copies_p instead of default_use_rela_p to choose
1257	between ".rel.plt" and ".rela.plt", and between ".rel.bss" and
1258	".rela.bss".
1259
12602008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
1261
1262	* elf-bfd.h (MIPS_ELF_TDATA): New elf_object_id.
1263	* elf32-mips.c (bfd_elf32_mkobject): Define.
1264	* elf64-mips.c (bfd_elf64_mkobject): Likewise.
1265	* elfn32-mips.c (bfd_elf32_mkobject): Likewise.
1266	* elfxx-mips.h (_bfd_mips_elf_mkobject): Declare.
1267	* elfxx-mips.c (is_mips_elf): New macro.
1268	(_bfd_mips_elf_mkobject): New function.
1269	(_bfd_mips_elf_final_link): Use is_mips_elf.
1270	(_bfd_mips_elf_merge_private_bfd_data): Likewise.
1271
12722008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
1273
1274	* elfxx-mips.c (mips_elf_record_relocs): Defer allocation of a
1275	global GOT entry when deferring allocation of dynamic relocations.
1276	(allocate_dynrelocs): When allocating deferred dynamic relocations,
1277	also do the deferred allocation of a GOT entry.
1278
12792008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
1280
1281	* elfxx-mips.c (mips_got_info): Add a "reloc_only_gotno" field.
1282	(mips_elf_got_section): Delete.
1283	(mips_elf_sort_hash_table): Use g->reloc_only_gotno to decide
1284	how many reloc-only entries there are.
1285	(mips_elf_count_got_symbols): Adjust g->reloc_only_gotno as
1286	well as g->global_gotno.
1287	(mips_elf_make_got_per_bfd): Initialize reloc_only_gotno.
1288	(mips_elf_multi_got): Likewise.  Use gg->reloc_only_gotno
1289	rather than gg->assigned_gotno to store the number of
1290	reloc-only GOT entries.
1291	(mips_elf_create_got_section): Remove the MAYBE_EXCLUDE parameter.
1292	Initialize reloc_only_gotno.
1293	(mips_elf_calculate_relocation): Check htab->got_info instead of
1294	dynobj when deciding whether to call mips_elf_adjust_gp,
1295	(_bfd_mips_elf_create_dynamic_sections): Adjust the call
1296	to mips_elf_create_got_section.
1297	(mips_elf_record_relocs): Likewise.  Remove redundant
1298	"dynobj == NULL" code.  Do not use mips_elf_create_got_section
1299	or mips_elf_record_global_got_symbol for R_MIPS_32, R_MIPS_REL32
1300	and R_MIPS_64; limit global_got_area to GGA_RELOC_ONLY instead.
1301	(_bfd_mips_elf_finish_dynamic_symbol): Use htab->sgot instead
1302	of mips_elf_got_section.
1303	(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
1304	(_bfd_mips_elf_finish_dynamic_sections): Likewise.
1305	Move the initial assignment of G to the block that uses it;
1306	it is used for an unrelated purpose later.
1307
13082008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
1309
1310	* elfxx-mips.c (count_section_dynsyms): Move before the new first use.
1311	(mips_elf_sort_hash_table): Take the output bfd as a parameter.
1312	Remove the MAX_LOCAL parameter.  Exit early if there are no
1313	dynamic symbols, if there is no dynobj, or if there is no
1314	GOT section.  Use count_section_dynsyms instead of MAX_LOCAL.
1315	Assert == rather than <= when checking hsd.max_unref_got_dynindx.
1316	Also assert that g->global_gotno is right.
1317	(mips_elf_count_forced_local_got_symbols): Rename to...
1318	(mips_elf_count_got_symbols): ...and count global GOT entries too.
1319	Set the global_got_area of a forced-local GGA_RELOC_ONLY symbol
1320	to GGA_NONE.
1321	(mips_elf_multi_got): Don't sort the symbol table.
1322	(mips_elf_lay_out_got): Likewise.  Use mips_elf_count_got_symbols
1323	to count the number of global GOT entries.
1324	(_bfd_mips_elf_final_link): Unconditionally call
1325	mips_elf_sort_hash_table.
1326
13272008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
1328
1329	* elfxx-mips.c (GGA_NORMAL, GGA_RELOC_ONLY, GGA_NONE): New macros.
1330	(mips_elf_link_hash_entry): Add a "global_got_area" field.
1331	(mips_elf_link_hash_newfunc): Initialize it.
1332	(mips_elf_sort_hash_table_f): Use h->global_got_area instead of
1333	h->root.got.offset.  Do not handle forced_local symbols specially.
1334	(mips_elf_record_global_got_symbol): Set h->global_got_area
1335	instead of h->root.got.offset.
1336	(mips_elf_recreate_got): Assert that h->global_got_area == GGA_NONE
1337	for indirect and warning symbols.
1338	(mips_elf_count_forced_local_got_symbols): Change the argument
1339	from a "elf_link_hash_entry" to "mips_elf_link_hash_entry".
1340	Use and set h->global_got_area instead of h->root.got.offset.
1341	Set it to GGA_NONE for all forced-local symbols.
1342	(mips_elf_set_global_got_offset): Set h->global_got_area
1343	instead of h->root.got.offset.  Use g->global_got_area instead
1344	of a combination of dynindx, forced_local and tls_type.
1345	(mips_elf_multi_got): Remove disabled code.  Pass GGA_* values to
1346	mips_elf_set_global_got_offset.
1347	(mips_elf_lay_out_got): Use mips_elf_link_hash_traverse instead
1348	of elf_link_hash_traverse.
1349	(_bfd_mips_elf_copy_indirect_symbol): Copy the indirect symbol's
1350	global_got_area to the direct symbol if the latter's value is higher.
1351	Set the indirect symbol's area to GGA_NONE.
1352
13532008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
1354
1355	* elf32-mips.c (elf_backend_hide_symbol): Delete.
1356	* elfn32-mips.c (elf_backend_hide_symbol): Likewise.
1357	* elf64-mips.c (elf_backend_hide_symbol): Likewise.
1358	* elfxx-mips.h (elf_backend_hide_symbol): Likewise.
1359	* elfxx-mips.c (mips_elf_link_hash_entry): Remove "forced_local"
1360	and add "needs_lazy_stub".
1361	(mips_elf_link_hash_newfunc): Update accordingly.
1362	(mips_elf_link_hash_table): Remove "computed_got_sizes" and
1363	add "lazy_stub_count".
1364	(_bfd_mips_elf_link_hash_table_create): Update accordingly.
1365	(mips_elf_output_extsym): Use hd->needs_lazy_stub to detect
1366	cases where a lazy stub is being used.
1367	(mips_elf_sort_hash_table_f): Use h->root.forced_local instead
1368	of h->forced_local.
1369	(mips_elf_record_global_got_symbol): Use _bfd_elf_link_hash_hide_symbol
1370	instead of _bfd_mips_elf_hide_symbol.  Do not increment local_gotno
1371	here.
1372	(mips_elf_allocate_dynamic_relocations): Move before new first use.
1373	(mips_elf_check_recreate_got, mips_elf_recreate_got): New functions.
1374	(mips_elf_resolve_final_got_entries): Move earlier in file.  Make at
1375	most two passes over the hash table.  Use mips_elf_check_recreate_got
1376	to see if there are any indirect or warning entries and
1377	mips_elf_recreate_got to create a new GOT without them.
1378	Return a boolean success value.
1379	(mips_elf_count_forced_local_got_entries): New function.
1380	(mips_elf_make_got_per_bfd): Check h->root.forced_local instead of
1381	h->forced_local.
1382	(mips_elf_set_global_got_offset): Likewise.
1383	(mips_elf_set_no_stub): Replace with...
1384	(mips_elf_forbid_lazy_stubs): ...this new function.
1385	(mips_elf_resolve_final_got_entry): Delete.
1386	(mips_elf_multi_got): Fix formatting.  Use mips_elf_forbid_lazy_stubs
1387	instead of mips_elf_set_no_stub.  Move the code that sets
1388	global offsets and allocates dynamic relocations from the main
1389	_bfd_mips_elf_size_dynamic_sections loop to here.
1390	(_bfd_mips_elf_adjust_dynamic_symbol): Do not allocate room in
1391	.MIPS.stubs here; just set hmips->needs_lazy_stub and increment
1392	htab->lazy_stub_count.
1393	(_bfd_mips_elf_always_size_sections): Move the stub-estimation
1394	code to mips_elf_estimate_stub_size and the GOT-sizing code to
1395	mips_elf_lay_out_got.  Do not call these functions here.
1396	(mips_elf_estimate_stub_size): New function, split
1397	out from _bfd_mips_elf_always_size_sections.  Call
1398	mips_elf_resolve_final_got_entries earlier.  Count the number
1399	of forced-local entries.  Do not add stub sizes to loadable_size;
1400	after this patch, the stub sizes are already included in the main
1401	estimate.  Allocate dynamic relocations here rather than in the
1402	main _bfd_mips_elf_size_dynamic_sections loop.
1403	(mips_elf_estimate_stub_size): New function, split out from
1404	_bfd_mips_elf_always_size_sections.
1405	(mips_elf_allocate_lazy_stub): New function.
1406	(mips_elf_lay_out_lazy_stubs): Likewise.
1407	(_bfd_mips_elf_size_dynamic_sections): Call mips_elf_estimate_stub_size,
1408	mips_elf_lay_out_got and mips_elf_lay_out_lazy_stubs.  Do not handle
1409	the allocation of sreldyn specially.
1410	(_bfd_mips_elf_hide_symbol): Delete.
1411
14122008-08-07  Richard Sandiford  <rdsandiford@googlemail.com>
1413
1414	* elfxx-mips.c (allocate_dynrelocs): Ignore indirect and warning
1415	symbols.
1416
14172008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>
1418
1419	* elfxx-mips.c (mips_elf_link_hash_entry): Move bfd_boolean
1420	fields to the end of the structure and make them single-bit
1421	bitfields.
1422	(mips_elf_link_hash_newfunc): Make the initialization statements
1423	follow the new field order.
1424
14252008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>
1426
1427	* elfxx-mips.c (_mips_elf_section_data): Remove the "u.got_info" field.
1428	(mips_elf_link_hash_table): Add "sgot" and "got_info" fields.
1429	(_bfd_mips_elf_link_hash_table_create): Initialize them.
1430	(mips_elf_got_section): Always apply the !maybe_excluded behavior.
1431	(mips_elf_got_info): Delete.
1432	(mips_elf_initialize_tls_slots): Remove the DYNOBJ local variable.
1433	Adjust the call to mips_elf_got_section.
1434	(mips_elf_local_got_index): Don't call mips_elf_got_info.
1435	Update the call to mips_elf_create_local_got_entry.
1436	Use htab->got_info.
1437	(mips_elf_global_got_index): Don't call mips_elf_got_info;
1438	use htab->got_info and htab->sgot instead.
1439	(mips_elf_got_page): Don't call mips_elf_got_info.  Update the
1440	call to mips_elf_create_local_got_entry.
1441	(mips_elf_got16_entry): Likewise.
1442	(mips_elf_got_offset_from_index): Replace with DYNOBJ parameter
1443	with an INFO parameter.  Don't call mips_elf_got_info; use htab->sgot
1444	and htab->got_info instead.
1445	(mips_elf_create_local_got_entry): Remove the GG and SGOT parameters.
1446	Use htab->sgot and htab->got_info.
1447	(mips_elf_sort_hash_table): Remove the DYNOBJ local variable.
1448	Don't call mips_elf_got_info; use htab->got_info instead.
1449	(mips_elf_record_global_got_symbol): Turn G from a paramter to
1450	a local variable and read it from htab->got_info.
1451	(mips_elf_record_local_got_symbol): Replace the G parameter with
1452	an INFO parameter.  Make G a local variable and read it from
1453	htab->got_info instead.
1454	(mips_elf_record_got_page_entry): Likewise.
1455	(mips_elf_multi_got): Remove the G parameter and make it a local
1456	variable instead.  Read it from htab->got_info.
1457	(mips_elf_create_got_section): Cache the GOT section in htab->sgot.
1458	Store the GOT information in htab->got_info.
1459	(mips_elf_calculate_relocation): Don't call mips_elf_got_section
1460	and mips_elf_got_info; use htab->sgot and htab->got_info instead.
1461	Adjust the calls to mips_elf_got_offset_from_index and
1462	mips_elf_adjust_gp.
1463	(_bfd_mips_elf_check_relocs): Remove the G and SGOT local variables.
1464	Adjust the calls to mips_elf_record_local_got_symbol,
1465	mips_elf_record_global_got_symbol and mips_elf_record_got_page_entry.
1466	Use htab->sgot.
1467	(_bfd_mips_elf_always_size_sections): Remove the DYNOBJ local variable.
1468	Don't call mips_elf_got_info; use htab->sgot and htab->got_info instead.
1469	Update the call to mips_elf_multi_got.
1470	(_bfd_mips_elf_size_dynamic_sections): Don't call mips_elf_got_info;
1471	use htab->got_info instead.
1472	(_bfd_mips_elf_finish_dynamic_symbol): Update the call to
1473	mips_elf_got_section.  Get the got_info from the hash table
1474	rather than the GOT section.
1475	(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
1476	(_bfd_mips_elf_finish_dynamic_sections): Likewise.
1477	(_bfd_mips_elf_hide_symbol): Don't call mips_elf_got_section;
1478	get the got_info from the hash table instead.  Remove the GOT
1479	local variable.
1480	(_bfd_mips_elf_final_link): Likewise.  Also remove the DYNOBJ
1481	local variable.
1482
14832008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>
1484
1485	* elfxx-mips.c (mips_elf_link_hash_table): Add an "sstubs" field.
1486	(_bfd_mips_elf_create_dynamic_sections): Use it to cache the stubs
1487	section.  Don't check whether the section already exists.
1488	(_bfd_mips_elf_adjust_dynamic_symbol): Use htab->sstubs.
1489	(_bfd_mips_elf_finish_dynamic_symbol): Likewise.
1490	(_bfd_mips_elf_finish_dynamic_sections): Likewise.
1491	(_bfd_mips_elf_size_dynamic_sections): Likewise.  Don't add the
1492	dummy stub to an empty section.
1493	(_bfd_mips_elf_link_hash_table_create): Initialize the "sstubs" field.
1494
14952008-08-06  Richard Sandiford  <rdsandiford@googlemail.com>
1496
1497	* reloc.c (BFD_RELOC_MIPS16_GOT16, BFD_RELOC_MIPS16_CALL16): Declare.
1498	* libbfd.h, bfd-in2.h: Regenerate.
1499	* elf32-mips.c (elf_mips16_howto_table_rel): Fill in reserved
1500	R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
1501	(mips16_reloc_map): Add mappings.
1502	* elf64-mips.c (mips16_elf64_howto_table_rel): Fill in reserved
1503	R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
1504	(mips16_elf64_howto_table_rela): Likewise.
1505	(mips16_reloc_map): Add mappings.
1506	* elfn32-mips.c (elf_mips16_howto_table_rel): Fill in reserved
1507	R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
1508	(elf_mips16_howto_table_rela): Likewise.
1509	(mips16_reloc_map): Add mappings.
1510	* elfxx-mips.c (mips_elf_create_shadow_symbol): New function.
1511	(section_allows_mips16_refs_p): Likewise.
1512	(mips16_stub_symndx): Likewise.
1513	(mips_elf_check_mips16_stubs): Treat the data argument as a
1514	bfd_link_info.  Mark every dynamic symbol as needing MIPS16 stubs
1515	and create a "shadow" symbol for the original MIPS16 definition.
1516	(mips16_reloc_p, got16_reloc_p, call16_reloc_p, hi16_reloc_p)
1517	(lo16_reloc_p, mips16_call_reloc_p): New functions.
1518	(_bfd_mips16_elf_reloc_unshuffle): Use mips16_reloc_p to generalize
1519	relocation checks.
1520	(_bfd_mips16_elf_reloc_shuffle): Likewise.
1521	(_bfd_mips_elf_lo16_reloc): Handle R_MIPS16_GOT16.
1522	(mips_elf_got16_entry): Add comment.
1523	(mips_elf_calculate_relocation): Use hi16_reloc_p,
1524	lo16_reloc_p, mips16_call_reloc_p, call16_reloc_p and got16_reloc_p
1525	to generalize relocation checks.  Use section_allows_mips16_refs_p
1526	instead of mips16_stub_section_p.   Handle R_MIPS16_CALL16 and
1527	R_MIPS16_GOT16, allowing the former to refer directly to a
1528	MIPS16 function if its stub is not needed.
1529	(mips16_stub_section_p): Delete.
1530	(_bfd_mips_elf_symbol_processing): Convert odd-valued function
1531	symbols into even MIPS16 symbols.
1532	(mips_elf_add_lo16_rel_addend): Use mips16_reloc_p to generalize
1533	a relocation check.
1534	(_bfd_mips_elf_check_relocs): Calculate "bed" and "rel_end"
1535	earlier in the function.  Use mips16_stub_symndx to identify
1536	the target function.  Avoid out-of-bounds accesses when the
1537	stub has no relocations; report an error instead.  Use
1538	section_allows_mips16_refs_p instead of mips16_stub_section_p.
1539	Use mips16_call_reloc_p and got16_reloc_p to generalize relocation
1540	checks.  Handle R_MIPS16_CALL16 and R_MIPS16_GOT16.  Don't create
1541	dynamic relocations for absolute references to __gnu_local_gp.
1542	(_bfd_mips_elf_always_size_sections): Pass a bfd_link_info as
1543	the argument to mips_elf_check_mips16_stubs.  Generalize comment.
1544	(_bfd_mips_elf_relocate_section): Use hi16_reloc_p and got16_reloc_p
1545	to generalize relocation checks.
1546	(_bfd_mips_elf_finish_dynamic_symbol): If a dynamic MIPS16 function
1547	symbol has a non-MIPS16 stub, redirect the symbol to the stub.
1548	Fix an overly long line.  Don't give dynamic symbols type STO_MIPS16.
1549	(_bfd_mips_elf_gc_sweep_hook): Handle R_MIPS16_CALL16 and
1550	R_MIPS16_GOT16.
1551
15522008-08-06  Alan Modra  <amodra@bigpond.net.au>
1553
1554	* elf32-ppc.c (ppc_elf_relax_section): Clear R_PPC_PLTREL24 addend.
1555	(ppc_elf_relocate_section <R_PPC_RELAX32_PLT>): Don't bother here.
1556
15572008-08-05  Alan Modra  <amodra@bigpond.net.au>
1558	    Jaka Močnik <jaka@xlab.si>
1559
1560	* coffcode.h (coff_slurp_line_table): bfd_alloc lineno_cache first
1561	so that we don't inadvertently free it.  Use bfd_alloc for sort
1562	arrays, and memcpy sorted line table.
1563
15642008-08-04  Alan Modra  <amodra@bigpond.net.au>
1565
1566	* elf32-spu.c (spu_elf_auto_overlay): Use the maximum possible
1567	if --fixed-space request is too large.
1568
15692008-08-04  Alan Modra  <amodra@bigpond.net.au>
1570
1571	* Makefile.am (SRC-POTFILES.in, BLD-POTFILES.in): Set LC_ALL=C.
1572	* Makefile.in: Regenerate.
1573	* po/SRC-POTFILES.in: Regenerate.
1574
15752008-08-02  Alan Modra  <amodra@bigpond.net.au>
1576
1577	* elf32-spu.c (mark_overlay_section): Move code calculating
1578	max_overlay_size to correct block.
1579	(spu_elf_auto_overlay): Don't use %x in einfo error message.
1580
15812008-08-01  Alan Modra  <amodra@bigpond.net.au>
1582	    Jan Kratochvil  <jan.kratochvil@redhat.com>
1583
1584	* elfcore.h (elf_core_file_p): Ensure we have a backend match
1585	with the correct arch size before rejecting the generic fallback.
1586	* elfcode.h (elf_object_p): Likewise.  Ensure arch size matches
1587	before accepting a target.
1588
15892008-08-01  Alan Modra  <amodra@bigpond.net.au>
1590
1591	PR 6774
1592	* elf.c (rewrite_elf_program_header): Don't wrap p_paddr to
1593	include file or program headers.
1594
15952008-07-30  Alan Modra  <amodra@bigpond.net.au>
1596
1597	* coff-ppc.c, coffgen.c, ecoff.c, ecofflink.c, elf.c, elf32-frv.c,
1598	elf32-iq2000.c, elf32-m32c.c, elf32-mep.c, elf32-mt.c,
1599	elf32-sh-symbian.c, elf64-hppa.c, mach-o.c, peXXigen.c, pef.c,
1600	ppcboot.c, vms-misc.c, xsym.c: Silence gcc warnings.
1601
16022008-07-28  Daniel Jacobowitz  <dan@codesourcery.com>
1603
1604	* elfxx-mips.c (mips_elf_calculate_relocation): Avoid generating
1605	relocations for undefined weak symbols with non-default visibility.
1606	(_bfd_mips_elf_check_relocs): Use possibly_dynamic_relocs for
1607	global symbols in shared libraries.
1608	(allocate_dynrelocs): New function.
1609	(_bfd_mips_elf_adjust_dynamic_symbol): Do not handle
1610	possibly_dynamic_relocs here.
1611	(_bfd_mips_elf_size_dynamic_sections): Call allocate_dynrelocs.
1612
16132008-07-28  Alexandre Oliva  <aoliva@redhat.com>
1614
1615	* elf32-i386.c (struct elf_i386_link_hash_table): Added field
1616	tls_module_base.
1617	(elf_i386_link_hash_table_create): Initialize it.
1618	(elf_i386_always_size_sections): Set it.
1619	(set_tls_module_base): New.
1620	(elf_i386_relocate_sections): Call it.
1621	* elf64-x86-64.c (struct elf64_x86_64_link_hash_table): Added
1622	field tls_module_base.
1623	(elf64_x86_64_link_hash_table_create): Initialize it.
1624	(elf64_x86_64_always_size_sections): Set it.
1625	(set_tls_module_base): New.
1626	(elf64_x86_64_relocate_sections): Call it.
1627	Reported by Cary Coutant <ccoutant@google.com>
1628
16292008-07-28  Ineiev  <ineiev@yahoo.co.uk>
1630
1631	* elf32-arm.c (arm_map_one_stub): Declare variables at beginning
1632	of block.
1633	* elf32-avr.c (get_local_syms): Likewise.
1634
16352008-07-28  Alan Modra  <amodra@bigpond.net.au>
1636
1637	PR 6769
1638	* bfd-in.h (BFD_VMA_FMT): Define.
1639	(printf_vma, sprintf_vma): Use the above.
1640	(_bfd_int64_low, _bfd_int64_high): Delete.
1641	* bfd-in2.h: Regenerate.
1642
16432008-07-27  Alan Modra  <amodra@bigpond.net.au>
1644
1645	* elf.c (_bfd_elf_make_section_from_shdr): Ignore return from
1646	elf_parse_notes.  Use bfd_malloc_and_get_section.
1647	(elf_parse_notes): Validate note namesz and descsz.
1648
16492008-07-26  Michael Eager <eager@eagercon.com>
1650
1651	* elf32-ppc.c (ppc_elf_merge_obj_attributes): Check compatibility
1652	between single-float, double-float, and soft-float.
1653
16542008-07-24  Daniel Jacobowitz  <dan@codesourcery.com>
1655
1656	* elf32-mips.c (elf_backend_write_section): Define.
1657
16582008-07-24  Nick Clifton  <nickc@redhat.com>
1659
1660	* elf.c (_bfd_elf_map_sections_to_segments): Catch off by one
1661	error assigning sections to segments.
1662
16632008-07-22  Nick Clifton  <nickc@redhat.com>
1664
1665	* elf.c (_bfd_elf_map_sections_to_segments): Allow sections in
1666	adjoining pages to be included in the same segment.
1667
16682008-07-22  Simon Baldwin  <simonb@google.com>
1669
1670	* elflink.c (elf_link_output_extsym): Set st_size to zero for
1671	symbols from dynamic libraries.
1672
16732008-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1674
1675	PR ld/4424
1676	* elflink.c (_bfd_elf_merge_symbol): Call bed->relocs_compatible
1677	to check if 2 inputs are compatible.
1678
16792008-07-21  Sterling Augustine  <sterling@tensilica.com>
1680
1681	* elf.c (assign_file_positions_for_load_sections): Print vma in
1682	error message about overlapping section vmas.
1683
16842008-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1685
1686	PR ld/6747
1687	* elf32-frv.c (elf32_frv_relocate_section): Revert the change
1688	for PR ld/6446 checked in by accident on May 21, 2008.
1689
16902008-07-21  Nick Clifton  <nickc@redhat.com>
1691
1692	* coff-sh.c (bfd_pe_print_pdata): Define to NULL for non
1693	COFF_WITH_PE based SH ports.
1694	* libpei.h (_bfd_XX_print_ce_compressed_pdata): Prototype.
1695	* arm-wince-pe.c (bfd_pe_print_pdata): Use
1696	_bfd_pe_print_ce_compressed_pdata.
1697	(slurp_symcache, cleanup_syms, pe_print_ce_compressed_pdata): Move
1698	to...
1699	* peXXigen.c: ... here and rename pe_print_ce_compressed_pdata to
1700	_bfd_XX_print_ce_compressed_pdata.
1701
17022008-07-21  Alan Modra  <amodra@bigpond.net.au>
1703
1704	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Drop
1705	unwanted zero terminators.
1706
17072008-07-21  Alan Modra  <amodra@bigpond.net.au>
1708
1709	* elf32-spu.c (spu_elf_relocate_section): Expand
1710	RELOC_FOR_GLOBAL_SYMBOL.  Don't warn about undefined symbols for
1711	R_SPU_PPU32 and R_SPU_PPU64 relocations.
1712
17132008-07-21  Luis Machado  <luisgpm@br.ibm.com>
1714
1715	* elf-bfd.h: Declare elfcore_write_ppc_vsx.
1716	* elf.c (elfcore_grok_ppc_vsx): New function.
1717	(elfcore_write_ppc_vsx): New function
1718	(elfcore_grok_note): Handle VSX notes.
1719	(elfcore_write_register_note): Handle VSX notes.
1720
17212008-07-18  Joseph Myers  <joseph@codesourcery.com>
1722
1723	* bfd-in.h (bfd_elf32_arm_set_target_relocs): Add new parameter.
1724	* bfd-in2.h: Regenerate.
1725	* elf32-arm.c (struct elf_arm_obj_tdata): Add field
1726	no_wchar_size_warning.
1727	(bfd_elf32_arm_set_target_relocs): Add new parameter
1728	no_wchar_warn.
1729	(elf32_arm_merge_eabi_attributes): Give a warning, not an error,
1730	for conflicting wchar_t attributes.  Do not warn if
1731	--no-wchar-size-warning.  Make diagnostic text more specific.
1732
17332008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
1734
1735	PR ld/6748
1736	* elf32-arm.c (elf32_arm_link_hash_table_create): Initialize
1737	new fields added for ARM long call support.
1738
17392008-07-18  Danny Backx  <dannybackx@users.sourceforge.net>
1740
1741	* pe-arm-wince.c (pe_print_compressed_pdata): Define new function to
1742	print compressed pdata structure as described on MSDN. This only
1743	applies to a limited set of architectures (ARM, SH4).
1744	(slurp_symtab, my_symbol_for_address): Define static helper
1745	functions for pe_print_compressed_pdata.
1746	* coffcode.h (bfd_coff_backend_data): Add _bfd_coff_print_pdata field.
1747	(bfd_coff_have_print_pdata, bfd_coff_print_pdata): Define.
1748	* bfd/peXXigen.c (_bfd_XX_print_private_bfd_data_common): Add check on
1749	bfd_coff_backend_data, call the function if non-null.
1750	* pei-mcore.c: Add target dependent initialisation for
1751	bfd_coff_backend_data.
1752	* coff-sh.c: Likewise.
1753	* coff64-rs6000.c: Likewise.
1754	* coff-rs6000.c: Likewise.
1755	* libcoff-in.h: Likewise.
1756	* cf-i386lynx.c: Likewise.
1757	* coff-alpha.c: Likewise.
1758	* coff-apollo.c: Likewise.
1759	* coff-arm.c: Likewise.
1760	* coff-aux.c: Likewise.
1761	* coff-h8300.c: Likewise.
1762	* coff-h8500.c: Likewise.
1763	* coff-i386.c: Likewise.
1764	* coff-i860.c: Likewise.
1765	* coff-i960.c: Likewise.
1766	* coff-ia64.c: Likewise.
1767	* coff-m68k.c: Likewise.
1768	* coff-m88k.c: Likewise.
1769	* coff-maxq.c: Likewise.
1770	* coff-mips.c: Likewise.
1771	* coff-or32.c: Likewise.
1772	* coff-sparc.c: Likewise.
1773	* coff-tic30.c: Likewise.
1774	* coff-tic4x.c: Likewise.
1775	* coff-tic54x.c: Likewise.
1776	* coff-tic80.c: Likewise.
1777	* coff-w65.c: Likewise.
1778	* coff-we32k.c: Likewise.
1779	* coff-x86_64.c: Likewise.
1780	* coff-z80.c: Likewise.
1781	* coff-z8k.c: Likewise.
1782	* pe-mcore.c: Likewise.
1783	* pe-mips.c: Likewise.
1784	* pe-ppc.c: Likewise.
1785	* peXXigen.c: Likewise.
1786	* pei-ppc.c: Likewise.
1787	* libcoff.h: Regenerate.
1788
17892008-07-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1790
1791	* elf32-bfin.c (bfin_check_relocs, bfin_relocate_section,
1792	bfin_final_link_relocate, bfin_gc_mark_hook, bfin_gc_sweep_hook,
1793	ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE,
1794	struct _bfinfdpic_dynamic_got_info): Moved around to keep FD-PIC code
1795	separate from non-FD-PIC.
1796
17972008-07-14  DJ Delorie  <dj@redhat.com>
1798
1799	* elf-m10300.c (mn10300_elf_final_link_relocate): Correct overflow
1800	checks for PCREL8, PCREL16, GOTPC16, GOTOFF16, PLT16, and GOT16
1801	relocs.
1802	(mn10300_elf_relax_section): Correct jump offset check when target
1803	is in a different section.
1804
18052008-07-15  Jie Zhang  <jie.zhang@analog.com>
1806
1807	* elf32-bfin.c (elf32_bfin_special_sections[]): New.
1808	(elf_backend_special_sections): Define.
1809
18102008-07-13  Craig Silverstein  <csilvers@google.com>
1811
1812	PR binutils/6743
1813	* dwarf2.c (struct dwarf2_debug): New variable info_ptr_memory.
1814	(find_line): Use info_ptr_memory instead of sec_info_ptr.
1815	(_bfd_dwarf2_cleanup_debug_info): Likewise.
1816
18172008-07-12  Jie Zhang  <jie.zhang@analog.com>
1818
1819	Revert
1820	2008-07-12  Jie Zhang  <jie.zhang@analog.com>
1821	* elf.c (_bfd_elf_map_sections_to_segments): Don't put
1822	executable sections into the same segment with other
1823	read only sections if --sep-code.
1824	* elf32-bfin.c (elf32_bfin_code_in_l1): New variable.
1825	(elf32_bfin_data_in_l1): New variable.
1826	(elf32_bfin_final_write_processing): New.
1827	(elf32_bfin_special_sections[]): New.
1828	(elf_backend_final_write_processing): Define.
1829	(elf_backend_special_sections): Define.
1830
18312008-07-12  Jie Zhang  <jie.zhang@analog.com>
1832
1833	* elf.c (_bfd_elf_map_sections_to_segments): Don't put
1834	executable sections into the same segment with other
1835	read only sections if --sep-code.
1836	* elf32-bfin.c (elf32_bfin_code_in_l1): New variable.
1837	(elf32_bfin_data_in_l1): New variable.
1838	(elf32_bfin_final_write_processing): New.
1839	(elf32_bfin_special_sections[]): New.
1840	(elf_backend_final_write_processing): Define.
1841	(elf_backend_special_sections): Define.
1842
18432008-07-11  Andreas Schwab  <schwab@suse.de>
1844
1845	* dwarf2.c (read_section): Take pointer to bfd_size_type instead
1846	of unsigned long as last parameter.
1847	(struct dwarf2_debug): Define dwarf_abbrev_size, dwarf_line_size,
1848	dwarf_str_size and dwarf_ranges_size as bfd_size_type instead of
1849	unsigned long.
1850
18512008-07-10  Richard Sandiford  <rdsandiford@googlemail.com>
1852
1853	* elfxx-mips.c (mips_elf_calculate_relocation): Calculate GP and GP0
1854	for all relocation types.  Allow any type of relocation to refer to
1855	__gnu_local_gp.
1856
18572008-07-10  Richard Sandiford  <rdsandiford@googlemail.com>
1858
1859	* elfxx-mips.c (mips_elf_check_mips16_stubs): Use ELF_ST_IS_MIPS16.
1860	(mips_elf_calculate_relocation): Likewise.
1861	(_bfd_mips_elf_add_symbol_hook): Likewise.
1862	(_bfd_mips_elf_finish_dynamic_symbol): Likewise.
1863	(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
1864
18652008-07-10  Andreas Schwab  <schwab@suse.de>
1866
1867	* elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Add missing
1868	paren.
1869
18702008-07-09  Craig Silverstein  <csilvers@google.com>
1871
1872	* Makefile.am (BFD32_LIBS): Add compress.lo.
1873	(BFD32_LIBS_CFILES): Add compress.c.
1874	(BFD_H_FILES): Likewise.
1875	* Makefile.in: Regenerate.
1876	* bfd-in2.h: Regenerate.
1877	* config.in: Add HAVE_ZLIB_H
1878	* configure.in: Add test for libz and zlib.h
1879	* configure: Regenerate.
1880	* dwarf2.c (read_section): New function.
1881	(read_indirect_string): Call new function read_section.
1882	(read_abbrevs): Likewise.
1883	(decode_line_info): Likewise.
1884	(read_debug_ranges): Likewise.
1885	(find_line): Call new function read_section when just one
1886	.zdebug_info section is found, otherwise read and compress
1887	multiple sections.
1888	(_bfd_dwarf2_cleanup_debug_info): Free sec_info_ptr.
1889	* elf.c (_bfd_elf_make_section_from_shdr): Add zdebug prefix.
1890	(special_sections_z): New struct.
1891	(special_sections): Refer to special_sections_z.
1892	* elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Recognize
1893	sections named .zdebug_*.
1894	(_bfd_mips_elf_fake_sections): Likewise.
1895	* compress.c: New file.
1896	(bfd_uncompress_section_contents): New function.
1897
18982008-07-07  Christophe Lyon  <christophe.lyon@st.com>
1899
1900	* elf32-arm.c (arm_type_of_stub): Don't crash on local symbols in
1901	the presence of a PLT.
1902
19032008-07-07  Alan Modra  <amodra@bigpond.net.au>
1904
1905	* bfd.c (bfd_demangle): Always trim off bfd_get_symbol_leading_char.
1906
19072008-07-02  Alan Modra  <amodra@bigpond.net.au>
1908
1909	* elf32-ppc.c (is_pic_glink_stub): New function.
1910	(ppc_elf_get_synthetic_symtab): Don't generate symbols when
1911	multiple shared/pie stubs per plt entry.
1912
19132008-06-30  Richard Sandiford  <rdsandiford@googlemail.com>
1914
1915	* elf.c (_bfd_elf_get_synthetic_symtab): Increment p by
1916	bed->s->int_rels_per_ext_rel.
1917
19182008-06-30  Richard Sandiford  <rdsandiford@googlemail.com>
1919
1920	* syms.c (BSF_SYNTHETIC): New flag.
1921	* elf.c (_bfd_elf_get_synthetic_symtab): Set it.
1922	* elf32-ppc.c (ppc_elf_get_synthetic_symtab): Likewise.
1923	* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.
1924	* bfd-in.h (bfd_asymbol_flavour): Return bfd_target_unknown_flavour
1925	for synthetic symbols.
1926	* bfd-in2.h: Regenerate.
1927
19282008-06-30  Daniel Jacobowitz  <dan@codesourcery.com>
1929
1930	* elf32-arm.c (record_arm_to_thumb_glue, record_thumb_to_arm_glue):
1931	Expand comments.
1932	(arm_map_one_stub): Use | 1 when setting the low bit.
1933
19342008-06-29  Andreas Schwab  <schwab@suse.de>
1935
1936	* elf32-m68k.c (elf_m68k_relocate_section): Don't ignore existing
1937	addend on _GLOBAL_OFFSET_TABLE_.
1938
19392008-06-24  Daniel Jacobowitz  <dan@codesourcery.com>
1940
1941	* elf32-arm.c (STUB_ENTRY_NAME): Define.
1942	(arm_thumb_thumb_long_branch_stub): Use bx instead of b.n.
1943	(arm_pic_long_branch_stub): Mention R_ARM_REL32 instead of
1944	R_ARM_ABS32.
1945	(struct elf32_arm_stub_hash_entry): Add output_name.
1946	(arm_build_one_stub): Move offsets into the offset argument
1947	of _bfd_final_link_relocate.  Correct offset for
1948	arm_thumb_arm_v4t_stub_long_branch.
1949	(elf32_arm_size_stubs): Set stub_entry->output_name.
1950	(elf32_arm_ouput_plt_map_sym): Rename to elf32_arm_output_map_sym.
1951	Update all callers.
1952	(elf32_arm_output_stub_sym): New.
1953	(arm_map_one_stub): Correct formatting.  Use elf32_arm_output_stub_sym.
1954
19552008-06-20  Alan Modra  <amodra@bigpond.net.au>
1956
1957	* elf32-spu.c (needs_ovl_stub): Correctly return nonovl_stub for
1958	non-branch insns.
1959
19602008-06-20  Alan Modra  <amodra@bigpond.net.au>
1961
1962	* elf32-spu.c (build_stub): Allow wraparound on stub branches.
1963	(allocate_spuear_stubs, build_spuear_stubs): Return value from
1964	count_stub/build_stub.
1965	(spu_elf_build_stubs): Correct location of stub reloc error message.
1966
19672008-06-18  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
1968
1969	* elf32-cr16.c (ELF_MACHINE_ALT1): Define to EM_CR16_OLD.
1970
19712008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1972
1973	* configure: Regenerate.
1974
19752008-06-17  Alan Modra  <amodra@bigpond.net.au>
1976
1977	* elf32-spu.c (struct spu_link_hash_table): Add extra_stack_space.
1978	(spu_elf_check_vma): Add extra_stack_space param, copy to htab.
1979	(spu_elf_auto_overlay): Use it.
1980	(RECURSE_UNMARK): Define as 0.
1981	(unmark_overlay_section): Heed RECURSE_UNMARK.
1982	* elf32-spu.h (spu_elf_check_vma): Update prototype.
1983
19842008-06-12  DJ Delorie  <dj@redhat.com>
1985
1986	* elf32-m32c.c (ELF_MACHINE_ALT1): Define as EM_M32C_OLD.
1987
19882008-06-09  Paul Brook  <paul@codesourcery.com>
1989
1990	bfd/
1991	* elf32-arm.c (elf32_arm_merge_private_bfd_data): Allow BE8 shared
1992	libraries.
1993
19942008-06-09  Christophe Lyon  <christophe.lyon@st.com>
1995
1996	* elf32-arm.c (arm_stub_is_thumb): Define.
1997	(elf32_arm_final_link_relocate): Handle near mode switching stubs.
1998
19992008-06-07  Alan Modra  <amodra@bigpond.net.au>
2000
2001	* elf32-spu.c (spu_elf_auto_overlay): Add valid area below sp
2002	to stack calculation.
2003
20042008-06-06  Paul Brook  <paul@codesourcery.com>
2005
2006	bfd/
2007	* elf32-arm.c (elf32_arm_merge_private_bfd_data): Reject BE8 input.
2008
20092008-06-06  Alan Modra  <amodra@bigpond.net.au>
2010
2011	* elf32-spu.c (spu_elf_auto_overlay): Relax requirement that
2012	file names be unique.  Specify archive:path in overlay script.
2013
20142008-06-05  Alan Modra  <amodra@bigpond.net.au>
2015
2016	PR ld/6590
2017	* elf64-ppc.c (ppc_build_one_stub): Correct reloc offsets.
2018
20192008-06-04  Alan Modra  <amodra@bigpond.net.au>
2020
2021	* elf.c (ignore_section_sym): Don't test section sym value here.
2022	(elf_map_symbols): Instead check zero value here as was done prior
2023	to 2006-05-26 change.
2024
20252008-06-04  Nick Clifton  <nickc@redhat.com>
2026
2027	PR ld/6019
2028	* elf32-avr.c (elf32_avr_relax_section): Handle the case where
2029	there are no local symbols.
2030
20312008-06-04  Alan Modra  <amodra@bigpond.net.au>
2032
2033	* elf32-spu.c (get_sym_h): Don't attempt to read global syms.
2034	(process_stubs): Likewise.
2035	(discover_functions): Don't used cached symbols.
2036	(maybe_insert_function): Correct condition under which function
2037	array is realloc'd.
2038	(mark_functions_via_relocs): Delete unused variable.
2039
20402008-05-30  Frediano Ziglio  <frediano.ziglio@vodafone.com>
2041	    Nick Clifton  <nickc@redhat.com>
2042
2043	PR ld/6511
2044	* elf64-hppa.c (allocate_global_data_opd): Default to using the
2045	dynamic symbol table for local function names in shared libraries.
2046
20472008-05-29  Jan Kratochvil  <jan.kratochvil@redhat.com>
2048
2049	* elf.c (assign_file_positions_for_load_sections): Adjust pre-section
2050	gaps based on VMA and P_VADDR instead of LMA and P_PADDR addresses.
2051
20522008-05-28  Alan Modra  <amodra@bigpond.net.au>
2053
2054	* elf32-spu.c (spu_elf_object_p): New function.
2055	(elf_backend_object_p): Define.
2056	(build_stub): Correct second word of 8 byte overlay stubs.
2057	(spu_elf_relocate_section): Formatting.
2058
20592008-05-24  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>
2060
2061	* elf.c (elfcore_write_register_note): New function.
2062	* elf-bfd.h (elfcore_write_register_note): New prototype.
2063
20642008-05-22  Christophe Lyon  <christophe.lyon@st.com>
2065
2066	* elf32-arm.c (arm_type_of_stub): Ignore STT_SECTION symbols.
2067	(elf32_arm_stub_add_mapping_symbol): Remove.
2068	(elf32_arm_add_stub): Don't generate mapping symbols. Change
2069	prototype.
2070	(elf32_arm_size_stubs): Use new elf32_arm_add_stub
2071	prototype. Don't generate thumb to arm glue for calls.
2072	(arm_map_one_stub): Define.
2073	(elf32_arm_output_arch_local_syms): Generate mapping symbols for
2074	long calls stubs.
2075
20762008-05-21  Nick Clifton  <nickc@redhat.com>
2077
2078	* elf32-arm.c (group_sections): Reformat comments.
2079
2080	PR ld/6446
2081	* elf32-frv.c (elf32_frv_relocate_section): Set EF_FRV_PIC by
2082	default (for FDPIC). Clear it if any inter-segment relocations
2083	are found.
2084
2085	* elf64-hppa.c (elf64_hppa_finalize_opd): Check NULL return
2086	from elf_link_hash_lookup.
2087
20882008-05-21  Maxim Kuvyrkov  <maxim@codesourcery.com>
2089
2090	Add multi-GOT support for m68k.
2091	* elf32-m68k.c (struct elf_m68k_link_hash_entry: got_entry_key,
2092	glist): New fields.
2093	(struct elf_m68k_got_entry_key, struct elf_m68k_got_entry,
2094	struct elf_m68k_got, struct elf_m68k_bfd2got_entry,
2095	struct elf_m68k_multi_got): New data structures.
2096	(struct elf_m68k_link_hash_table: local_gp_p, use_neg_got_offsets_p,
2097	allow_multigot_p, multi_got_): New fields.
2098	(elf_m68k_multi_got): New macro.
2099	(elf_m68k_link_hash_newfunc): Initialize new fields of
2100	struct elf_m68k_link_hash_entry.
2101	(elf_m68k_link_hash_table_create): Initialize new fields of
2102	struct elf_m68k_link_hash_table.
2103	(elf_m68k_link_hash_table_free): New static function implementing hook.
2104	(elf_m68k_init_got, elf_m68k_clear_got, elf_m68k_create_empty_got): New
2105	static functions for struct elf_m68k_got.
2106	(elf_m68k_init_got_entry_key, elf_m68k_got_entry_hash,
2107	elf_m68k_got_entry_eq): New static functions for
2108	struct elf_m68k_got_entry.
2109	(ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT,
2110	ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): New macros.
2111	(enum elf_m68k_get_entry_howto): New enum.
2112	(elf_m68k_get_got_entry, elf_m68k_update_got_entry_type,
2113	elf_m68k_remove_got_entry_type): New static functions for
2114	struct elf_m68k_got_entry.
2115	(elf_m68k_add_entry_to_got): New static function.
2116	(elf_m68k_bfd2got_entry_hash, elf_m68k_bfd2got_entry_eq,
2117	elf_m68k_bfd2got_entry_del, elf_m68k_get_bfd2got_entry): New static
2118	functions for struct elf_m68k_bfd2got_entry.
2119	(struct elf_m68k_can_merge_gots_arg, elf_m68k_can_merge_gots_1,
2120	elf_m68k_can_merge_gots): New traversal.
2121	(struct elf_m68k_merge_gots_arg, elf_m68k_merge_gots_1,
2122	elf_m68k_merge_gots): Ditto.
2123	(struct elf_m68k_finalize_got_offsets_arg,
2124	elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Ditto.
2125	(struct elf_m68k_partition_multi_got_arg,
2126	elf_m68k_partition_multi_got_1, elf_m68k_init_symndx2h_1,
2127	elf_m68k_partition_multi_got): Ditto.
2128	(elf_m68k_find_got_entry_ptr, elf_m68k_remove_got_entry): New static
2129	functions.
2130	(elf_m68k_copy_indirect_symbol): New static function implementing
2131	a hook.
2132	(elf_m68k_check_relocs): Update to add entries to multi-GOT.
2133	(elf_m68k_gc_sweep_hook): Update to remove entries from multi-GOT.
2134	(elf_m68k_always_size_sections): Assign BFDs to GOTs.
2135	(elf_m68k_relocate_section): Update to properly handle GOT relocations.
2136	(elf_m68k_finish_dynamic_symbol): Update to traverse all GOT entries
2137	of a global symbol.
2138	(bfd_elf_m68k_set_target_options): New function.
2139	(bfd_elf32_bfd_link_hash_table_free): Define hook.
2140	(bfd_elf32_bfd_final_link): Change expansion to bfd_elf_final_link
2141	to skip generic calculation of GOT offsets.
2142	(elf_backend_copy_indirect_symbol): Define hook.
2143	* bfd-in.h (bfd_elf_m68k_set_target_options): Declare function.
2144	* bfd-in2.h: Regenerate.
2145
21462008-05-21  André Johansen  <andrejoh@gmail.com>
2147
2148	PR 868
2149	* dwarf2.c (_bfd_dwarf2_cleanup_debug_info): Free memory allocated
2150	for filenames in function tables and variable tables.
2151
21522008-05-19  Alan Modra  <amodra@bigpond.net.au>
2153
2154	PR 2995, PR 6473
2155	* elf.c (_bfd_elf_make_section_from_shdr): Leave lma equal to
2156	vma when all p_paddr fields are zero and there is more than
2157	one PT_LOAD header.
2158
21592008-05-15  Christophe Lyon  <christophe.lyon@st.com>
2160
2161	Add long call support for ARM.
2162	* elf32-arm.c (THM2_MAX_FWD_BRANCH_OFFSET): Define.
2163	(THM2_MAX_BWD_BRANCH_OFFSET): Define.
2164	(ARM_MAX_FWD_BRANCH_OFFSET): Define.
2165	(ARM_MAX_BWD_BRANCH_OFFSET): Define.
2166	(THM_MAX_FWD_BRANCH_OFFSET): Define.
2167	(THM_MAX_BWD_BRANCH_OFFSET): Define.
2168	(arm_long_branch_stub): Define.
2169	(arm_pic_long_branch_stub): Define.
2170	(arm_thumb_v4t_long_branch_stub): Define.
2171	(arm_thumb_thumb_long_branch_stub): Define.
2172	(arm_thumb_arm_v4t_long_branch_stub): Define.
2173	(STUB_SUFFIX): Define.
2174	(elf32_arm_stub_type): Define.
2175	(elf32_arm_stub_hash_entry): Define.
2176	(elf32_arm_link_hash_entry): Add stub_cache field.
2177	(arm_stub_hash_lookup): Define.
2178	(elf32_arm_link_hash_table): Add stub_hash_table, stub_bfd,
2179	add_stub_section, layout_sections_again, stub_group, bfd_count,
2180	top_index, input_list fields.
2181	(elf32_arm_link_hash_newfunc): Init new field.
2182	(stub_hash_newfunc): New function.
2183	(elf32_arm_link_hash_table_create): Init stub_hash_table.
2184	(elf32_arm_hash_table_free): New function.
2185	(arm_type_of_stub): New function.
2186	(elf32_arm_stub_name): New function.
2187	(elf32_arm_get_stub_entry): New function.
2188	(elf32_arm_stub_add_mapping_symbol): New function.
2189	(elf32_arm_add_stub): New function.
2190	(arm_build_one_stub): New function.
2191	(arm_size_one_stub): New function.
2192	(elf32_arm_setup_section_lists): New function.
2193	(elf32_arm_next_input_section): New function.
2194	(group_sections): New function.
2195	(elf32_arm_size_stubs): New function.
2196	(elf32_arm_build_stubs): New function.
2197	(bfd_elf32_arm_add_glue_sections_to_bfd): Skip stub sections.
2198	(bfd_elf32_arm_process_before_allocation): No longer handle
2199	R_ARM_CALL and R_ARM_THM_CALL.
2200	(using_thumb_only): New function.
2201	(elf32_arm_final_link_relocate): Redirect calls to stub if range
2202	exceeds encoding capabilities.
2203	(bfd_elf32_bfd_link_hash_table_free): Define.
2204	* bfd-in.h (R_ARM_max): Fix value to 130.
2205	(elf32_arm_setup_section_lists): Protype.
2206	(elf32_arm_next_input_section): Protype.
2207	(elf32_arm_size_stubs): Protype.
2208	(elf32_arm_build_stubs): Protype.
2209	* bfd-in2.h: Regenerate.
2210
22112008-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
2212
2213	* elf32-ppc.c (ppc_elf_get_synthetic_symtab): Fix memset calls.
2214	* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.
2215
22162008-05-14  Alan Modra  <amodra@bigpond.net.au>
2217
2218	* Makefile.am: Run "make dep-am".
2219	* Makefile.in: Regenerate.
2220
22212008-05-14  Ulrich Weigand  <uweigand@de.ibm.com>
2222	    Alan Modra  <amodra@bigpond.net.au>
2223
2224	* elf32-ppc.c (section_covers_vma): New function.
2225	(ppc_elf_get_synthetic_symtab): New function.
2226	(bfd_elf32_get_synthetic_symtab): Define.
2227	* elf64-ppc.c (section_covers_vma): New function.
2228	(ppc64_elf_get_synthetic_symtab): Generate sym@plt on glink branch
2229	table entries, and __glink_PLTresolve on resolver stub.
2230	(ppc64_elf_build_stubs): Rename __glink sym to __glink_PLTresolve.
2231
22322008-05-12  Alan Modra  <amodra@bigpond.net.au>
2233
2234	PR 6443
2235	* elf32-ppc.c (MUST_BE_DYN_RELOC): Delete.
2236	(must_be_dyn_reloc): New function.
2237	(ppc_elf_check_relocs): Don't set DF_STATIC_TLS for tprel relocs
2238	in pies.
2239	(ppc_elf_tls_optimize): Optimise pies.
2240	(ppc_elf_relocate_section): Use a section symbol rather than no
2241	symbol if possible for LD->IE TLS sequence, but don't error if
2242	we must use no symbol.
2243	* elf64-ppc.c (MUST_BE_DYN_RELOC): As for elf32-ppc.c.
2244	(must_be_dyn_reloc): Likewise.
2245	(ppc64_elf_check_relocs): Likewise.
2246	(ppc64_elf_tls_optimize): Likewise.
2247	(ppc64_elf_relocate_section): Likewise.
2248
22492008-05-12  Alan Modra  <amodra@bigpond.net.au>
2250
2251	* elf32-spu.c (spu_elf_relocate_section): Rename is_ea to is_ea_sym.
2252
22532008-05-10  Paul Pluzhnikov  <ppluzhnikov@google.com>
2254
2255	* elfcore.h (elf_core_file_p): Warn about core truncation.
2256
22572008-05-07  Bob Wilson  <bob.wilson@acm.org>
2258
2259	* elf32-xtensa.c (xtensa_property_section_name): New.
2260	(xtensa_make_property_section): New.
2261	(xtensa_get_property_section): Make static.  Do not create a new
2262	section if it does not exist.
2263
22642008-05-08  Alan Modra  <amodra@bigpond.net.au>
2265
2266	* elf32-spu.c (spu_elf_special_sections): Add "._ea".
2267	(spu_elf_relocate_section): Handle relocations against symbols
2268	defined in ._ea specially.
2269
22702008-05-03  Daniel Jacobowitz  <dan@codesourcery.com>
2271
2272	* elf32-arm.c (elf32_arm_symbian_link_hash_table_create): Use
2273	ARRAY_SIZE.
2274	(elf32_arm_symbian_plt_sym_val): New.
2275	(elf_backend_plt_sym_val): Define.
2276
22772008-05-03  Alan Modra  <amodra@bigpond.net.au>
2278
2279	PR 2995, PR 6473
2280	* elf.c (rewrite_elf_program_header): Rather than clearing
2281	p_paddr_valid at end, don't set it in the first place.  Delete
2282	comment no longer relevant.  When not p_paddr_valid, don't set
2283	paddr from vaddr, and don't set p_vaddr_offset.
2284
22852008-05-01  Cary Coutant  <ccoutant@google.com>
2286
2287	* elf.c (bfd_elf_get_str_section): Fix memory leak caused by
2288	corrupt string table.
2289
22902008-05-01  Joel Brobecker  <brobecker@adacore.com>
2291
2292	* cache.c (cache_bread_1): Renames cache_bread.
2293	(cache_bread): New function.
2294
22952008-05-01  Alan Modra  <amodra@bigpond.net.au>
2296
2297	PR 2995, PR 6473
2298	* elf.c (_bfd_elf_make_section_from_shdr): Always set lma from p_paddr.
2299	(assign_file_positions_for_load_sections): Combine nested "if".
2300	(copy_elf_program_header): Don't set p_paddr_valid or p_vaddr_offset
2301	when all header p_paddr fields are zero.
2302
23032008-04-30  Edmar Wienskoski  <edmar@freescale.com>
2304
2305	* cpu-powerpc.c (bfd_powerpc_archs): Add e500mc entry.
2306
23072008-04-29  Daniel Jacobowitz  <dan@codesourcery.com>
2308
2309	* elf.c (_bfd_elf_get_dynamic_reloc_upper_bound)
2310	(_bfd_elf_canonicalize_dynamic_reloc): Find dynamic relocations
2311	even if they are not loaded.
2312	* elflink.c (_bfd_elf_init_2_index_sections): Set data_index_section
2313	first.
2314
23152008-04-25  Jay Foad  <jay.foad@gmail.com>
2316
2317	* reloc16.c (bfd_coff_reloc16_get_value): Add support for
2318	undefined weak symbols.
2319
23202008-04-25  Nick Clifton  <nickc@redhat.com>
2321
2322	* po/vi.po: Updated Vietnamese translation.
2323
23242008-04-23  Paolo Bonzini  <bonzini@gnu.org>
2325
2326	* aclocal.m4: Regenerate.
2327	* configure: Regenerate.
2328
23292008-04-21  Cary Coutant  <ccoutant@google.com>
2330
2331	* archive.c (_bfd_write_archive_contents): Fix incorrect use of
2332	ARFMAG.
2333
23342008-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2335
2336	* elfxx-mips.c (_bfd_mips_vxworks_adjust_dynamic_symbol): Don't
2337	set the value of undefined symbols in shared objects.
2338	(_bfd_mips_vxworks_finish_dynamic_symbol): Clear value for
2339	undefined symbols unless pointer equality is needed.
2340
23412008-04-18  Dennis Roberts  <dennis.roberts@sunquestinfo.com>
2342
2343	* aix5ppc-core.c: Define macros for the default architecture and
2344	machine for matching core files.
2345	(xcoff64_core_p): Set the architecture and machine to the default
2346	values defined in the macros mentioned above.
2347	* rs6000-core.c: Define macros to determine whether or not the
2348	core file header uses the core_dumpxx header format.
2349	(rs6000coff_core_p): Don't match core files that use the
2350	core_dumpxx header format.
2351
23522008-04-16  Pedro Alves  <pedro@codesourcery.com>
2353
2354	* config.bfd (i[3-7]86-*-dicos*, x86_64-*-dicos*): Add.
2355
23562008-04-16  David S. Miller  <davem@davemloft.net>
2357
2358	* reloc.c (BFD_RELOC_SPARC_GOTDATA_HIX22,
2359	BFD_RELOC_SPARC_GOTDATA_LOX10, BFD_RELOC_SPARC_GOTDATA_OP_HIX22,
2360	BFD_RELOC_SPARC_GOTDATA_OP_LOX10, BFD_RELOC_SPARC_GOTDATA_OP): New.
2361	* libbfd.h: Regnerate.
2362	* bfd-in2.h: Regenerate.
2363	* elfxx-sparc.c (_bfd_sparc_elf_howto_table): Add entries for
2364	GOTDATA relocations.
2365	(sparc_reloc_map): Likewise.
2366	(_bfd_sparc_elf_check_relocs): Handle R_SPARC_GOTDATA_* like
2367	R_SPARC_GOT*.
2368	(_bfd_sparc_elf_gc_sweep_hook): Likewise.
2369	(_bfd_sparc_elf_relocate_section): Transform R_SPARC_GOTDATA_HIX22,
2370	R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22, and
2371	R_SPARC_GOTDATA_OP_LOX10 into the equivalent R_SPARC_GOT* reloc.
2372	Simply ignore R_SPARC_GOTDATA_OP relocations.
2373
23742008-04-14  Aurelien Jarno  <aurelien@aurel32.net>
2375
2376	* configure.in: Link with the PIC version of libiberty on
2377	Linux/MIPS hosts.
2378	* configure: Regenerate.
2379
23802008-04-14  Edmar Wienskoski  <edmar@freescale.com>
2381
2382	* archures.c: Add bfd_mach_ppc_e500mc.
2383	* bfd-in2.h: Regenerate.
2384
23852008-04-08  Alan Modra  <amodra@bigpond.net.au>
2386
2387	* elf32-spu.c (spu_elf_build_stubs): Correct error message.
2388	(mark_functions_via_relocs): Remove premature init of symtab_hdr.
2389	(collect_overlays): Commment typo fix.
2390
23912008-04-08  Kees Cook  <kees@canonical.com>
2392
2393	* elflink.c (bfd_elf_size_dynamic_sections): Ignore GNU-stack note
2394	in EXEC_P bfds.
2395
23962008-04-08  Alan Modra  <amodra@bigpond.net.au>
2397
2398	* elf32-spu.c: Include libiberty.h.
2399	(struct spu_link_hash_table): Add local_stire, overlay_fixed, reserved,
2400	non_ovly_stub, spu_elf_load_ovl_mgr, spu_elf_open_overlay_script,
2401	spu_elf_relink, auto_overlay fields.
2402	(AUTO_OVERLAY, AUTO_RELINK, OVERLAY_RODATA): Define.
2403	(needs_ovl_stub): Flip test so that call to non-function warning
2404	is emitted during relocate_section rather than earlier.
2405	(spu_elf_check_vma): Stash --auto-overlay parameters, and clear
2406	auto_overlay if no section exceeds local store.
2407	(struct call_info): Add count, max_depth, is_pasted fields.
2408	(struct function_info): Add rodata, last_caller, call_count,
2409	depth, new visit flags.
2410	(insert_callee): Increment call count.
2411	(copy_callee): New function.
2412	(mark_functions_via_relocs): Investigate all reloc types to count
2413	possible function pointer stubs for --auto-overlay.  Track
2414	last_caller and increment function call_count.
2415	(pasted_function): Insert a "call" into call info for pasted section.
2416	(remove_cycles): Track max depth of calls.  Don't emit call graph
2417	pruning warning for --auto-overlay.
2418	(build_call_tree): Don't transfer_calls for --auto-overlay.
2419	Adjust remove_cycles call.
2420	(sort_calls, sort_lib, sort_bfds): New functions.
2421	(struct _mos_param, struct _uos_param, struct _cl_param): New.
2422	(mark_overlay_section, unmark_overlay_section): New functions.
2423	(collect_lib_sectios, auto_ovl_lib_functions): New functions.
2424	(collect_overlays, find_pasted_call): New functions.
2425	(sum_stack): Deal with is_pasted "calls".  Exit before printing
2426	when --auto-overlay.
2427	(spu_elf_auto_overlay): New function.
2428	(spu_elf_final_link): Call spu_elf_auto_overlay.
2429	* elf32-spu.h (spu_elf_check_vma): Update prototype.
2430
24312008-04-07  Alan Modra  <amodra@bigpond.net.au>
2432
2433	* elf32-spu.c (allocate_spuear_stubs): Ensure _SPUEAR_ symbol
2434	is defined in overlay section before creating a stub.
2435	(build_spuear_stubs): Likewise.
2436	(spu_elf_size_stubs, spu_elf_build_stubs): Adjust calls.
2437
24382008-04-02  Alan Modra  <amodra@bigpond.net.au>
2439
2440	* elf32-spu.c (insert_callee): Reorder call list so most recent
2441	call is always first.
2442	(interesting_section): Move.
2443	(mark_functions_via_relocs): Fold interesting_section and
2444	reloc_count tests in callers to here.  Simplify output section
2445	owner test.
2446	(discover_functions): Set "gaps" when no symbols and some
2447	"interesting_section".  Run pasted_function loop for no symbol
2448	bfds.
2449	(for_each_node, transfer_calls): New functions.
2450	(mark_non_root): Adjust to suit for_each_node.
2451	(call_graph_traverse): Likewise.  Fix memory leak.  Rename to..
2452	(remove_cycles): ..this.
2453	(build_call_tree): Use for_each_node and transfer_calls.
2454	(struct _sum_stack_param): New.
2455	(sum_stack): Adjust to suit for_each_node.  Return error on
2456	malloc failure.  Move code to print root node cumulative stack from..
2457	(spu_elf_stack_analysis): ..here.  Use for_each_node.
2458
24592008-03-31  Cary Coutant  <ccoutant@google.com>
2460
2461	PR 6006
2462	* archive.c (_bfd_slurp_extended_name_table): Change
2463	ARFMAG[0] to ARFMAG[1].
2464	(_bfd_construct_extended_name_table): Likewise.
2465
24662008-03-31  Daniel Jacobowitz  <dan@codesourcery.com>
2467
2468	* elfxx-mips.c (mips_elf_record_got_page_entry): Update comment.
2469	(_bfd_mips_elf_check_relocs): Update comments.  Always call
2470	mips_elf_record_got_page_entry for R_MIPS_GOT_PAGE.
2471
24722008-03-27  Cary Coutant  <ccoutant@google.com>
2473
2474	Add support for thin archives.
2475	* archive.c (_bfd_find_nested_archive): New function.
2476	(get_extended_arelt_filename): Add origin parameter.
2477	(_bfd_generic_read_ar_hdr_mag): Deal with extended name
2478	combined with a file offset.
2479	(append_relative_path): New function.
2480	(_bfd_get_elt_at_filepos): Deal with external members and
2481	nested archives.
2482	(bfd_generic_openr_next_archived_file): Thin archives.
2483	(bfd_generic_archive_p): Recognize new magic string.
2484	(adjust_relative_path): New function.
2485	(_bfd_construct_extended_name_table): Construct extended
2486	names for thin archive members.
2487	(_bfd_write_archive_contents): Emit new magic string, skip
2488	copying files for thin archives.
2489	* bfd-in.h (bfd_is_thin_archive): New macro.
2490	* bfd.c (struct bfd): New fields for thin archives.
2491	* libbfd-in.h (struct areltdata): New field for thin archives.
2492	* opncls.c (bfd_close): Delete BFDs for nested archives.
2493
24942008-03-25  Bernd Schmidt  <bernd.schmidt@analog.com>
2495
2496	* elf32-bfin.c (bfin_final_link_relocate): New function, wrapper around
2497	_bfd_final_link_relocate that also handles R_pcrel24 relocs.
2498	(bfinfdpic_relocate_section, bfin_relocate_section): Use it.
2499
25002008-03-25  Nathan Sidwell  <nathan@codesourcery.com>
2501
2502	* elf32-arm.c (elf32_arm_final_link_relocate): Skip dynamic relocs
2503	in vxworks tls_vars sections.
2504	(allocate_dynrelocs, elf32_arm_size_dynamic_sections): Likewise.
2505	* elf32-i386.c (allocate_dynrelocs,
2506	elf_i386_size_dynamic_sections, elf_i386_relocate_section): Likewise.
2507	* elf32-ppc.c (allocate_dynrelocs, ppc_elf_size_dynamic_sections,
2508	ppc_elf_relocate_section): Likewise.
2509	* elf32-sh.c (allocate_dynrelocs, sh_elf_size_dynamic_sections,
2510	sh_elf_relocate_section): Likewise.
2511	* elfxx-sparc.c (allocate_dynrelocs,
2512	_bfd_sparc_elf_size_dynamic_sections,
2513	_bfd_sparc_elf_relocate_section): Likewise.
2514
25152008-03-21  Adam Nemet  <anemet@caviumnetworks.com>
2516
2517	* elf.c (_bfd_elf_print_private_bfd_data): Use bfd_fprintf_vma to
2518	print the values from the dynamic section.
2519
25202008-03-20  Richard Sandiford  <rsandifo@nildram.co.uk>
2521
2522	* elfxx-mips.c (MIPS_ELF_GNU_GOT1_MASK): New macro.
2523	(_bfd_mips_elf_finish_dynamic_sections): Use it instead of 0x80000000.
2524
25252008-03-20  Alan Modra  <amodra@bigpond.net.au>
2526
2527	* elf32-spu.c (spu_elf_create_sections): Remove output_bfd parameter.
2528	(spu_elf_find_overlays, spu_elf_size_stubs): Likewise
2529	(process_stubs, discover_functions, build_call_tree): Likewise.
2530	(spu_elf_stack_analysis): Likewise.
2531	(spu_elf_check_vma): Likewise.  Move.
2532	(struct call_info): Make "is_tail" a bitfield.
2533	(insert_callee): Clear fun->start and set fun->is_func if we find
2534	a non-tail call.
2535	* elf32-spu.h (spu_elf_create_sections): Update prototype.
2536	(spu_elf_find_overlays, spu_elf_size_stubs, spu_elf_check_vma): Ditto.
2537
25382008-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2539
2540	* aclocal.m4: Regenerate.
2541	* configure: Likewise.
2542	* Makefile.in: Likewise.
2543
25442008-03-16  H.J. Lu  <hongjiu.lu@intel.com>
2545
2546	PR ld/5789
2547	PR ld/5943
2548	* elf32-i386.c  (elf_i386_relocate_section): Issue an error
2549	for R_386_GOTOFF relocaton against undefined hidden/internal
2550	symbols when building a shared object.
2551
2552	* elf64-x86-64.c (elf64_x86_64_relocate_section): Issue an
2553	error for R_X86_64_PC8/R_X86_64_PC16/R_X86_64_PC32
2554	relocaton against undefined hidden/internal symbols when
2555	building a shared object.
2556	(elf64_x86_64_finish_dynamic_symbol): Return FALSE when symbol
2557	is referenced locally, but isn't defined in a regular file.
2558
25592008-03-15  H.J. Lu  <hongjiu.lu@intel.com>
2560
2561	* bfd-in.h (BFD_NO_FLAGS, HAS_RELOC, EXEC_P, HAS_LINENO,
2562	HAS_DEBUG, HAS_SYMS, HAS_LOCALS, DYNAMIC, WP_TEXT, D_PAGED,
2563	BFD_IS_RELAXABLE, BFD_TRADITIONAL_FORMAT, BFD_IN_MEMORY,
2564	HAS_LOAD_PAGE, BFD_LINKER_CREATED): Moved to ...
2565	* bfd.c: Here.
2566
2567	* bfd.c (bfd): Change cacheable, target_defaulted, opened_once,
2568	mtime_set, no_export, output_has_begun and has_armap to bit
2569	field.
2570
2571	* bfd-in2.h: Regenerated.
2572
25732008-03-14  Daniel Jacobowitz  <dan@codesourcery.com>
2574
2575	* cache.c (close_one): Remove mtime hack.
2576
25772008-03-14  H.J. Lu  <hongjiu.lu@intel.com>
2578
2579	PR ld/5913
2580	* elfxx-ia64.c (elfNN_ia64_tprel_base): Remove BFD_ASSERT.
2581	(elfNN_ia64_dtprel_base): Likewise.
2582	(elfNN_ia64_relocate_section): Go to missing_tls_sec if
2583	tls_sec is NULL before calling elfNN_ia64_tprel_base or
2584	elfNN_ia64_dtprel_base.  Report unsupported TLS relocations.
2585
25862008-03-14  Alan Modra  <amodra@bigpond.net.au>
2587
2588	* elf32-spu.c (process_stubs, spu_elf_relocate_section): Move
2589	common code to..
2590	(maybe_needs_stub): ..here, a new function that also omits stubs
2591	for .eh_frame, and..
2592	(needs_ovl_stub): ..here.  Create stubs for labels in code section
2593	referenced by switch jump table.
2594	(spu_elf_find_overlays): Set htab->ovly_load and htab->ovly_return.
2595	(enum _insn_type): Delete.
2596	(enum _stub_type): New.
2597	(count_stub, build_stub): Adjust.
2598	(allocate_spuear_stubs, build_spuear_stubs): Adjust.
2599
26002008-03-13  Alan Modra  <amodra@bigpond.net.au>
2601
2602	* elf.c (_bfd_elf_make_section_from_shdr): Remove unnecessary cast.
2603	(_bfd_elf_assign_file_position_for_section): Simplify align.
2604	(_bfd_elf_init_reloc_shdr): Ensure shift expression wide enough
2605	for sh_addralign.
2606	(elf_fake_sections, swap_out_syms): Likewise.
2607	* elflink.c (bfd_elf_final_link): Likewise.
2608
26092008-03-13  Alan Modra  <amodra@bigpond.net.au>
2610
2611	* Makefile.am: Run "make dep-am".
2612	* Makefile.in: Regenerate.
2613	* po/SRC-POTFILES.in: Regenerate.
2614
26152008-03-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2616
2617	From Jie Zhang <jie.zhang@analog.com>
2618	* elf32-bfin.c (struct bfinfdpic_relocs_info): Make got17m4,
2619	gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4, fdgoffhilo,
2620	gotoff, call and sym not bitfields.
2621	(bfinfdpic_gc_sweep_hook): New function; update the relocation
2622	information for the relocations of the section being removed.
2623	(bfinfdpic_check_relocs): Accumulate the number of relocations
2624	which set got17m4, gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4,
2625	fdgoffhilo, gotoff, call and sym fields.
2626	(elf_backend_gc_sweep_hook): Redefine for FD-PIC.
2627
26282008-03-12  Alan Modra  <amodra@bigpond.net.au>
2629
2630	PR 5900
2631	* elf-bfd.h: Include elf/internal.h after elf/external.h.
2632	* elfcode.h (elf_swap_symbol_in): Map reserved shndx range.
2633	(elf_swap_symbol_out): Adjust SHN_XINDEX test.
2634	(elf_swap_ehdr_out): Mask SHN_LORESERVE and SHN_XINDEX to values
2635	seen in external structs.
2636	(valid_section_index_p): Delete.
2637	(elf_object_p): Don't increment section numbers over reserved range.
2638	Simplify test for valid sh_link, sh_info and e_shstrndx fields.
2639	(elf_write_shdrs_and_ehdr): Mask SHN_LORESERVE and SHN_XINDEX to values
2640	seen in external structs.  Don't increment section numbers over
2641	reserved range.
2642	* elf.c (bfd_elf_sym_name): Remove redundant tests on st_shndx.
2643	(bfd_section_from_shdr): Likewise.
2644	(group_signature): Range check before accessing elf_elfsections.
2645	(_bfd_elf_setup_sections): Likewise.
2646	(bfd_section_from_shdr): Likewise.
2647	(bfd_section_from_shdr): Don't increment section number over
2648	reserved sections.
2649	(assign_file_positions_for_non_load_sections): Likewise.
2650	(assign_file_positions_except_relocs): Likewise.
2651	(_bfd_elf_write_object_contents): Likewise.
2652	(assign_section_numbers): Likewise.  Adjust for changed SHN_*.
2653	(prep_headers): Delete unused variable.
2654	* elflink.c (bfd_elf_link_record_local_dynamic_symbol): Adjust
2655	for changed SHN_* values.
2656	(check_dynsym, elf_link_input_bfd): Likewise.
2657	(bfd_elf_final_link): Likewise.  Don't skip over reserved section
2658	range.
2659	(elf_fixup_link_order): Check that sh_link field is valid.
2660	* elf-hppa.h (elf_hppa_add_symbol_hook): Make "index" unsigned.
2661	* elf32-arm.c (elf32_arm_gc_mark_extra_sections): Range check before
2662	accesssing elf_elfsections.
2663	* elf32-avr.c (elf32_avr_size_stubs): Likewise.
2664	* elf32-hppa.c (elf32_hppa_size_stubs): Likewise.
2665	* elf32-m68hc1x.c (elf32_m68hc11_size_stubs): Likewise.
2666	* elf64-hppa.c (elf64_hppa_check_relocs): Adjust for changed
2667	SHN_* defines.  Test for SHN_BAD return from
2668	_bfd_elf_section_from_bfd_section
2669
26702008-03-12  Alan Modra  <amodra@bigpond.net.au>
2671
2672	* elf-bfd.h (_bfd_elf_section_from_bfd_section): Update prototype.
2673	* elf.c (_bfd_elf_section_from_bfd_section): Return unsigned int,
2674	SHN_BAD on error.
2675	(_bfd_elf_print_private_bfd_data): Test for SHN_BAD result from
2676	_bfd_elf_section_from_bfd_section, not -1.
2677	(swap_out_syms): Likewise.
2678	* elflink.c (elf_link_add_object_symbols): Likewise.
2679	(bfd_elf_get_bfd_needed_list): Likewise.
2680	(bfd_elf_match_symbols_in_sections): Likewise.
2681	(elf_link_add_object_symbols): Don't bother testing for symbols
2682	using normal sections before calling bfd_section_from_elf_index.
2683	(elf_link_input_bfd, bfd_elf_final_link): Likewise.
2684	(bfd_elf_reloc_symbol_deleted_p): Likewise.
2685	* elfcode.h (elf_slurp_symbol_table): Likewise.
2686	* elf32-spu.c (get_sym_h): Likewise.
2687	* elf32-xtensa.c (get_elf_r_symndx_section): Likewise.
2688	* elf64-ppc.c (opd_entry_value, get_sym_h, ppc64_elf_edit_toc): Ditto.
2689	* elf64-sh64.c (sh_elf64_get_relocated_section_contents): Likewise.
2690
26912008-03-11  Alan Modra  <amodra@bigpond.net.au>
2692
2693	* elf32-spu.c (spu_elf_relocate_section): Test identical conditions
2694	to those in process_stubs for overlay symbols.
2695
26962008-03-09  Paul Brook  <paul@codesourcery.com>
2697
2698	* elf32-arm.c (elf32_arm_merge_eabi_attributes): Handle new
2699	Tag_VFP_arch values.
2700
27012008-03-08  Paul Brook  <paul@codesourcery.com>
2702
2703	* elf32-arm.c (insert_thumb_branch): Rewrite.
2704	(elf32_thumb_to_arm_stub): Use new insert_thumb_branch.
2705
27062008-03-07  Paul Brook  <paul@codesourcery.com>
2707
2708	* elf32-arm.c (elf32_arm_howto_table_1): Fix bitmasks for MOVW and
2709	MOVT relocations.
2710	(elf32_arm_final_link_relocate): Fix off by one MOVW/MOVT sign
2711	extension.
2712	(elf32_arm_relocate_section): Handle MOVW and MOVT
2713	relocations.  Improve safety check for other weird relocations.
2714	(elf32_arm_check_relocs): Only set h->needs_plt for branch/call
2715	relocations.
2716
27172008-03-03  Bob Wilson  <bob.wilson@acm.org>
2718
2719	* xtensa-isa.c (xtensa_isa_num_pipe_stages): Make max_stage static and
2720	only compute its value once.
2721
27222008-03-03  Alan Modra  <amodra@bigpond.net.au>
2723
2724	* elf32-spu.c (struct got_entry): Add "addend" field.
2725	(count_stub, build_stub): Use a new stub if relocation addend
2726	differs from existing stubs for this symbol.
2727	(process_stubs): Deal with addends.
2728	(spu_elf_relocate_section, spu_elf_output_symbol_hook): Likewise.
2729
27302008-03-02  H.J. Lu  <hongjiu.lu@intel.com>
2731
2732	PR ld/5789
2733	* elflink.c (_bfd_elf_symbol_refs_local_p): Always return true
2734	for hidden and local symbols.
2735
27362008-03-03  Alan Modra  <amodra@bigpond.net.au>
2737
2738	* elf32-ppc.c (allocate_dynrelocs): Discard relocs on
2739	undefined symbols with internal or hidden visibility.
2740	(ppc_elf_relocate_section): Likewise.  Use SYMBOL_CALLS_LOCAL
2741	rather than SYMBOL_REFERENCES_LOCAL on branches.  Don't
2742	return immediately on dynamic reloc error.
2743
27442008-03-01  Alan Modra  <amodra@bigpond.net.au>
2745
2746	* elf64-ppc.c (build_plt_stub): Add relocs on plt call stubs
2747	if emitrelocations.
2748	(get_relocs): New function, split out from..
2749	(ppc_build_one_stub): ..here.  Add relocs on plt_branch stubs if
2750	emitrelocations.  Remove indx temp.
2751	(ppc_size_one_stub): Count new stub relocs.
2752	(ppc64_elf_size_stubs): Count new glink reloc.
2753	(ppc64_elf_build_stubs): Emit glink reloc if emitrelocations.
2754	(ppc64_elf_finish_dynamic_sections): Output glink relocs.
2755	* elf32-ppc.c (ppc_elf_finish_dynamic_sections): Describe non-pic
2756	glink code.
2757
27582008-02-28  Alan Modra  <amodra@bigpond.net.au>
2759
2760	* elf32-spu.c (mark_functions_via_relocs): Don't assume that
2761	the "->start" pointer reaches to function origin, so that we
2762	can handle functions split over more than two sections.
2763	(build_call_tree): Likewise.
2764	(pasted_function): Don't attempt to set fun->start back to the
2765	function origin, just go back one section.
2766
27672008-02-27  Catherine Moore  <clm@codesourcery.com>
2768
2769	* elf.c ( _bfd_elf_print_private_bfd_data): Call
2770	elf_backend_get_target_dtag if defined.
2771	* elf32-mips.c (elf_backend_get_target_dtag): Define.
2772	* elf64-mips.c: Likewise.
2773	* elfn32-mips.c: Likewise.
2774	* elfxx-mips.c (_bfd_mips_elf_get_target_dtag): New.
2775	* elfxx-mips.h (_bfd_mips_elf_get_target_dtag): Declare.
2776	* elf-bfd.h (elf_backend_get_target_dtag): Add prototype.
2777	* elfxx-target.h (elf_backend_get_target_dtag): Add default.
2778	(elf_backend_data): Add elf_backend_get_target_dtag.
2779
27802008-02-26  Alan Modra  <amodra@bigpond.net.au>
2781
2782	* elf32-ppc.c (ppc_elf_check_relocs): Set pointer_equality_needed
2783	for R_PPC_REL32 syms.  Don't set non_got_ref on branch reloc syms,
2784	and assume branch relocs are not dynamic when non-shared.
2785	(readonly_dynrelocs): New function, split out from..
2786	(maybe_set_textrel): ..here, renamed from old readonly_dynrelocs.
2787	(ppc_elf_adjust_dynamic_symbol): For symbols generating plt entries,
2788	clear non_got_ref..
2789	(allocate_dynrelocs): ..and don't set u.def for undefined weak.
2790	Do allow dynamic relocs on undefined symbols.
2791	(ppc_elf_adjust_dynamic_symbol): Use readonly_dynrelocs.
2792	(ppc_elf_relocate_section): Mirror dynamic reloc changes in
2793	check_relocs.
2794	(ppc_elf_finish_dynamic_symbol): Don't give a warning on weak
2795	plt symbols needing pointer_equality_needed.
2796
27972008-02-23  Alan Modra  <amodra@bigpond.net.au>
2798
2799	* elf32-ppc.c (ppc_elf_check_relocs): Revert non_got_ref change.
2800
28012008-02-23  Alan Modra  <amodra@bigpond.net.au>
2802
2803	* elf32-ppc.c (ppc_elf_copy_indirect_symbol): Copy
2804	pointer_equality_needed.
2805	(ppc_elf_check_relocs): Split out non-branch relocs from others
2806	that might emit dynamic relocs.  Set pointer_equality_needed
2807	for their symbols.  Don't set non_got_ref on branch reloc symbols.
2808	(ppc_elf_hash_symbol): New function.
2809	(elf_backend_hash_symbol): Define.
2810	(ppc_elf_finish_dynamic_symbol): Handle pointer_equality_needed.
2811	Error if pointer_equality_needed on weak plt symbol.
2812
28132008-02-22  H.J. Lu  <hongjiu.lu@intel.com>
2814
2815	PR ld/5788
2816	* elflink.c (elf_create_symbuf): Correct buffer size and
2817	position.
2818
28192008-02-22  Nick Clifton  <nickc@redhat.com>
2820
2821	PR 868
2822	* dwarf2.c: Revert previous patch.  All of the allocate memory is
2823	on an obstack which will be freed at some other time.
2824
28252008-02-20  Nick Clifton  <nickc@redhat.com>
2826
2827	PR 868
2828	* libbfd.c (bfd_realloc_or_free): New function.  Performs like
2829	bfd_realloc, but if the (re)allocation fails, the pointer is
2830	freed.
2831	* libbfd-in.h: Prototype.
2832	* libbfd.h: Regenerate.
2833	* bfdio.c (bfd_bwrite): Use the new function.
2834	(bfd_seek): Likewise.
2835	* bfdwin.c:(bfd_get_file_window): Likewise.
2836	* elf-strtab.c (_bfd_elf_strtab_add): Likewise.
2837	* elf32-ppc.c (ppc_elf_relax_section): Likewise.
2838	* elf32-xtensa.c (vsprintf_msg): Likewise.
2839	* mach-o.c (bfd_mach_o_core_fetch_environment): Likewise.
2840	* stabs.c (_bfd_link_seciton_stabs): Likewise.
2841	* vms-misc.c (_bfd_vms_get_record): Likewise.
2842	* vms-tir.c (check_section): Likewise.
2843	* vms.c (vms_new_section_hook): Likewise.
2844	* elf32-arm.c (elf32_arm_section_map_add): Check that the
2845	allocation of sec_data->map succeeded before using it.
2846	* elflink.c (elf_link_output_sym): Do not overwrite finfo->
2847	symshndxbuf until it is known that the reallocation succeeded.
2848
28492008-02-20  Diogo de Carvalho Kraemer  <diogo@kraemer.eng.br>
2850	    Nick Clifton  <nickc@redhat.com>
2851
2852	PR 868
2853	* dwarf2.c (read_abbrevs): Free the abbreviation table if we run
2854	out of memory.
2855	(decode_line_info): Free the line_info_table before returning a
2856	failure result.
2857	(_bfd_dwarf2_cleanup_debug_info): Free the abbreviation table.
2858	Free the line table.  Free the function table.  Free the variable
2859	table.
2860
28612008-02-17  Mark Kettenis  <kettenis@gnu.org>
2862
2863	* elf.c (swap_out_syms): Avoid preprocessing directive within
2864	macro arg.
2865
28662008-02-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
2867
2868	* elf.c (assign_file_positions_for_load_sections): Set the type of
2869	PT_NOTE sections to SHT_NOTE.
2870
28712008-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
2872
2873	* simple.c (bfd_simple_get_relocated_section_contents): Set
2874	link_info.output_bfd.
2875
28762008-02-16  Nathan Sidwell  <nathan@codesourcery.com>
2877
2878	* dwarf2.c (find_line): Don't trust debug information after an
2879	unparseable compilation unit.
2880
28812008-02-15  Alan Modra  <amodra@bigpond.net.au>
2882
2883	PR 5765
2884	* section.c (SEC_LINK_DUPLICATES): Correct.  Renumber following flags.
2885	* bfd-in2.h: Regenerate.
2886
28872008-02-15  Alan Modra  <amodra@bigpond.net.au>
2888
2889	* elf-bfd.h (enum elf_object_id): Add HPPA_ELF_TDATA.
2890	* elf.c (bfd_elf_allocate_object): Don't check for already allocated
2891	tdata.
2892	* elf32-hppa.c (elf32_hppa_mkobject): New function.
2893	(bfd_elf32_mkobject): Define.
2894	* elf32-ppc.c (is_ppc_elf_target): Delete.  Replace all uses with..
2895	(is_ppc_elf): ..this new macro.
2896	* elf64-ppc.c (is_ppc64_elf_target): Delete.  Replace all uses with..
2897	(is_ppc64_elf): ..this new macro.
2898
28992008-02-15  Alan Modra  <amodra@bigpond.net.au>
2900
2901	* elflink.c: Replace all accesses to hash->creator field with
2902	output_bfd->xvec.
2903	* cofflink.c: Likewise.
2904	* coff-h8300.c: Likewise.
2905	* ecoff.c: Likewise.
2906	* elf32-m68hc1x.c: Likewise.
2907	* elf32-ppc.c: Likewise.
2908	* elf64-alpha.c: Likewise.
2909	* elf64-ppc.c: Likewise.
2910	* elf64-sparc.c: Likewise.
2911	* elfxx-mips.c: Likewise.
2912	* i386linux.c: Likewise.
2913	* m68klinux.c: Likewise.
2914	* sparclinux.c: Likewise.
2915	* sunos.c: Likewise.
2916	* xcofflink.c: Likewise.
2917	* linker.c: Likewise.
2918	(_bfd_link_hash_table_init): Don't store creator.
2919
29202008-02-14  Peter Jones  <pjones@redhat.com>
2921
2922	* efi-rtdrv-ia32.c: New file.
2923	* efi-bsdrv-ia32.c: New file.
2924	* efi-rtdrv-ia64.c: New file.
2925	* efi-bsdrv-ia64.c: New file.
2926	* efi-rtdrv-x86_64.c: New file.
2927	* efi-bsdrv-x86_64.c: New file.
2928	* peicode.h (pe_bfd_object_p): Add support for boot service and
2929	runtime service drivers.
2930	* libpei.h: Add macros for EFI formats, and rename the efi application
2931	format macros to disambiguate.
2932	* targets.c: Add bfd_target _vec externs.
2933	(_bfd_tar): Add EFI _vec entries.
2934	* config.bfd: Add EFI vectors into the selection routines.
2935	* configure.in: add EFI _vec entries.
2936	* configure: Regenerate.
2937	* Makefile.am: Add EFI files.
2938	* Makefile.in: Regenerate.
2939
29402008-02-14  Nathan Sidwell  <nathan@codesourcery.com>
2941
2942	* dwarf1.c (struct dwarf1_debug): Add syms member.
2943	(alloc_dwarf1_unit, alloc_dwarf1_func): Check for out of memory.
2944	(parse_line_table, _bfd_dwarf1_find_nearest_line): Relocate
2945	section contents, check for out of memory.
2946
2947	* dwarf1.c (struct dwarf1_debug): Change data pointers to bfd_byte.
2948	(parse_die): Change data pointers to bfd_byte.
2949	(parse_line_table, parse_functions_in_unit): Likewise.
2950
29512008-02-14  Alan Modra  <amodra@bigpond.net.au>
2952
2953	* elflink.c (compute_bucket_count): Warning fixes.
2954
29552008-02-12  DJ Delorie  <dj@redhat.com>
2956
2957	* elf32-iq2000.c (iq2000_elf_relocate_section): Adjust addend of
2958	relocation pointing to local symbol in merged section.
2959
2960	* elf32-iq2000.c (iq2000_elf_relocate_offset16): New.
2961	(iq2000_elf_relocate_section): Call it.
2962
29632008-02-12  Nick Clifton  <nickc@redhat.com>
2964
2965	PR ld/5692
2966	* elf-bfd.h (enum elf_object_id): New enum, used to identify
2967	target specific extensions to the elf_obj_tdata structure.
2968	(struct elf_obj_tdata): New field 'object_id'.
2969	(elf_object_id, elf_program_header_size, elf_symtab_hdr): New
2970	macros for accessing fields in the elf_obj_tdata structure.
2971	(bfd_elf_mkobject): Rename to bfd_elf_make_generic_object.
2972	(bfd_elf_allocate_object): New function.
2973	* elf.c (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object
2974	and implement by calling bfd_elf_allocate_object.
2975	(bfd_elf_allocate_object): New function: Allocates an
2976	elf_obj_tdata structure, possibly with a target specific
2977	extension.
2978	* elfxx-target.h (bfd_elfNN_mkobject): Use
2979	bfd_elf_make_generic_object as the default value.
2980	* elf32-arm.c (elf32_arm_obj_tdata): Rename to elf_arm_obj_tdata
2981	for consistency with other, similar structures.
2982	(is_arm_elf): New macro.  Checks a BFD to make sure that is an ARM
2983	ELF bfd.
2984	(elf32_arm_mkobject): Call bfd_elf_allocate_object.
2985	(bfd_elf32_arm_vfp11_erratum_scan): Use is_arm_elf macro to check
2986	the bfd being processed.
2987	(bfd_elf32_arm_vfp11_fix_veneer_locations): Likewise.
2988	(bfd_elf32_arm_set_target_relocs): Likewise.
2989	(bfd_elf32_arm_final_link_relocate): Likewise.
2990	(bfd_elf32_arm_copy_private_bfd_data): Likewise.
2991	(bfd_elf32_arm_merge_eabi_attributes): Likewise.
2992	(bfd_elf32_arm_merge_private_bfd_data): Likewise.
2993	(bfd_elf32_arm_check_relocs): Likewise.
2994	(bfd_elf32_arm_gc_mark_extra_sections): Likewise.
2995	(bfd_elf32_arm_size_dynamic_sections): Likewise.
2996	(bfd_elf32_arm_process_before_allocation): Use elf_symtab_hdr.
2997	(bfd_elf32_arm_init_maps): Likewise.
2998	(bfd_elf32_arm_final_link_relocate): Likewise.
2999	(bfd_elf32_arm_relocate_section): Likewise.
3000	(bfd_elf32_arm_gc_sweep_hook): Likewise.
3001	(bfd_elf32_arm_check_relocs): Likewise.
3002	(bfd_elf32_arm_size_dynamic_sections): Likewise.
3003	* elf32-i386.c (elf_i386_mkobject): Call bfd_elf_allocate_object.
3004	(is_i386_elf): New macro.  Checks a BFD to make sure that is an x86
3005	ELF bfd.
3006	(elf_i386_check_relocs): Use is_i386_elf macro to check    the bfd
3007	being processed.
3008	(elf_i386_size_dynamic_sections): Likewise.
3009	(elf_i386_relocate_section): Likewise.
3010	(elf_i386_check_relocs): Use elf_symtab_hdr.
3011	(elf_i386_gc_sweep_hook): Likewise.
3012	(elf_i386_size_dynamic_sections): Likewise.
3013	(elf_i386_relocate_section): Likewise.
3014	* elf32-ppc.c (ppc_elf_mkobject): Call bfd_elf_allocate_object.
3015	(elf_create_pointer_linker_section): Use is_ppc_elf_target to
3016	verify that the bfd before accessing target specific fields.
3017	(ppc_elf_check_relocs): Likewise.
3018	(elf_finish_pointer_linker_section): Likewise.
3019	(elf_create_pointer_linker_section): Use elf_symtab_hdr.
3020	(ppc_elf_check_relocs): Likewise.
3021	(ppc_elf_gc_sweep_hook): Likewise.
3022	(ppc_elf_tls_optimize): Likewise.
3023	(ppc_elf_size_dynamic_sections): Likewise.
3024	(ppc_elf_relax_section): Likewise.
3025	(ppc_elf_relocate_section): Likewise.
3026	* elf32-s390.c (struct elf_s390_obj_tdata): Add a comment
3027	reminding programmers to keep this structure in sync with the one
3028	defined in elf64-s390.c.
3029	(elf_s390_mkobject): Call bfd_elf_allocate_object.
3030	(is_s390_elf): New macro.  Checks a BFD to make sure that is an s390
3031	ELF bfd.
3032	(elf_s390_check_relocs): Use is_s390_elf macro to check    the bfd
3033	being processed.
3034	(elf_s390_size_dynamic_sections): Likewise.
3035	(elf_s390_relocate_section): Likewise.
3036	(elf_s390_check_relocs): Use elf_symtab_hdr.
3037	(elf_s390_gc_sweep_hook): Likewise.
3038	(elf_s390_size_dynamic_sections): Likewise.
3039	(elf_s390_relocate_section): Likewise.
3040	* elf32-sh.c (sh_elf_mkobject): Call bfd_elf_allocate_object.
3041	(is_sh_elf): New macro.  Checks a BFD to make sure that is an SH
3042	ELF bfd.
3043	(sh_elf_size_dynamic_sections): Use is_sh_elf macro to check the
3044	bfd being processed.
3045	(sh_elf_relocate_section): Likewise.
3046	(sh_elf_check_relocs): Likewise.
3047	(sh_elf_copy_private_data): Likewise.
3048	(sh_elf_relax_section): Use elf_symtab_hdr.
3049	(sh_elf_size_dynamic_sections): Likewise.
3050	(sh_elf_relocate_section): Likewise.
3051	(sh_elf_get_relocated_section_contents): Likewise.
3052	(sh_elf_gc_sweep_hook): Likewise.
3053	(sh_elf_check_relocs): Likewise.
3054	* elf64-alpha.c (elf64_alpha_mkobject): Call bfd_elf_allocate_object.
3055	(is_alpha_elf): New macro.  Checks a BFD to make sure that is an
3056	Alpha ELF bfd.
3057	(elf64_alpha_create_got_section): Use is_alpha_elf macro to check
3058	the bfd being processed.
3059	(elf64_alpha_create_dynamic_section): Likewise.
3060	(elf64_alpha_check_relocs): Likewise.
3061	(elf64_alpha_size_got_sections): Likewise.
3062	(elf64_alpha_relax_section): Likewise.
3063	(elf64_alpha_relocate_section): Likewise.
3064	(elf64_alpha_final_link): Likewise.
3065	(elf64_alpha_check_relocs): Use elf_symtab_hdr.
3066	(elf64_alpha_relax_section): Likewise.
3067	(elf64_alpha_relocate_section_r): Likewise.
3068	(elf64_alpha_relocate_section): Likewise.
3069	* elf64-ppc.c (ppc64_elf_mkobject): Call bfd_elf_allocate_object.
3070	(ppc64_elf_check_relocs): Use is_ppc64_elf_target to check the bfd
3071	being processed.
3072	(opd_entry_value): Likewise.
3073	(allocate_dynrelocs): Likewise.
3074	(ppc64_elf_relocate_section): Likewise.
3075	(ppc64_elf_check_relocs): Use elf_symtab_hdr.
3076	(opd_entry_value): Likewise.
3077	(ppc64_elf_gc_sweep_hook): Likewise.
3078	(get_sym_h): Likewise.
3079	(ppc64_elf_edit_opd): Likewise.
3080	(ppc64_elf_tls_optimize): Likewise.
3081	(ppc64_elf_edit_toc): Likewise.
3082	(ppc64_elf_size_dynamic_sections): Likewise.
3083	(toc_adjusting_stub_needed): Likewise.
3084	(ppc64_elf_size_stubs): Likewise.
3085	(ppc64_elf_relocate_section): Likewise.
3086	* elf64-s390.c (struct elf_s390_obj_tdata): Add a comment
3087	reminding programmers to keep this structure in sync with the one
3088	defined in elf32-s390.c.
3089	(elf_s390_mkobject): Call bfd_elf_allocate_object.
3090	(is_s390_elf): New macro.  Checks a BFD to make sure that is an s390
3091	ELF bfd.
3092	(elf_s390_check_relocs): Use is_s390_elf macro to check    the bfd
3093	being processed.
3094	(elf_s390_size_dynamic_sections): Likewise.
3095	(elf_s390_relocate_section): Likewise.
3096	(elf_s390_check_relocs): Use elf_symtab_hdr.
3097	(elf_s390_gc_sweep_hook): Likewise.
3098	(elf_s390_size_dynamic_sections): Likewise.
3099	(elf_s390_relocate_section): Likewise.
3100	* elf64-x86_64.c (elf64_x86_64_mkobject): Call bfd_elf_allocate_object.
3101	(is_x86_64_elf): New macro.  Checks a BFD to make sure that is an
3102	x86_64 ELF bfd.
3103	(elf64_x86_64_check_relocs): Use is_x86_64_elf macro to check the bfd
3104	being processed.
3105	(elf64_x86_64_size_dynamic_sections): Likewise.
3106	(elf64_x86_64_relocate_section): Likewise.
3107	(elf64_x86_64_check_relocs): Use elf_symtab_hdr.
3108	(elf64_x86_64_gc_sweep_hook): Likewise.
3109	(elf64_x86_64_size_dynamic_sections): Likewise.
3110	(elf64_x86_64_relocate_section): Likewise.
3111	* elfxx-sparc.c (_bfd_sparc_elf_mkobject): Call bfd_elf_allocate_object.
3112	(is_sparc_elf): New macro.  Checks a BFD to make sure that is a Sparc
3113	ELF bfd.
3114	(_bfd_sparc_elf_check_relocs): Use is_sparc_elf macro to check the
3115	bfd being processed.
3116	(_bfd_sparc_elf_gc_sweep_hook): Likewise.
3117	(_bfd_sparc_elf_size_dynamic_sections): Likewise.
3118	(_bfd_sparc_elf_check_relocs): Use elf_symtab_hdr.
3119	(_bfd_sparc_elf_gc_sweep_hook): Likewise.
3120	(_bfd_sparc_elf_size_dynamic_sections): Likewise.
3121	(_bfd_sparc_elf_relocate_section): Likewise.
3122
31232008-02-12  Alan Modra  <amodra@bigpond.net.au>
3124
3125	PR 5303, 5755
3126	* arange-set.c: Delete.
3127	* arange-set.h: Delete.
3128	* dwarf2.c: Revert 2007-09-21 changes.
3129	* Makefile.am: Likewise.
3130	* Makefile.in: Regenerate.
3131	* po/SRC-POTFILES.in: Regenerate.
3132
31332008-02-11  Bernd Schmidt  <bernd.schmidt@analog.com>
3134
3135	* elf32-bfin.c (bfin_relocate_section): Set up dynobj before using it
3136	if necessary.
3137	(elf32_bfin_merge_private_bfd_data): Simplify, and ensure object type
3138	mismatches are detected.
3139
3140	* elf32-bfin.c (bfinfdpic_relocate_section): Take more care not to
3141	emit invalid relocs or rofixup entries for deleted .eh_frame entries.
3142
31432008-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
3144
3145	* cache.c (cache_bread): Set bfd_error_file_truncated if EOF
3146	was reached.
3147	* srec.c (srec_scan): Calculate the checksum.  Complain on mismatch.
3148
31492008-02-07  Alan Modra  <amodra@bigpond.net.au>
3150
3151	* elf32-spu.c (spu_elf_size_stubs): Revert 2008-01-28 doubling
3152	of _ovly_buf_table size.
3153	(spu_elf_build_stubs): Use low bit of .size as "present" bit.
3154	Adjust initialisations relating to _ovly_buf_table.
3155
31562008-02-04  Bob Wilson  <bob.wilson@acm.org>
3157
3158	* elf32-xtensa (elf_xtensa_relocate_section): After finding an invalid
3159	relocation, do not continue processing it.  Ignore R_XTENSA_ASM_EXPAND
3160	relocations against dynamic symbols.
3161	(elf_xtensa_finish_dynamic_sections): Do not fail if there is no
3162	.xt.lit section.
3163
31642008-02-04  Kai Tietz  <kai.tietz@onevision.com>
3165	    H.J. Lu  <hongjiu.lu@intel.com>
3166
3167	PR 5715
3168	* warning.m4: Enable -Wno-format by default when using gcc on
3169	mingw.
3170	* configure: Regenerated.
3171
31722008-02-04  Adam Nemet  <anemet@caviumnetworks.com>
3173
3174	* archures.c: Update copyright.
3175	(bfd_mach_mips_octeon): New macro.
3176	* bfd-in2.h: Regenerate.
3177	* elfxx-mips.c (_bfd_elf_mips_mach): Handle Octeon.
3178	(mips_set_isa_flags): Likewise.
3179	(mips_mach_extensions): Add Octeon.
3180	* cpu-mips.c: Update copyright.
3181	(I_mipsocteon): New enum constant.
3182	(arch_info_struct): Add Octeon.
3183
31842008-02-04  Alan Modra  <amodra@bigpond.net.au>
3185
3186	* elf32-spu.c (spu_elf_relocate_section): Correct return type.
3187	Return error status on unexpected relocation errors.
3188
31892008-02-04  Alan Modra  <amodra@bigpond.net.au>
3190
3191	PR ld/5692
3192	* elf.c (bfd_elf_get_elf_syms): Revert 2008-01-31.  Instead abort
3193	on non-ELF input.
3194	* elf32-arm.c (elf32_arm_size_dynamic_sections): Skip glue
3195	processing on non-ELF input.
3196
31972008-01-31  Marc Gauthier  <marc@tensilica.com>
3198
3199	* config.bfd (xtensa*-*-*): Recognize processor variants.
3200
32012008-01-31  Nick Clifton  <nickc@redhat.com>
3202
3203	PR ld/5692
3204	* elf.c (bfd_elf_get_elf_syms): Check the return value of
3205	get_elf_backend_data.
3206
32072008-01-28  Fabian Groffen  <grobian@gentoo.org>
3208
3209	* config.bfd (x86_64-*-solaris2): Add support for this target.
3210
32112008-01-28  Alan Modra  <amodra@bigpond.net.au>
3212
3213	Rewrite SPU overlay handling code.  Put overlay calls stubs in the
3214	overlays where possible.  Use a faster call stub, or optionally at
3215	compile time, a more compact stub.  Double size of _ovly_buf_table
3216	so that low bit of _ovly_table.buf can be used as a "present" bit.
3217	Reserve an extra _ovly_table entry for index zero.
3218	* elf32-spu.c: (struct spu_link_hash_table): Delete a number of fields,
3219	add new ones.
3220	(struct got_entry): New.
3221	(struct spu_stub_hash_entry): Delete.
3222	(stub_hash_newfunc, spu_elf_link_hash_table_free): Delete.
3223	(spu_elf_link_hash_table_create): Adjust for struct changes.
3224	(spu_stub_name): Delete.
3225	(spu_elf_find_overlays): Don't track sections from overlay regions.
3226	Instead set ovl_buf number in spu elf section data.  Error if
3227	overlays in one region don't start at the same address.  Adjust
3228	for struct _spu_elf_section_data changes.
3229	(SIZEOF_STUB1, SIZEOF_STUB2, ILA_79, ILA_78): Delete.
3230	(OVL_STUB_SIZE, BRSL, LNOP, ILA): Define.
3231	(needs_ovl_stub): Adjust for struct _spu_elf_section_data changes.
3232	(enum _insn_type): New.
3233	(count_stub, build_stub): New functions.
3234	(allocate_spuear_stubs): Use count_stub.
3235	(build_spuear_stubs): Use build_stub.
3236	(populate_stubs, sort_stubs): Delete.
3237	(process_stubs): New function.
3238	(write_one_stub): Delete.
3239	(spu_elf_size_stubs, spu_elf_build_stubs): Rewrite.
3240	(alloc_stack_info): Adjust for struct _spu_elf_section_data changes.
3241	(maybe_insert_function, check_function_ranges): Likewise.
3242	(find_function, pasted_function, build_call_tree): Likewise.
3243	(spu_elf_stack_analysis, spu_elf_modify_segment_map): Likewise.
3244	(spu_elf_modify_program_headers): Likewise.
3245	(interesting_section): Detect stub sections differently.  Delete
3246	htab param, adjust all callers.
3247	(spu_elf_relocate_section): Rewrite stub handling.
3248	(spu_elf_output_symbol_hook): Likewise.
3249	(bfd_elf32_bfd_link_hash_table_free): Delete.
3250	* elf32-spu.h (struct _spu_elf_section_data): Move input-only and
3251	output-only fields into a union.  Add ovl_buf.
3252	(spu_elf_size_stubs, spu_elf_build_stubs): Update prototypes.
3253
32542008-01-25  DJ Delorie  <dj@redhat.com>
3255
3256	* elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): New.
3257
32582008-01-25  Kai Tietz  <kai.tietz@onevision.com>
3259
3260	* bfd-in.h: Add mingw I64 support.
3261	* bfd-in2.h: Regenerated.
3262	* bfd.c: (bfd_get_sign_extend_vma): Add pe-x86-64 and pei-x86-64.
3263
32642008-01-21  Alan Modra  <amodra@bigpond.net.au>
3265
3266	PR 4453
3267	* format.c (bfd_check_format_matches): Don't accept archives as
3268	fully matching unless they have a map.
3269
32702008-01-21  Alan Modra  <amodra@bigpond.net.au>
3271
3272	* elflink.c (_bfd_elf_link_output_relocs): Correct error return.
3273
32742008-01-21  Alan Modra  <amodra@bigpond.net.au>
3275
3276	* ecoff.c (_bfd_ecoff_archive_p): Delete.
3277	* libecoff.h (_bfd_ecoff_archive_p): Delete.
3278	* coff-alpha.c (ecoffalpha_little_vec): Use bfd_generic_archive_p.
3279	* coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise.
3280	(ecoff_biglittle_vec): Likewise.
3281
32822008-01-19  Alan Modra  <amodra@bigpond.net.au>
3283
3284	PR 5646
3285	* elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr
3286	non-NULL before dereferencing.
3287
32882008-01-15  Alan Modra  <amodra@bigpond.net.au>
3289
3290	PR 5604
3291	* elf-bfd.h (struct elf_backend_data): Add gc_keep.  Remove param
3292	names from others.
3293	(_bfd_elf_gc_keep): Declare.
3294	* elfxx-target.h (elf_backend_gc_keep): Define.
3295	(elfNN_bed): Init new field.
3296	* elflink.c (_bfd_elf_gc_keep): New function.
3297	(bfd_elf_gc_sections): Call gc_keep.
3298	* elf64-ppc.c (elf_backend_gc_keep): Define.
3299	(struct _ppc64_elf_section_data): Move .opd related fields to
3300	a struct so they don't occupy the same storage.  Adjust accesses
3301	throughout file.
3302	(ppc64_elf_gc_keep): New function, split out from..
3303	(ppc64_elf_gc_mark_hook): ..here.  Don't call _bfd_elf_gc_mark
3304	to mark .opd section, just set gc_mark.
3305	(ppc64_elf_edit_opd): Remove no_opd_opt parm.  Don't set opd->adjust
3306	unless we are changing .opd.  Test non-NULL opd->adjust at all
3307	accesses throughout file.
3308	* elf64-ppc.h (ppc64_elf_edit_opd): Update prototype.
3309
33102008-01-15  Alan Modra  <amodra@bigpond.net.au>
3311
3312	* bfd-in.h (BFD_HOST_LONG_LONG): Delete.
3313	* bfd-in2.h: Regenerate.
3314
33152008-01-11  Tristan Gingold  <gingold@adacore.com>
3316	    Eric Botcazou  <ebotcazou@adacore.com>
3317
3318	* elf32-ppc.c (ppc_elf_gc_sweep_hook): Exit early if generating a
3319	relocatable.
3320	* elf32-arm.c (elf32_arm_gc_sweep_hook): Likewise.
3321	* elf32-cris.c (cris_elf_gc_sweep_hook): Likewise.
3322	* elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise.
3323	* elf32-i386.c (elf_i386_gc_sweep_hook): Likewise.
3324	* elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise.
3325	* elf32-m68k.c (elf_m68k_gc_sweep_hook): Likewise.
3326	* elf32-s390.c (elf_s390_gc_sweep_hook): Likewise.
3327	* elf32-sh.c (sh_elf_gc_sweep_hook): Likewise.
3328	* elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
3329	* elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise.
3330	* elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise.
3331	* elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
3332	* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Likewise.
3333	* elfxx-mips.c (_bfd_mips_elf_gc_sweep_hook): Likewise.
3334	* elfxx-sparc.c (_bfd_sparc_elf_gc_sweep_hook): Likewise.
3335	* elflink.c (bfd_elf_gc_sections): Do not punt on relocatable output
3336	or executable output with relocations.
3337
33382008-01-09  Nick Clifton  <nickc@redhat.com>
3339
3340	PR gas/5552
3341	* elf32-fr30.c (fr30_elf_howto_table): Set partial_inplace field
3342	to FALSE for all relocs.
3343
33442008-01-09  Richard Sandiford  <rsandifo@nildram.co.uk>
3345
3346	PR ld/5526
3347	* elf-bfd.h (eh_cie_fde): Add u.cie.u.full_cie and u.cie.merged
3348	fields.  Rename u.cie.u.merged to u.cie.u.merged_with.
3349	(eh_frame_sec_info): Add a cies field.
3350	(eh_frame_hdr_info): Add a merge_cies field.
3351	* elf-eh-frame.c (cie): Add a reloc_index member to the personality
3352	union.
3353	(_bfd_elf_begin_eh_frame_parsing): Set hdr_info->merge_cies instead
3354	of hdr_info->cies.
3355	(_bfd_elf_parse_eh_frame): Remove tmp_cie.  Ccreate an array of
3356	cie structures in all cases and use it instead of extended_cies.
3357	If merging, store the cie array in sec_info->cies and point each
3358	CIE's eh_fde_cie at the associated element.  Do not try to
3359	calculate the value of the personality routine here; record the
3360	offset of the relocation instead.  Do not merge CIEs here.
3361	(_bfd_elf_end_eh_frame_parsing): Do not free hdr_info->cies here...
3362	(_bfd_elf_discard_section_eh_frame_hdr): ...do it here instead.
3363	(_bfd_elf_gc_mark_fdes): Mark the original (unmerged) CIE.
3364	(find_merged_cie): New function.
3365	(_bfd_elf_gc_mark_fdes): Use it.  Free sec_info->cies.
3366
33672008-01-07  Nick Clifton  <nickc@redhat.com>
3368
3369	PR binutils/5535
3370	* vms.c (vms_close_and_cleanup): Check for the presence of a
3371	vms_private_data_struct before examining any of its fields.
3372
33732008-01-07  H.J. Lu  <hongjiu.lu@intel.com>
3374
3375	PR ld/5522
3376	* elflink.c (elf_link_input_bfd): Don't write out a section if
3377	its output section is marked with SEC_NEVER_LOAD.
3378
3379For older changes see ChangeLog-2007
3380
3381Copyright (C) 2008 Free Software Foundation, Inc.
3382
3383Copying and distribution of this file, with or without modification,
3384are permitted in any medium without royalty provided the copyright
3385notice and this notice are preserved.
3386
3387Local Variables:
3388mode: change-log
3389left-margin: 8
3390fill-column: 74
3391version-control: never
3392End:
3393