aboutsummaryrefslogtreecommitdiff
path: root/bfd/ChangeLog
blob: a283f597d1870a89aba8c68531a05b0f160f2e0e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
2008-02-12  Nick Clifton  <nickc@redhat.com>

	PR ld/5692
	* elf-bfd.h (enum elf_object_id): New enum, used to identify
	target specific extensions to the elf_obj_tdata structure.
	(struct elf_obj_tdata): New field 'object_id'.
	(elf_object_id, elf_program_header_size, elf_symtab_hdr): New
	macros for accessing fields in the elf_obj_tdata structure.
	(bfd_elf_mkobject): Rename to bfd_elf_make_generic_object.
	(bfd_elf_allocate_object): New function.
	* elf.c (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object
	and implement by calling bfd_elf_allocate_object.
	(bfd_elf_allocate_object): New function: Allocates an
	elf_obj_tdata structure, possibly with a target specific
	extension.
	* elfxx-target.h (bfd_elfNN_mkobject): Use
	bfd_elf_make_generic_object as the default value.
	* elf32-arm.c (elf32_arm_obj_tdata): Rename to elf_arm_obj_tdata
	for consistency with other, similar structures.
	(is_arm_elf): New macro.  Checks a BFD to make sure that is an ARM
	ELF bfd.
	(elf32_arm_mkobject): Call bfd_elf_allocate_object.
	(bfd_elf32_arm_vfp11_erratum_scan): Use is_arm_elf macro to check
	the bfd being processed.
	(bfd_elf32_arm_vfp11_fix_veneer_locations): Likewise.
	(bfd_elf32_arm_set_target_relocs): Likewise.
	(bfd_elf32_arm_final_link_relocate): Likewise.
	(bfd_elf32_arm_copy_private_bfd_data): Likewise.
	(bfd_elf32_arm_merge_eabi_attributes): Likewise.
	(bfd_elf32_arm_merge_private_bfd_data): Likewise.
	(bfd_elf32_arm_check_relocs): Likewise.
	(bfd_elf32_arm_gc_mark_extra_sections): Likewise.
	(bfd_elf32_arm_size_dynamic_sections): Likewise.
	(bfd_elf32_arm_process_before_allocation): Use elf_symtab_hdr.
	(bfd_elf32_arm_init_maps): Likewise.
	(bfd_elf32_arm_final_link_relocate): Likewise.
	(bfd_elf32_arm_relocate_section): Likewise.
	(bfd_elf32_arm_gc_sweep_hook): Likewise.
	(bfd_elf32_arm_check_relocs): Likewise.
	(bfd_elf32_arm_size_dynamic_sections): Likewise.
	* elf32-i386.c (elf_i386_mkobject): Call bfd_elf_allocate_object.
	(is_i386_elf): New macro.  Checks a BFD to make sure that is an x86
	ELF bfd.
	(elf_i386_check_relocs): Use is_i386_elf macro to check    the bfd
	being processed.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.
	(elf_i386_check_relocs): Use elf_symtab_hdr.
	(elf_i386_gc_sweep_hook): Likewise.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_mkobject): Call bfd_elf_allocate_object.
	(elf_create_pointer_linker_section): Use is_ppc_elf_target to
	verify that the bfd before accessing target specific fields.
	(ppc_elf_check_relocs): Likewise.
	(elf_finish_pointer_linker_section): Likewise.
	(elf_create_pointer_linker_section): Use elf_symtab_hdr.
	(ppc_elf_check_relocs): Likewise.
	(ppc_elf_gc_sweep_hook): Likewise.
	(ppc_elf_tls_optimize): Likewise.
	(ppc_elf_size_dynamic_sections): Likewise.
	(ppc_elf_relax_section): Likewise.
	(ppc_elf_relocate_section): Likewise.
	* elf32-s390.c (struct elf_s390_obj_tdata): Add a comment
	reminding programmers to keep this structure in sync with the one
	defined in elf64-s390.c.
	(elf_s390_mkobject): Call bfd_elf_allocate_object.
	(is_s390_elf): New macro.  Checks a BFD to make sure that is an s390
	ELF bfd.
	(elf_s390_check_relocs): Use is_s390_elf macro to check    the bfd
	being processed.
	(elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_relocate_section): Likewise.
	(elf_s390_check_relocs): Use elf_symtab_hdr.
	(elf_s390_gc_sweep_hook): Likewise.
	(elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_relocate_section): Likewise.   
	* elf32-sh.c (sh_elf_mkobject): Call bfd_elf_allocate_object.
	(is_sh_elf): New macro.  Checks a BFD to make sure that is an SH
	ELF bfd.
	(sh_elf_size_dynamic_sections): Use is_sh_elf macro to check the
	bfd being processed.
	(sh_elf_relocate_section): Likewise.
	(sh_elf_check_relocs): Likewise.
	(sh_elf_copy_private_data): Likewise.
	(sh_elf_relax_section): Use elf_symtab_hdr.
	(sh_elf_size_dynamic_sections): Likewise.
	(sh_elf_relocate_section): Likewise.
	(sh_elf_get_relocated_section_contents): Likewise.
	(sh_elf_gc_sweep_hook): Likewise.
	(sh_elf_check_relocs): Likewise.
	* elf64-alpha.c (elf64_alpha_mkobject): Call bfd_elf_allocate_object.
	(is_alpha_elf): New macro.  Checks a BFD to make sure that is an
	Alpha ELF bfd.
	(elf64_alpha_create_got_section): Use is_alpha_elf macro to check
	the bfd being processed.
	(elf64_alpha_create_dynamic_section): Likewise.
	(elf64_alpha_check_relocs): Likewise.
	(elf64_alpha_size_got_sections): Likewise.
	(elf64_alpha_relax_section): Likewise.
	(elf64_alpha_relocate_section): Likewise.
	(elf64_alpha_final_link): Likewise.
	(elf64_alpha_check_relocs): Use elf_symtab_hdr.
	(elf64_alpha_relax_section): Likewise.
	(elf64_alpha_relocate_section_r): Likewise.
	(elf64_alpha_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_mkobject): Call bfd_elf_allocate_object.
	(ppc64_elf_check_relocs): Use is_ppc64_elf_target to check the bfd
	being processed.
	(opd_entry_value): Likewise.
	(allocate_dynrelocs): Likewise.
	(ppc64_elf_relocate_section): Likewise.
	(ppc64_elf_check_relocs): Use elf_symtab_hdr.
	(opd_entry_value): Likewise.
	(ppc64_elf_gc_sweep_hook): Likewise.
	(get_sym_h): Likewise.
	(ppc64_elf_edit_opd): Likewise.
	(ppc64_elf_tls_optimize): Likewise.
	(ppc64_elf_edit_toc): Likewise.
	(ppc64_elf_size_dynamic_sections): Likewise.
	(toc_adjusting_stub_needed): Likewise.
	(ppc64_elf_size_stubs): Likewise.
	(ppc64_elf_relocate_section): Likewise.
	* elf64-s390.c (struct elf_s390_obj_tdata): Add a comment
	reminding programmers to keep this structure in sync with the one
	defined in elf32-s390.c.
	(elf_s390_mkobject): Call bfd_elf_allocate_object.
	(is_s390_elf): New macro.  Checks a BFD to make sure that is an s390
	ELF bfd.
	(elf_s390_check_relocs): Use is_s390_elf macro to check    the bfd
	being processed.
	(elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_relocate_section): Likewise.   
	(elf_s390_check_relocs): Use elf_symtab_hdr.
	(elf_s390_gc_sweep_hook): Likewise.
	(elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_relocate_section): Likewise.
	* elf64-x86_64.c (elf64_x86_64_mkobject): Call bfd_elf_allocate_object.
	(is_x86_64_elf): New macro.  Checks a BFD to make sure that is an
	x86_64 ELF bfd.
	(elf64_x86_64_check_relocs): Use is_x86_64_elf macro to check the bfd
	being processed.
	(elf64_x86_64_size_dynamic_sections): Likewise.
	(elf64_x86_64_relocate_section): Likewise.
	(elf64_x86_64_check_relocs): Use elf_symtab_hdr.
	(elf64_x86_64_gc_sweep_hook): Likewise.
	(elf64_x86_64_size_dynamic_sections): Likewise.
	(elf64_x86_64_relocate_section): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_mkobject): Call bfd_elf_allocate_object.
	(is_sparc_elf): New macro.  Checks a BFD to make sure that is a Sparc
	ELF bfd.
	(_bfd_sparc_elf_check_relocs): Use is_sparc_elf macro to check the
	bfd being processed.
	(_bfd_sparc_elf_gc_sweep_hook): Likewise.
	(_bfd_sparc_elf_size_dynamic_sections): Likewise.
	(_bfd_sparc_elf_check_relocs): Use elf_symtab_hdr.
	(_bfd_sparc_elf_gc_sweep_hook): Likewise.
	(_bfd_sparc_elf_size_dynamic_sections): Likewise.
	(_bfd_sparc_elf_relocate_section): Likewise. 

