aboutsummaryrefslogtreecommitdiff
path: root/bfd/ChangeLog
blob: 605c795e15777e3b3a5e6b2d2a01445d25fac267 (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
2007-02-12  Alan Modra  <amodra@bigpond.net.au>

	* elflink.c (evaluate_complex_relocation_symbols): Ignore relocs
	with a zero symbol index.

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

	* elflink.c (bfd_elf_discard_info): Tidy setting of "eh".

2007-02-05  Dave Brolley  <brolley@redhat.com>
            Stan Cox  <scox@redhat.com>

	PR ld/3972
	* elflink.c (elf_link_input_bfd): Always setup finfo->internal_syms.

2007-02-05  Dave Brolley  <brolley@redhat.com>
	    Richard Sandiford  <rsandifo@redhat.com>
	    Stan Cox  <scox@redhat.com>
	    Nick Clifton  <nickc@redhat.com>
	    DJ Delorie  <dj@redhat.com>
	    Frank Ch. Eigler  <fche@redhat.com>
	    Ben Elliston  <bje@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	* Makefile.am (ALL_MACHINES): Add cpu-mep.lo.
	(ALL_MACHINES_CFILES): Add CPU_MEP.c.
	(BFD32_BACKENDS): Add elf32-mep.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-mep.c.
	(cpu-mep.lo,elf32-mep.lo): New targets.
	* archures.c (bfd_arch_mep): New enumerator.
	(bfd_mach_mep, bfd_mach_mep_h1): New macros.
	(bfd_mep_arch): New external variable.
	(bfd_archures_list): Add bfd_mep_arch.
	* config.bfd: Support mep-*-elf.
	* configure.in: Support bfd_elf32_mep_vec and bfd_elf32_mep_little_vec.
	* reloc.c (BFD_RELOC_MEP_*): New relocation numbers.
	* targets.c (bfd_elf32_mep_vec,bfd_elf32_mep_little_vec): New extern
	declarations.
	(_bfd_target_vector): Add bfd_elf32_mep_vec and
	bfd_elf32_mep_little_vec.
	* mep-relocs.pl: New file.
	* cpu-mep.c: New file.
	* elf32-mep.c: New file.
	* bfd-in2.h: Regenerate.
	* po/POTFILES.in: Regenerate.
	* libbfd.h: Regenerate.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2007-02-05  Dave Brolley  <brolley@redhat.com>

	* elflink.c (evaluate_complex_relocation_symbols): Check for
	STT_SRELC for global symbols.
	(perform_complex_relocations): Renamed to
	perform_complex_relocation and now examines only one relocation.
	(elf_link_input_bfd): Don't call perform_complex_relocations.
	* elf-bfd.h (bfd_elf_perform_complex_relocation_: New prototype.
	* elf32-mep.c (mep_elf_howto_table): Add R_RELC.
	(OD,OS,OU): #undefs corrected to N, S and U repectively.
	(mep_reloc_type_lookup): Handle BFD_RELOC_RELC.
	(complex_reloc_installation_howto): Removed.
	(mep_info_to_howto_rela): Remove special case for r_type==0xff.
	(mep_elf_relocate_section): Call bfd_elf_perform_complex_relocation.

2007-02-05  Dave Brolley  <brolley@redhat.com>
	    Richard Sandiford  <rsandifo@redhat.com>
	    DJ Delorie  <dj@redhat.com>
	    Graydon Hoare  <graydon@redhat.com>
	    Nick Clifton  <nickc@cambridge.redhat.com>
	    Jeff Holcomb  <jeffh@redhat.com>
	    Frank Ch. Eigler  <fche@redhat.com>

	* elf-bfd.h (bfd_elf_perform_complex_relocations): New prototype.
	* elf.c (swap_out_syms): Handle BSF_RELC and BSF_SRELC.
	* elfcode.h (elf_slurp_symbol_table): Handle STT_RELC and STT_SRELC.
	* elflink.c (set_symbolValue): New static function.
	(resolve_symbol): Likewise.
	(resolve_section): Likewise.
	(undefined_reference): Likewise.
	(eval_symbol): Likewise.
	(evaluate_complex_relocation_symbols): Likewise.
	(put_value): Likewise.
	(get_value): Likewise.
	(decode_complex_addend):
	(bfd_elf_perform_complex_relocation): New function.
	(elf_link_input_bfd): Call evaluate_complex_relocation_symbols.
	* reloc.c (BFD_RELOC_RELC): New relocation number.
	* syms.c (BSF_RELC,BSF_SRELC): New macros.

2007-02-05  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (elf_xtensa_make_sym_local): Delete.
	(elf_xtensa_hide_symbol, elf_backend_hide_symbol): Delete.
	(elf_xtensa_fix_refcounts, elf_xtensa_allocate_plt_size)
	(elf_xtensa_allocate_got_size): Replace these with...
	(elf_xtensa_allocate_dynrelocs): ...this new function.
	(elf_xtensa_size_dynamic_sections): Use it.

2007-02-05  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (elf_howto_table) <R_XTENSA_GLOB_DAT>
	<R_XTENSA_JMP_SLOT, R_XTENSA_RELATIVE, R_XTENSA_PLT, R_XTENSA_DIFF32>:
	Set src_mask to zero.
	<R_XTENSA_DIFF8, R_XTENSA_DIFF16>: Likewise.  Also fix dst_mask.
	<R_XTENSA_ASM_EXPAND>: Set pcrel_offset to TRUE.

2007-02-02  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (xtensa_elf_dynamic_symbol_p): Renamed to...
	(elf_xtensa_dynamic_symbol_p): ...this.

2007-02-02  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa.c (plt_reloc_count): Move into link hash table.
	(struct elf_xtensa_link_hash_table): New.
	(elf_xtensa_hash_table): New.
	(elf_xtensa_link_hash_table_create): New.
	(elf_xtensa_check_relocs): Update plt_reloc_count references.
	Update arguments to add_extra_plt_sections.
	(elf_xtensa_create_dynamic_sections): Record new sections in the hash
	table.  Update for plt_reloc_count and add_extra_plt_sections.
	(add_extra_plt_sections, elf_xtensa_create_plt_entry): Replace dynobj
	argument with link info.  Update calls to elf_xtensa_get_plt_section
	and elf_xtensa_get_gotplt_section.
	(elf_xtensa_allocate_local_got_size, elf_xtensa_size_dynamic_sections)
	(elf_xtensa_relocate_section, elf_xtensa_finish_dynamic_sections)
	(elf_xtensa_discard_info_for_section, shrink_dynamic_reloc_sections)
	(relax_property_section): Get sections from the hash table and update
	function calls.
	(elf_xtensa_get_plt_section, elf_xtensa_get_gotplt_section): Replace
	dynobj argument with link info.  Get sections for first plt chunk from
	the hash table.
	(bfd_elf32_bfd_link_hash_table_create): Define.

2007-02-02  Jakub Jelinek  <jakub@redhat.com>

	* elf-bfd.h (struct elf_obj_tdata): Change symbuf type to void *.
	* elf.c (struct elf_symbuf_symbol, struct elf_symbuf_head): New types.
	(struct elf_symbol): Change first member into union.
	(elf_sort_elf_symbol): Compare pointers to internal syms rather than
	internal syms.  Only compare st_shndx fields.
	(elf_create_symbuf): New function.
	(bfd_elf_match_symbols_in_sections): Use it.  If symbufs are available
	for bfds, use a binary search, otherwise don't qsort symbols
	unnecessarily only to select which symbols are for the particular
	shndx.

2007-02-01  Nick Clifton  <nickc@redhat.com>

	PR ld/3852
	* elf.c (_bfd_elf_link_hash_table_init): Initialize all the fields
	in the elf_link_hash_table structure.

2007-02-01  Alan Modra  <amodra@bigpond.net.au>

	* elf-bfd.h (struct elf_backend_data): Add elf_backend_write_core_note.
	* elfxx-target.h (elf_backend_write_core_note): Define and use.
	* elf.c (elfcore_write_prpsinfo): Call the above.  Add support for
	32-bit core note on 64-bit target.
	(elfcore_write_prstatus): Likewise.
	(elfcore_write_lwpstatus): Make note_name const.
	(elfcore_write_prfpreg): Likewise.
	(elfcore_write_pstatus): Add support for 32-bit core note on 64-bit
	target.
	* elf32-ppc.c (ppc_elf_write_core_note): New function.
	(elf_backend_write_core_note): Define.
	* elf64-ppc.c (ppc64_elf_write_core_note): New function.
	(elf_backend_write_core_note): Define.

2007-01-31  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-cris.c (INCLUDED_TARGET_FILE): Removed.
	(elf32_bed): Defined for elf32-us-cris.

	* elf64-sh64.c (elf64_bed): Defined for Linux.
	(INCLUDED_TARGET_FILE): Removed.

	* elfxx-target.h (elfNN_bed): Always define. Don't check
	INCLUDED_TARGET_FILE.

2007-01-31  DJ Delorie  <dj@redhat.com>

	* elf-m10300.c (mn10300_elf_relocate_section): Clarify the warning
	message for dangerous relocs, special case the common user error.

2007-01-30  H.J. Lu  <hongjiu.lu@intel.com>

	* elf.c (copy_elf_program_header): Start from the first section
	in a segment and stop when all sections in a segment are
	accounted for.

2007-01-29  Julian Brown  <julian@codesourcery.com>

	* bfd-in2.h: Regenerate.
	* bfd-in.h (bfd_arm_vfp11_fix): New enum. Specify how VFP11
	instruction scanning should be done.
	(bfd_elf32_arm_init_maps, bfd_elf32_arm_vfp11_erratum_scan)
	(bfd_elf32_arm_vfp11_fix_veneer_locations): Add prototypes.
	(bfd_elf32_arm_set_target_relocs): Add vfp11 fix type argument to
	prototype.
	* elf-bfd.h (elf_backend_write_section): Add struct bfd_link_info
	argument.
	* elf32-arm.c (VFP11_ERRATUM_VENEER_SECTION_NAME)
	(VFP11_ERRATUM_VENEER_ENTRY_NAME): Define macros.
	(elf32_vfp11_erratum_type): New enum.
	(elf32_vfp11_erratum_list): New struct. List of veneers or jumps to
	veneers.
	(_arm_elf_section_data): Add mapsize, erratumcount, erratumlist.
	(elf32_arm_link_hash_table): Add vfp11_erratum_glue_size,
	vfp11_fix and num_vfp11_fixes fields.
	(elf32_arm_link_hash_table_create): Initialise vfp11_fix,
	vfp11_erratum_glue_size, num_vfp11_fixes fields.
	(VFP11_ERRATUM_VENEER_SIZE): Define. Size of an (ARM) veneer.
	(bfd_elf32_arm_allocate_interworking_sections): Initialise erratum
	glue section.
	(elf32_arm_section_map_add): Add an code/data mapping symbol entry
	to a section's map.
	(record_vfp11_erratum_veneer): Create a single veneer, and its
	associated symbols.
	(bfd_elf32_arm_add_glue_sections_to_bfd): Add vfp11 erratum glue.
	(bfd_elf32_arm_init_maps): Initialise mapping symbol table for input
	BFDs.
	(bfd_elf32_arm_set_vfp11_fix): Set the type of erratum workaround
	required.
	(bfd_arm_vfp11_pipe): Define VFP11 instruction pipes.
	(bfd_arm_vfp11_regno): Recode a register number from a VFP11 insn.
	(bfd_arm_vfp11_write_mask): Update write mask according to coded
	register number.
	(bfd_arm_vfp11_antidependency): New function.
	(bfd_arm_vfp11_insn_decode): Decode a VFP11 insn.
	(elf32_arm_compare_mapping): Declare.
	(bfd_elf32_arm_vfp11_erratum_scan): Scan the sections of an input
	BFD for potential erratum-triggering insns. Record results.
	(bfd_elf32_arm_vfp11_fix_veneer_locations): Find out where veneers
	and branches to veneers have been placed in virtual memory after
	layout.
	(bfd_elf32_arm_set_target_relocs): Set vfp11_fix field in global
	hash table.
	(elf32_arm_output_symbol_hook): Remove.
	(elf32_arm_write_section): Output veneers, and branches to veneers.
	Use maps from input sections, not output sections, for code
	byte-swapping.
	* elf32-ppc.c (ppc_elf_write_section): Add dummy link_info argument.
	* elf32-score.c (_bfd_score_elf_write_section): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_write_section): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_write_section): Likewise.