2008-02-12  Alan Modra  <amodra@bigpond.net.au>

	PR 5303, 5755
	* arange-set.c: Delete.
	* arange-set.h: Delete.
	* dwarf2.c: Revert 2007-09-21 changes.
	* Makefile.am: Likewise.
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

2008-02-11  Bernd Schmidt  <bernd.schmidt@analog.com>

	* elf32-bfin.c (bfin_relocate_section): Set up dynobj before using it
	if necessary.
	(elf32_bfin_merge_private_bfd_data): Simplify, and ensure object type
	mismatches are detected.

	* elf32-bfin.c (bfinfdpic_relocate_section): Take more care not to
	emit invalid relocs or rofixup entries for deleted .eh_frame entries.

2008-02-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* cache.c (cache_bread): Set bfd_error_file_truncated if EOF
	was reached.
	* srec.c (srec_scan): Calculate the checksum.  Complain on mismatch.

2008-02-07  Alan Modra  <amodra@bigpond.net.au>

	* elf32-spu.c (spu_elf_size_stubs): Revert 2008-01-28 doubling
	of _ovly_buf_table size.
	(spu_elf_build_stubs): Use low bit of .size as "present" bit.
	Adjust initialisations relating to _ovly_buf_table.

2008-02-04  Bob Wilson  <bob.wilson@acm.org>
	
	* elf32-xtensa (elf_xtensa_relocate_section): After finding an invalid
	relocation, do not continue processing it.  Ignore R_XTENSA_ASM_EXPAND
	relocations against dynamic symbols.
	(elf_xtensa_finish_dynamic_sections): Do not fail if there is no
	.xt.lit section.
	
2008-02-04  Kai Tietz  <kai.tietz@onevision.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR 5715
	* warning.m4: Enable -Wno-format by default when using gcc on
	mingw.
	* configure: Regenerated.

2008-02-04  Adam Nemet  <anemet@caviumnetworks.com>

	* archures.c: Update copyright.
	(bfd_mach_mips_octeon): New macro.
	* bfd-in2.h: Regenerate.
	* elfxx-mips.c (_bfd_elf_mips_mach): Handle Octeon.
	(mips_set_isa_flags): Likewise.
	(mips_mach_extensions): Add Octeon.
	* cpu-mips.c: Update copyright.
	(I_mipsocteon): New enum constant.
	(arch_info_struct): Add Octeon.

2008-02-04  Alan Modra  <amodra@bigpond.net.au>

	* elf32-spu.c (spu_elf_relocate_section): Correct return type.
	Return error status on unexpected relocation errors.

2008-02-04  Alan Modra  <amodra@bigpond.net.au>

	PR ld/5692
	* elf.c (bfd_elf_get_elf_syms): Revert 2008-01-31.  Instead abort
	on non-ELF input.
	* elf32-arm.c (elf32_arm_size_dynamic_sections): Skip glue
	processing on non-ELF input.

2008-01-31  Marc Gauthier  <marc@tensilica.com>

	* config.bfd (xtensa*-*-*): Recognize processor variants.

2008-01-31  Nick Clifton  <nickc@redhat.com>

	PR ld/5692
	* elf.c (bfd_elf_get_elf_syms): Check the return value of
	get_elf_backend_data.