2007-01-27  H.J. Lu  <hongjiu.lu@intel.com>

	* elf64-hppa.c (elf64_bed): Defined for HPUX and Linux.
	(INCLUDED_TARGET_FILE): Removed.

2007-01-27  Mike Frysinger  <vapier@gentoo.org>

	* elf32-hppa.c (elf32_bed): Define for hpux, linux and netbsd.
	(INCLUDED_TARGET_FILE): Remove.

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

	* elf32-m32c.c (m32c_elf_howto_table): Don't complain about
	R_M32C_16 or R_M32C_24 relocs.

2007-01-25  Nick Clifton  <nickc@redhat.com>

	PR binutils/3874
	* elf32-avr.c (avr_link_hash_table): Check to make sure that the
	hash table was created by elf32_avr_link_hash_table_create before
	using it.
	(elf32_avr_link_hash_newfunc): New function.  Just pass the call
	through to _bfd_elf_link_hash_newfunc.
	(elf32_avr_link_hash_table_create): Use
	elf32_avr_link_hash_newfunc instead of
	_bfd_elf_link_hash_newfunc.
	(elf32_avr_relocate_section): Check for the hash table pointer
	being NULL.
	(elf32_avr_relax_section, avr_build_one_stub,
	elf32_avr_setup_params, get_local_syms, elf32_avr_size_stubs,
	elf32_avr_build_stubs): Likewise.