2008-01-28  Fabian Groffen  <grobian@gentoo.org>

	* config.bfd (x86_64-*-solaris2): Add support for this target.

2008-01-28  Alan Modra  <amodra@bigpond.net.au>

	Rewrite SPU overlay handling code.  Put overlay calls stubs in the
	overlays where possible.  Use a faster call stub, or optionally at
	compile time, a more compact stub.  Double size of _ovly_buf_table
	so that low bit of _ovly_table.buf can be used as a "present" bit.
	Reserve an extra _ovly_table entry for index zero.
	* elf32-spu.c: (struct spu_link_hash_table): Delete a number of fields,
	add new ones.
	(struct got_entry): New.
	(struct spu_stub_hash_entry): Delete.
	(stub_hash_newfunc, spu_elf_link_hash_table_free): Delete.
	(spu_elf_link_hash_table_create): Adjust for struct changes.
	(spu_stub_name): Delete.
	(spu_elf_find_overlays): Don't track sections from overlay regions.
	Instead set ovl_buf number in spu elf section data.  Error if
	overlays in one region don't start at the same address.  Adjust
	for struct _spu_elf_section_data changes.
	(SIZEOF_STUB1, SIZEOF_STUB2, ILA_79, ILA_78): Delete.
	(OVL_STUB_SIZE, BRSL, LNOP, ILA): Define.
	(needs_ovl_stub): Adjust for struct _spu_elf_section_data changes.
	(enum _insn_type): New.
	(count_stub, build_stub): New functions.
	(allocate_spuear_stubs): Use count_stub.
	(build_spuear_stubs): Use build_stub.
	(populate_stubs, sort_stubs): Delete.
	(process_stubs): New function.
	(write_one_stub): Delete.
	(spu_elf_size_stubs, spu_elf_build_stubs): Rewrite.
	(alloc_stack_info): Adjust for struct _spu_elf_section_data changes.
	(maybe_insert_function, check_function_ranges): Likewise.
	(find_function, pasted_function, build_call_tree): Likewise.
	(spu_elf_stack_analysis, spu_elf_modify_segment_map): Likewise.
	(spu_elf_modify_program_headers): Likewise.
	(interesting_section): Detect stub sections differently.  Delete
	htab param, adjust all callers.
	(spu_elf_relocate_section): Rewrite stub handling.
	(spu_elf_output_symbol_hook): Likewise.
	(bfd_elf32_bfd_link_hash_table_free): Delete.
	* elf32-spu.h (struct _spu_elf_section_data): Move input-only and
	output-only fields into a union.  Add ovl_buf.
	(spu_elf_size_stubs, spu_elf_build_stubs): Update prototypes.

2008-01-25  DJ Delorie  <dj@redhat.com>

	* elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): New.

2008-01-25  Kai Tietz  <kai.tietz@onevision.com>

	* bfd-in.h: Add mingw I64 support.
	* bfd-in2.h: Regenerated.
	* bfd.c: (bfd_get_sign_extend_vma): Add pe-x86-64 and pei-x86-64.

2008-01-21  Alan Modra  <amodra@bigpond.net.au>

	PR 4453
	* format.c (bfd_check_format_matches): Don't accept archives as
	fully matching unless they have a map.

2008-01-21  Alan Modra  <amodra@bigpond.net.au>

	* elflink.c (_bfd_elf_link_output_relocs): Correct error return.

2008-01-21  Alan Modra  <amodra@bigpond.net.au>

	* ecoff.c (_bfd_ecoff_archive_p): Delete.
	* libecoff.h (_bfd_ecoff_archive_p): Delete.
	* coff-alpha.c (ecoffalpha_little_vec): Use bfd_generic_archive_p.
	* coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise.
	(ecoff_biglittle_vec): Likewise.

2008-01-19  Alan Modra  <amodra@bigpond.net.au>

	PR 5646
	* elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr
	non-NULL before dereferencing.