2007-01-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3831
	* elf-bfd.h (bfd_elf_link_mark_dynamic_symbol): Add an
	argument, Elf_Internal_Sym *.

	* elflink.c (bfd_elf_link_mark_dynamic_symbol): Mark a data
	symbol dynamic if info->dynamic_data is TRUE.
	(bfd_elf_record_link_assignment): Updated call to
	bfd_elf_record_link_assignment.
	(_bfd_elf_merge_symbol): Likewise.  Always call
	bfd_elf_link_mark_dynamic_symbol.

2007-01-12  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am (BFD_LIBS): Removed.
	* Makefile.in: Regenerated.

2007-01-11  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/3631
	* Makefile.am (OFILES): Add @bfd64_libs@.
	(libbfd_la_SOURCES): Remove $(BFD64_LIBS_CFILES).
	* Makefile.in: Regenerated.

	* configure.in (bfd_libs): Replaced by ...
	(bfd64_libs): This.
	* configure: Regenerated.

2007-01-11  Nathan Sidwell  <nathan@codesourcery.com>

	* elf.c (assign_file_positions_for_load_sections): We can
	require fewer phdrs than expected.

2007-01-08  Kazu Hirata  <kazu@codesourcery.com>

	* archures.c (bfd_mach_cpu32_fido): Rename to bfd_mach_fido.
	* bfd-in2.h: Regenerate.
	* cpu-m68k.c (arch_info_struct): Use bfd_mach_fido instead of
	bfd_mach_cpu32_fido.
	(m68k_arch_features): Use fido_a instead of cpu32.
	(bfd_m68k_compatible): Reject the combination of Fido and
	ColdFire.  Accept the combination of CPU32 and Fido with a
	warning.
	* elf32-m68k.c (elf32_m68k_object_p,
	elf32_m68k_merge_private_bfd_data,
	elf32_m68k_print_private_bfd_data): Treat Fido as an
	architecture by itself.

2007-01-08  Kai Tietz	<kai.tietz@onevision.com>

	* config.bfd: Renamed target x86_64-*-mingw64 to x86_64-*-mingw*.

2007-01-05  Jakub Jelinek  <jakub@redhat.com>

	* texhex.c (first_phase): Don't fall through into the default
	case.
	(pass_over): Replace abort () calls with return FALSE.  Fix
	buffer overflow.

2007-01-04  Jie Zhang  <jie.zhang@analog.com>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't set
	SEC_EXCLUDE on zero size .eh_frame.

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