2008-01-15  Alan Modra  <amodra@bigpond.net.au>

	PR 5604
	* elf-bfd.h (struct elf_backend_data): Add gc_keep.  Remove param
	names from others.
	(_bfd_elf_gc_keep): Declare.
	* elfxx-target.h (elf_backend_gc_keep): Define.
	(elfNN_bed): Init new field.
	* elflink.c (_bfd_elf_gc_keep): New function.
	(bfd_elf_gc_sections): Call gc_keep.
	* elf64-ppc.c (elf_backend_gc_keep): Define.
	(struct _ppc64_elf_section_data): Move .opd related fields to
	a struct so they don't occupy the same storage.  Adjust accesses
	throughout file.
	(ppc64_elf_gc_keep): New function, split out from..
	(ppc64_elf_gc_mark_hook): ..here.  Don't call _bfd_elf_gc_mark
	to mark .opd section, just set gc_mark.
	(ppc64_elf_edit_opd): Remove no_opd_opt parm.  Don't set opd->adjust
	unless we are changing .opd.  Test non-NULL opd->adjust at all
	accesses throughout file.
	* elf64-ppc.h (ppc64_elf_edit_opd): Update prototype.

2008-01-15  Alan Modra  <amodra@bigpond.net.au>

	* bfd-in.h (BFD_HOST_LONG_LONG): Delete.
	* bfd-in2.h: Regenerate.

2008-01-11  Tristan Gingold  <gingold@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* elf32-ppc.c (ppc_elf_gc_sweep_hook): Exit early if generating a
	relocatable.
	* elf32-arm.c (elf32_arm_gc_sweep_hook): Likewise.
	* elf32-cris.c (cris_elf_gc_sweep_hook): Likewise.
	* elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise.
	* elf32-i386.c (elf_i386_gc_sweep_hook): Likewise.
	* elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise.
	* elf32-m68k.c (elf_m68k_gc_sweep_hook): Likewise.
	* elf32-s390.c (elf_s390_gc_sweep_hook): Likewise.
	* elf32-sh.c (sh_elf_gc_sweep_hook): Likewise.
	* elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
	* elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise.
	* elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise.
	* elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
	* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_gc_sweep_hook): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_gc_sweep_hook): Likewise.
	* elflink.c (bfd_elf_gc_sections): Do not punt on relocatable output
	or executable output with relocations.

2008-01-09  Nick Clifton  <nickc@redhat.com>

	PR gas/5552
	* elf32-fr30.c (fr30_elf_howto_table): Set partial_inplace field
	to FALSE for all relocs.

2008-01-09  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR ld/5526
	* elf-bfd.h (eh_cie_fde): Add u.cie.u.full_cie and u.cie.merged
	fields.  Rename u.cie.u.merged to u.cie.u.merged_with.
	(eh_frame_sec_info): Add a cies field.
	(eh_frame_hdr_info): Add a merge_cies field.
	* elf-eh-frame.c (cie): Add a reloc_index member to the personality
	union.
	(_bfd_elf_begin_eh_frame_parsing): Set hdr_info->merge_cies instead
	of hdr_info->cies.
	(_bfd_elf_parse_eh_frame): Remove tmp_cie.  Ccreate an array of
	cie structures in all cases and use it instead of extended_cies.
	If merging, store the cie array in sec_info->cies and point each
	CIE's eh_fde_cie at the associated element.  Do not try to
	calculate the value of the personality routine here; record the
	offset of the relocation instead.  Do not merge CIEs here.
	(_bfd_elf_end_eh_frame_parsing): Do not free hdr_info->cies here...
	(_bfd_elf_discard_section_eh_frame_hdr): ...do it here instead.
	(_bfd_elf_gc_mark_fdes): Mark the original (unmerged) CIE.
	(find_merged_cie): New function.
	(_bfd_elf_gc_mark_fdes): Use it.  Free sec_info->cies.

2008-01-07  Nick Clifton  <nickc@redhat.com>

	PR binutils/5535
	* vms.c (vms_close_and_cleanup): Check for the presence of a
	vms_private_data_struct before examining any of its fields.

2008-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/5522
	* elflink.c (elf_link_input_bfd): Don't write out a section if
	its output section is marked with SEC_NEVER_LOAD.

For older changes see ChangeLog-2007

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End: