2009-08-21 Paul Pluzhnikov <ppluzhnikov@google.com>
[deliverable/binutils-gdb.git] / bfd / ChangeLog
CommitLineData
81ecdfbb
RW
12009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2
af542c2e
RW
3 * Makefile.am (datarootdir, docdir, htmldor, pdfdir)
4 (install-pdf, install-pdf-recursive, install-html)
5 (install-html-recursive): Remove.
6 * Makefile.in: Regenerate.
7
81ecdfbb
RW
8 * Makefile.in: Regenerate.
9 * aclocal.m4: Likewise.
10 * config.in: Likewise.
11 * configure: Likewise.
12
cd1dac3d
DG
132009-08-21 Daniel Gutson <dgutson@codesourcery.com>
14
15 * elf32-arm.c (arch_has_thumb2_nop): New function.
16 (arch_has_arm_nop): New function.
17 (elf32_arm_final_link_relocate): NOP opcodes changed.
18
440ae135
DE
192009-08-16 Doug Evans <dje@google.com>
20
21 * opncls.c (bfd_close): Until BFD_IN_MEMORY has an iovec,
22 at least don't leak memory.
23
a109e2f5
DD
242009-08-13 DJ Delorie <dj@redhat.com>
25
26 * elf32-m32c.c (m32c_elf_relax_delete_bytes): Adjust symbol sizes
27 if needed.
28
c1742541
NC
292009-08-12 Nick Clifton <nickc@redhat.com>
30
31 * po/fi.po: Updated Finnish translation.
32
6a9adeca
BS
332009-08-11 Bernd Schmidt <bernd.schmidt@analog.com>
34
35 Merge some FRV FDPIC changes into the Blackfin code.
36 * elf32-bfin.c (struct bfinfdpic_elf_link_hash_table): Add pointer to
37 summary reloc information.
38 (bfinfdpic_dynamic_got_plt_info): New.
39 (_bfin_create_got_section): Create the PLT section here.
40 (elf32_bfinfdpic_create_dynamic_sections): Not here.
41 (_bfinfdpic_count_nontls_entries): Move out of...
42 (_bfinfdpic_count_got_plt_entries): ... here.
43 (_bfinfdpic_count_relocs_fixups): Likewise.
44 (_bfinfdpic_reset_got_plt_entries): New.
45 (_bfinfdpic_size_got_plt): Move out of...
46 (elf32_bfinfdpic_size_dynamic_sections): ... here.
47 (bfinfdpic_relocate_section): Be careful not to call
48 _bfinfdpic_add_rofixup or _bfinfdpic_add_dyn_reloc for deleted relocs.
49 (bfinfdpic_check_discarded_relocs, bfinfdpic_elf_discard_info):
50 New functions.
51 (elf_backend_discard_info): Define for FD-PIC.
52
5dabe785
AM
532009-08-11 Alan Modra <amodra@bigpond.net.au>
54
55 * elflink.c: Add FIXMEs for some places that require octets_per_byte
56 adjustments.
57 * elf-eh-frame.c: Likewise.
58 * merge.c: Likewise.
59
ea7a63de
AM
602009-08-11 Alan Modra <amodra@bigpond.net.au>
61
62 * configure.in: Remove elf-ifunc.lo from common ELF files. Add
63 to x86 and x86_64 configurations.
64 * configure: Regenerate.
65
9bf609ec
JK
662009-08-10 Jan Kratochvil <jan.kratochvil@redhat.com>
67
68 Stop using bfd_usrdata in libbfd.
69 * coff-stgo32.c (bfd_coff_go32stub): Remove.
70 (stub_bytes, comment): Replace STUBSIZE by GO32_STUBSIZE.
71 (adjust_filehdr_in_post): Declare the abfd parameter as unused.
72 Replace STUBSIZE by GO32_STUBSIZE. Save now the stub in
73 filehdr_dst->u.go32.stub. New comment with the reason.
74 (adjust_filehdr_out_pre): Replace STUBSIZE by GO32_STUBSIZE.
75 Substitute the removed macro bfd_coff_go32stub.
76 (adjust_filehdr_out_post, adjust_scnhdr_in_post, adjust_scnhdr_out_pre)
77 (adjust_scnhdr_out_post, adjust_aux_in_post, adjust_aux_out_pre)
78 (adjust_aux_out_post): Replace STUBSIZE by GO32_STUBSIZE.
79 (create_go32_stub, go32_stubbed_coff_bfd_copy_private_bfd_data):
80 Replace STUBSIZE by GO32_STUBSIZE. Substitute the removed macro
81 bfd_coff_go32stub.
82 * coffcode.h (coff_mkobject_hook): Initialize coff->go32stub.
83 * libcoff-in.h (coff_data_type): New field go32stub.
84 * libcoff.h: Regenerated.
85
e39e47bd
JK
862009-08-10 Jan Kratochvil <jan.kratochvil@redhat.com>
87
88 Fix go32 stub preservation by objcopy.
89 * coff-stgo32.c (adjust_filehdr_in_post): Use bfd_malloc.
90 (go32_stubbed_coff_bfd_copy_private_bfd_data): Optionally allocate OBFD
91 go32stub.
92
ffcb4889
NS
932009-08-10 Nathan Sidwell <nathan@codesourcery.com>
94
95 * elf32-arm.c (elf32_arm_size_stubs): Don't die on undefined local
96 symbols.
97 (elf32_arm_final_link_relocate): Treat local undefined symbols the
98 same as global undefined symbols.
99 (elf32_arm_relocate_section): Give an error for local undefined
100 non-weak symbols, unless the reloc will not use the symbol.
101
01017ef8
NS
1022009-08-10 Nathan Sidwell <nathan@codesourcery.com>
103
104 * elf32-ppc.c (shared_stub_entry, stub_entry): Use r12, not r11.
105 (ppc_elf_relax_section): Use symbol index to distinguish
106 relocatable stubs.
107
a8ad78a7
AM
1082009-08-10 Alan Modra <amodra@bigpond.net.au>
109
110 * elf32-ppc.c (ppc_elf_relax_section): Ignore non-code sections.
111
91e21fb7
AM
1122009-08-10 Alan Modra <amodra@bigpond.net.au>
113
114 * elflink.c (_bfd_elf_adjust_dynamic_symbol): Don't clear plt
115 info for STT_GNU_IFUNC.
116 * elf32-ppc.c (ppc_elf_check_relocs): Count a needed plt entry
117 on got refs in case the symbol turns out to be ifunc.
118 (ppc_elf_gc_sweep_hook): Similarly.
119 (ppc_elf_adjust_dynamic_symbol): Adjust assertion.
120 (allocate_dynrelocs): Don't specially allocate got relocs for ifunc.
121 (ppc_elf_size_dynamic_sections): Likewise.
122 (ppc_elf_relocate_section): Likewise.
123
6a9adeca 1242009-08-09 Bernd Schmidt <bernd.schmidt@analog.com>
cb88ce9f
BS
125
126 From Mike Frysinger <michael.frysinger@analog.com>
127 * elf32-bfin.c (bfin_howto_table, bfin_reloc_map, bfin_check_relocs,
128 bfin_final_link_relocate, bfin_relocate_section, bfin_gc_sweep_hook,
129 _bfinfdpic_emit_got_relocs_plt_entries, bfinfdpic_relocate_section,
130 bfinfdpic_gc_sweep_hook, bfinfdpic_check_relocs,
131 bfin_finish_dynamic_symbol, bfd_bfin_elf32_create_embedded_relocs):
132 Adjust to match the renamed reloc definitions.
133
e7e75368
AM
1342009-08-08 Alan Modra <amodra@bigpond.net.au>
135
136 PR 10494
137 * elf.c (_bfd_elf_make_section_from_shdr): When setting up section
138 LMAs, use ELF_IS_SECTION_IN_SEGMENT to match sections with headers.
139
918d9742
TT
1402009-08-07 Tom Tromey <tromey@redhat.com>
141
142 * elf32-microblaze.c (microblaze_elf_check_relocs): Avoid strict
143 aliasing error.
144
7ba29e2a
NC
1452009-08-06 Michael Eager <eager@eagercon.com>
146
147 * Makefile.am: Add cpu-microblaze.{lo,c}, elf32-microblaze.{lo,c}.
148 * Makefile.in: Regenerate.
149 * archures.c: Add bfd_arch_microblaze.
150 * bfd-in2.h: Regenerate.
151 * config.bfd: Add microblaze target.
152 * configure.in: Add bfd_elf32_microblaze_vec target.
153 * configure: Regenerate.
154 * cpu-microblaze.c: New.
155 * elf32-microblaze.c: New.
156 * libbfd-in.h: Add prototype _bfd_dwarf2_fixup_section_debug_loc().
157 * libbfd.h: Regenerate.
158 * reloc.c: Add MICROBLAZE relocations.
159 * section.c: Add struct relax_table and relax_count to section.
160 * targets.c: Add bfd_elf32_microblaze_vec.
161
e47bf690
JJ
1622009-08-06 Jakub Jelinek <jakub@redhat.com>
163 Alan Modra <amodra@bigpond.net.au>
164
165 PR binutils/10492
166 * elf.c (sym_is_global): Return true even for BSF_GNU_UNIQUE
167 symbols.
168 * elf32-mips.c (mips_elf_sym_is_global): Likewise.
169 * elfn32-mips.c (mips_elf_sym_is_global): Likewise.
170
3ae046cc
NS
1712009-08-06 Nathan Sidwell <nathan@codesourcery.com>
172
173 * elf32-arm.c (elf32_arm_size_stubs): Call layout_sections_again
174 at least once when fixing cortex-a8.
175
cd8d5a82
CF
1762009-08-05 Chao-ying Fu <fu@mips.com>
177
178 * elf32-mips.c (mips_reloc_map): Add BFD_RELOC_MIPS_JALR.
179 * elfxx-mips.c (JAL_TO_BAL_P): New define to transform JAL to BAL
180 for CPUs. It is true for RM9000.
181 (JALR_TO_BAL_P): New define to transform JALR to BAL. It is true
182 for all CPUs.
183 (mips_elf_perform_relocation): Use JAL_TO_BAL_P and JALR_TO_BAL_P
184 to guard the transformation.
185
9cc305ec
TS
1862009-08-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
187
188 * elf32-spu.h (spu_elf_params): Add member emit_fixups.
189 (spu_elf_size_sections): Declare prototype.
190 * elf32-spu.c (spu_link_hash_table): Add member sfixup.
191 (FIXUP_RECORD_SIZE, FIXUP_GET, FIXUP_PUT): New macros.
192 (spu_elf_emit_fixup): New function.
193 (spu_elf_relocate_section): Emit fixup for each SPU_ADDR32.
194 (spu_elf_size_sections): New function.
195
eb7c4339
NS
1962009-08-05 Nathan Sidwell <nathan@codesourcery.com>
197
198 * elf32-arm.c (elf32_arm_stub_type): Add arm_stub_a8_veneer_lwm.
199 (arm_build_one_stub): Build a8 veneers as a separate pass.
200 (cortex_a8_erratum_scan): Add prev_num_a8_fixes and stub_changed_p
201 parameters. Use them to check if we create a different a8 fixup
202 than the previous pass.
203 (elf32_arm_size_stubs): Move scope of stub_changed and
204 prev_num_a8_fixes into main loop.
205 (elf32_arm_build_stubs): Build a8 veneers in a second pass.
206
a9585d22
AM
2072009-08-04 Alan Modra <amodra@bigpond.net.au>
208
209 * elf32-ppc.c (ppc_elf_relax_section): Correct conditions under
210 which find_plt_ent is called. Delete redundant code.
211
45b222d6
L
2122009-08-03 H.J. Lu <hongjiu.lu@intel.com>
213
214 PR binutils/10363
215 * elf.c (bfd_elf_string_from_elf_section): Return NULL on
216 invalid string offset.
217
004fb780
L
2182009-08-03 H.J. Lu <hongjiu.lu@intel.com>
219
220 PR ld/10433
221 * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Set got
222 to htab->init_got_offset and plt to htab->init_plt_offset
223 when discarding space for dynamic relocations.
224
a877a2b6
AM
2252009-08-03 Alan Modra <amodra@bigpond.net.au>
226
227 * elf32-ppc.c (struct plt_entry): Revise comments.
228 (ppc_elf_check_relocs): Don't create needless plt_entry info
229 for non-pie executables. Don't test info->pie when info->shared
230 already covers that case.
231 (ppc_elf_gc_sweep_hook): Adjust for above change.
232 (add_stub_sym): Don't test info->pie when info->shared tested.
233 (allocate_dynrelocs, ppc_elf_size_dynamic_sections): Likewise.
234 (write_glink_stub, ppc_elf_finish_dynamic_symbol): Likewise.
235 (ppc_elf_relax_section): Adjust find_plt_ent arguments.
236 (ppc_elf_relocate_section): Likewise.
237
de972ffa
AM
2382009-08-03 Alan Modra <amodra@bigpond.net.au>
239
240 * elf32-ppc.c (ppc_elf_check_relocs): Always add a plt ref count
241 for local ifunc symbols in non-pie executables, regardless of
242 reloc type. Don't specially create ifunc dyn relocs. Tidy ifunc
243 code so that it's obvious that we only do anything special for
244 local ifunc syms.
245 (ppc_elf_gc_sweep_hook): Adjust to suit check_relocs changes.
246 (allocate_dynrelocs): Correct comment for syms defined in plt.
247 Don't specially allocate ifunc dyn relocs.
248 (ppc_elf_relax_section): Relax branches to ifunc plt entries too.
249 (ppc_elf_relocate_section): Set "relocation" value for ifunc
250 syms in non-pie executables. No specially allocated dyn relocs
251 for ifunc to write. Allow for local sym on R_PPC_RELAX32_PLT.
252 (ppc_elf_finish_dynamic_symbol): Set value of ifunc symbols in
253 a non-pie executable.
254
1d85728f
L
2552009-08-02 H.J. Lu <hongjiu.lu@intel.com>
256 Jakub Jelinek <jakub@redhat.com>
257
258 PR ld/6443
259 * elf32-i386.c (elf_i386_tls_transition): Check executable
260 instead of shared for TLS when building PIE.
261 (elf_i386_check_relocs): Likewise.
262 (elf_i386_allocate_dynrelocs): Likewise.
263 (elf_i386_relocate_section): Likewise.
264
265 * elf64-x86-64.c (elf64_x86_64_tls_transition): Check executable
266 instead of shared for TLS when building PIE.
267 (elf64_x86_64_check_relocs): Likewise.
268 (elf64_x86_64_allocate_dynrelocs): Likewise.
269 (elf64_x86_64_relocate_section): Likewise.
270
5d8d4872
AG
2712009-07-31 Anthony Green <green@moxielogic.com>
272
273 * config.bfd (targ_cpu): Add moxie-uclinux support.
274
080a1b9f
HPN
2752009-07-31 Hans-Peter Nilsson <hp@bitrange.com>
276
277 * linker.c (fix_syms): Consider SEC_LOAD when choosing section.
278
25f23106
AM
2792009-07-30 Alan Modra <amodra@bigpond.net.au>
280
281 * elf32-ppc.c (ppc_elf_check_relocs): Always set up sections
282 used by indirect function support. Count dynamic relocs for
283 ifunc syms.
284 (ppc_elf_adjust_dynamic_symbol): Tweak for ifunc.
285 (allocate_dynrelocs): Allocate all non-dynamic ifunc plt entries
286 in iplt and their relocs in reliplt. Don't make ifunc syms
287 dynamic. Allocate got entry relocs for non-dynamic ifunc in
288 reliplt. Handle other dynamic relocs for ifunc.
289 (ppc_elf_size_dynamic_sections): Alloc dyn relocs for static
290 ifunc in reliplt, likewise relocs for got against local ifunc.
291 Typo fix on reliplt size adjust.
292 (ppc_elf_relocate_section): Don't use plt scheme of allocating
293 relocs 1-1 with entries for iplt, instead just add using
294 reloc_count. Write got relocs and dyn relocs for ifunc to reliplt.
295 Error on invalid ifunc dyn relocs.
296 (ppc_elf_finish_dynamic_symbol): Adjust for non-dynamic ifunc plt
297 in iplt/reliplt.
298 * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_JMP_IREL,
299 R_PPC64_REL16, R_PPC64_REL16_LO, R_PPC64_REL16_HI, R_PPC64_REL16_HA.
300 (ppc64_elf_reloc_type_lookup): Handle new relocs.
301 (ppc64_elf_check_relocs): Likewise. Count dyn relocs for ifunc.
302 (allocate_dynrelocs): As for elf32-ppc.c above.
303 (ppc64_elf_size_dynamic_sections): Likewise.
304 (ppc_build_one_stub): Put non-dynamic ifunc plt call stubs in iplt,
305 and their relocs in reliplt. Use R_PPC64_JMP_IREL.
306 (ppc_size_one_stub): Similarly.
307 (ppc64_elf_relocate_section): As for elf32-ppc.c above. Handle new
308 relocs too.
309 (ppc64_elf_finish_dynamic_symbol): As for elf32-ppc.c above.
310
80f540b7
HPN
3112009-07-29 Hans-Peter Nilsson <hp@bitrange.com>
312
313 * elf64-mmix.c (mmix_elf_relax_section): Revert 2009-05-27
314 change. Add note to head comment.
315
4ad4f3cb
JB
3162009-07-28 Jan Beulich <jbeulich@novell.com>
317
318 * archive.c (get_extended_arelt_filename): Remove redundant
319 range check on index.
320
d8d2f433
DK
3212009-07-27 Doug Kwan <dougkwan@google.com>
322
323 * elf32-arm.c (stub_hash_newfunc): Initialize field output_name.
324
9e675548
L
3252009-07-27 H.J. Lu <hongjiu.lu@intel.com>
326
327 * archures.c bfd_*_arch): Sorted.
328 (bfd_archures_list): Likewise.
329
86514226
SR
3302009-07-27 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
331
9e675548 332 * elf32-cr16.c (elf_cr16_final_link_relocate): Add code to handle
86514226
SR
333 to R_cr16_NUM32 relocation.
334
305f7588
MS
3352009-07-26 Michael Eager <eager@eagercon.com>
336
337 * archures.c: Add bfd_mach_ppc_405
338 * bfd-in2.h: Same.
339
b1995b01
L
3402009-07-25 H.J. Lu <hongjiu.lu@intel.com>
341
342 * cpu-i386.c (bfd_x86_64_arch): Fix comment typos.
343 * cpu-l1om.c (bfd_l1om_arch): Likewise.
344
8a9036a4
L
3452009-07-25 H.J. Lu <hongjiu.lu@intel.com>
346
347 * archures.c (bfd_architecture): Add bfd_arch_l1om.
348 (bfd_l1om_arch): New.
349 (bfd_archures_list): Add &bfd_l1om_arch.
350 * bfd-in2.h: Regenerated.
351
352 * config.bfd (targ64_selvecs): Add bfd_elf64_l1om_vec if
353 bfd_elf64_x86_64_vec is supported. Add bfd_elf64_l1om_freebsd_vec
354 if bfd_elf64_x86_64_freebsd_vec is supported.
355 (targ_selvecs): Likewise.
356
357 * configure.in: Support bfd_elf64_l1om_vec and
358 bfd_elf64_l1om_freebsd_vec.
359 * configure: Regenerated.
360
361 * cpu-l1om.c: New.
362
363 * elf64-x86-64.c (elf64_l1om_elf_object_p): New.
364 (bfd_elf64_l1om_vec): Likewise.
365 (bfd_elf64_l1om_freebsd_vec): Likewise.
366
367 * Makefile.am (ALL_MACHINES): Add cpu-l1om.lo.
368 (ALL_MACHINES_CFILES): Add cpu-l1om.c.
369 * Makefile.in: Regenerated.
370
371 * targets.c (bfd_elf64_l1om_vec): New.
372 (bfd_elf64_l1om_freebsd_vec): Likewise.
373 (_bfd_target_vector): Add bfd_elf64_l1om_vec and
374 bfd_elf64_l1om_freebsd_vec.
375
8fdcc58d
TS
3762009-07-24 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
377 Alan Modra <amodra@bigpond.net.au>
378
379 * reloc.c (BFD_RELOC_SPU_ADD_PIC): Define.
380 * bfd-in2.h: Regenerate.
381 * libbfd.h: Regenerate.
382 * elf32-spu.c (elf_howto_table): Add entries SPU_ADD_PIC.
383 (spu_elf_bfd_to_reloc_type): Handle SPU_ADD_PIC.
384 (spu_elf_relocate_section): Patch instructions marked by SPU_ADD_PIC.
385
9b769489
L
3862009-07-23 H.J. Lu <hongjiu.lu@intel.com>
387
388 PR ld/10434
389 * elf64-x86-64.c (elf64_x86_64_check_relocs): Check executable
390 instead of shared for R_X86_64_TPOFF32.
391 (elf64_x86_64_relocate_section): Likewise.
392
3e7a7d11
NC
3932009-07-23 Ulrich Drepper <drepper@redhat.com>
394
395 * elf-bfd.h (struct elf_link_hash_entry): Add unique_global field.
396 * elf.c (swap_out_syms): Set binding to STB_GNU_UNIQUE for symbols
397 with the BSF_GNU_UNIQUE flag bit set.
398 * elfcode.h (elf_slurp_symbol_table): Set the BSF_GNU_UNIQUE flag
399 for symbols with STB_GNU_UNIQUE binding.
400 * elflink.c (_bfd_elf_merge_symbol): Set unique_global for symbols
401 with the STB_GNU_UNIQUE binding.
402 (elf_link_add_object_symbols): Set the BSF_GNU_UNIQUE flag for
403 symbols with STB_GNU_UNIQUE binding. Set STB_GNU_UNIQUE for
404 symbols with the unique_global field set.
405 (elf_link_output_extsym): Set unique_global field for symbols with
406 the STB_GNU_UNIQUE binding.
407 * syms.c (struct bfd_symbol): Define BSF_GNU_UNIQUE flag bit.
408 (bfd_print_symbol_vandf): Print a 'u' character for BSF_GNU_UNIQUE
409 symbols.
410 (bfd_decode_symclass): Return a 'u' character for BSF_GNU_UNIQUE
411 symbols.
412 * bfd-in2.h: Regenerate.
413
5f35ea9c
L
4142009-07-22 H.J. Lu <hongjiu.lu@intel.com>
415
416 * elflink.c (elf_link_output_extsym): Revert the last change.
417
b63cc625
L
4182009-07-22 H.J. Lu <hongjiu.lu@intel.com>
419
420 PR ld/10433
421 * elflink.c (elf_link_output_extsym): Special case ifunc syms
422 when ref_regular, not def_regular.
423
2955ec4c
L
4242009-07-21 H.J. Lu <hongjiu.lu@intel.com>
425
426 PR ld/10426
427 * elflink.c (elf_link_add_object_symbols): Turn an IFUNC symbol
428 from a DSO into a normal FUNC symbol.
429 (elf_link_output_extsym): Turn an undefined IFUNC symbol into
430 a normal FUNC symbol.
431
6d30f5b2
NC
4322009-07-17 Chao-ying Fu <fu@mips.com>
433
434 * elfxx-mips.c (LOAD_INTERLOCKS_P): New define.
435 (_bfd_mips_elf_size_dynamic_sections): For CPUs without load
436 interlocking, the last PLT entry needs a nop in the branch delay slot.
437 (_bfd_mips_elf_finish_dynamic_symbol): For CPUs with load itnerlocking,
438 output the last two PLT entries in reverse order.
439
1f85278f
L
4402009-07-16 H.J. Lu <hongjiu.lu@intel.com>
441
442 * elf32-i386.c (elf_i386_relocate_section): Don't get local
443 STT_GNU_IFUNC symbol for relocatable link.
444 * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
445
f07749bb
L
4462009-07-10 H.J. Lu <hongjiu.lu@intel.com>
447
448 * bfdio.c (bfd_iovec): Add comments for bmmap.
449 * bfd-in2.h: Regenerated.
450
8455dd2c
L
4512009-07-10 H.J. Lu <hongjiu.lu@intel.com>
452
453 * Makefile.am: Run "make dep-am".
454 * Makefile.in: Regenerated.
455
cedfb179
DK
4562009-07-10 Doug Kwan <dougkwan@google.com>
457
458 * elf32-arm.c (stub_hash_newfunc): Initialize fields
459 target_addend and orig_insn.
460
fa8f86ff
TT
4612009-07-10 Tom Tromey <tromey@redhat.com>
462
463 * Makefile.am (dwarf2.lo): Use dwarf2.h, not elf/dwarf2.h.
464 (elf-eh-frame.lo): Likewise.
465 (elf32-bfin.lo): Likewise.
466 (elf32-frv.lo): Likewise.
467 (elf32-xc16x.lo): Likewise.
468 * Makefile.in: Rebuild.
469 * dwarf2.c: Included dwarf.h, not elf/dwarf2.h.
470 * elf-eh-frame.c: Likewise.
471 * elf32-bfin.c: Likewise.
472 * elf32-frv.c: Likewise.
473 * elf32-xc16x.c: Likewise.
474
33c6a8fc
JB
4752009-07-10 Julian Brown <julian@codesourcery.com>
476
477 * elf32-arm.c (arm_build_one_stub): Use the hash entry of the
478 symbol a stub entry is derived from, not the entry for the stub
479 itself, in call to elf32_arm_final_link_relocate.
480
1d770845
L
4812009-07-10 H.J. Lu <hongjiu.lu@intel.com>
482
483 * elf.c (_bfd_elf_get_synthetic_symtab): Remove leading zeros
484 when reporting addends.
485
52cfded7
AM
4862009-07-10 Alan Modra <amodra@bigpond.net.au>
487
488 * elf32-spu.c (spu_elf_size_stubs): Do set up soft-icache manager
489 data even when no stubs.
490 (spu_elf_place_overlay_data, spu_elf_build_stubs): Adjust.
491
e054468f
AM
4922009-07-10 Alan Modra <amodra@bigpond.net.au>
493
494 * elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_IRELATIVE.
495 (ppc_elf_get_synthetic_symtab): Report addend.
496 (PLT_IFUNC): Define.
497 (struct ppc_elf_link_hash_table): Add iplt and reliplt.
498 (ppc_elf_create_glink): New function.
499 (ppc_elf_create_dynamic_sections): Use it.
500 (ppc_elf_add_symbol_hook): Set has_ifunc_symbols.
501 (update_local_sym_info): Allocate space for local_plt array.
502 Don't bump local_got_refcounts for PLT_IFUNC. Return local_plt
503 entry pointer.
504 (is_branch_reloc): New function.
505 (ppc_elf_check_relocs): Handle STT_GNU_IFUNC symbols.
506 (ppc_elf_gc_sweep_hook): Likewise.
507 (ppc_elf_adjust_dynamic_symbol): Likewise.
508 (allocate_dynrelocs): Likewise.
509 (ppc_elf_size_dynamic_sections): Likewise.
510 (ppc_elf_relocate_section): Likewise.
511 (branch_reloc_hash_match): Use is_branch_reloc.
512 (ppc_elf_tls_optimize): Adjust for local_plt.
513 (write_glink_stub): New function, extracted from..
514 (ppc_elf_finish_dynamic_symbol): ..here. Handle STT_GNU_IFUNC.
515 (ppc_elf_finish_dynamic_sections): Only write plt resolver and
516 branch table when dynamic.
517 (elf_backend_post_process_headers): Define.
518 * elf64-ppc.c (elf_backend_post_process_headers): Define.
519 (ppc64_elf_howto_raw): Add R_PPC64_IRELATIVE.
520 (ppc64_elf_get_synthetic_symtab): Report addend.
521 (struct ppc_stub_hash_entry): Add plt_ent.
522 (PLT_IFUNC): Define.
523 (struct ppc_link_hash_table): Add iplt and reliplt.
524 (create_linkage_sections): Make .iplt and .rela.iplt sections.
525 (ppc64_elf_add_symbol_hook): Set has_ifunc_symbols.
526 (update_local_sym_info): Allocate space for local_plt array.
527 Don't bump local_got_ents for PLT_IFUNC. Return local_plt
528 entry pointer.
529 (update_plt_info): Pass pointer to plt_entry rather than sym hash,
530 and don't change hash flags here.
531 (is_branch_reloc): New function.
532 (ppc64_elf_check_relocs): Handle STT_GNU_IFUNC.
533 (ppc64_elf_gc_sweep_hook): Likewise.
534 (ppc64_elf_adjust_dynamic_symbol): Likewise.
535 (allocate_dynrelocs): Likewise.
536 (ppc64_elf_size_dynamic_sections): Likewise.
537 (ppc_build_one_stub, ppc_size_one_stub): Likewise.
538 (ppc64_elf_size_stubs): Likewise.
539 (ppc64_elf_relocate_section): Likewise.
540 (get_sym_h): Adjust for local_plt.
541 (branch_reloc_hash_match): Use is_branch_reloc.
542 (ppc_type_of_stub): Pass plt_entry pointer and handle ifunc.
543 (ppc64_elf_toc): Ignore SEC_EXCLUDE sections.
544
041de40d
AM
5452009-07-10 Alan Modra <amodra@bigpond.net.au>
546
547 * elf.c (_bfd_elf_get_synthetic_symtab): Report addends.
548
7ae26bc1
AM
5492009-07-10 Alan Modra <amodra@bigpond.net.au>
550
551 * elf-bfd.h (struct elf_link_hash_entry): Clarify ref_regular
552 and ref_regular_nonweak comment.
553 * elflink.c (elf_link_output_extsym): Special case ifunc syms
554 when def_regular, not ref_regular.
555 (elf_link_add_object_symbols): Don't set needs_plt on ifunc syms,..
556 * elf32-i386.c (elf_i386_check_relocs): ..set it here instead..
557 * elf64-x86-64.c (elf64_x86_64_check_relocs): ..and here.
558
9c4d0c1f
AM
5592009-07-09 Alan Modra <amodra@bigpond.net.au>
560
561 * elf32-spu.c (mark_functions_via_relocs): Init broken_cycle field
562 of malloc'd struct call_info.
563 (pasted_function): Likewise, priority too.
564
2fc6d3b0
AM
5652009-07-07 Alan Modra <amodra@bigpond.net.au>
566
567 * elf32-spu.c (spu_elf_auto_overlay): Take into account section
568 alignment when packing sections into overlays.
569
9e1f7c0e
DK
5702009-07-03 Cary Coutant <ccoutant@google.com>
571
572 * dwarf2.c (decode_line_info): Ignore DW_LNE_set_discriminator.
573
4a768870
DK
5742009-07-03 Dave Korn <dave.korn.cygwin@gmail.com>
575
576 * coffcode.h (sec_to_styp_flags): Partially revert (functional
577 changes only) earlier patch:-
578
579 2009-06-25 Kai Tietz <kai.tietz@onevision.com>
580
581 * coffcode.h (sec_to_styp_flags): Set discardable for .reloc and
582 give .debug and .reloc data characteristics.
583 (DOT_RELOC): New define for .reloc section string.
584 (coff_write_object_contents): Use DOT_RELOC instead of string.
585
848f5748
TT
5862009-07-02 Tom Tromey <tromey@redhat.com>
587
588 * aoutx.h (aout_get_external_symbols): Declare 'amt' locally.
589 * bfdwin.c (bfd_free_window): Cast to unsigned long.
590
dda46a27
L
5912009-07-01 Nick Clifton <nickc@redhat.com>
592
593 * elf-m10300.c: Remove trailing white space.
594 * reloc.c: Likewise.
595
efde2f2c
NC
5962009-07-01 Douglas B Rupp <rupp@gnat.com>
597
dda46a27 598 * bfd.m4 (BFD_HAVE_TIME_TYPE_MEMBER,
efde2f2c 599 BFD_HAVE_SYS_STAT_TYPE_MEMBER): New config functions.
dda46a27
L
600 * configure.in: Use them.
601 * configure: Regenerate.
602 * config.in: Regnerate.
603 * vmsutil.c: Include sysdep.h, remove ansidecl.h.
efde2f2c
NC
604 #define _BSD_SOURCE. Add comments.
605 (vms_file_stats_name): Calculate creation date based on available
606 runtime data. Return 1 for version instead of 0.
607
e1ec24c6
NC
6082009-07-01 Nick Clifton <nickc@redhat.com>
609
610 PR 10072
611 * elf32-arm.c (elf32_arm_final_link_relocate): Add code to handle
612 to R_ARM_THM_PC8 relocation.
613
2709f570
NC
6142009-06-29 Nick Clifton <nickc@redhat.com>
615
616 * elf-m10300.c (mn10300_elf_relax_section): Allow for the
617 different uses of the relocations addend when a symbol is in a
618 merged section.
619
83b89087
L
6202009-06-27 H.J. Lu <hongjiu.lu@intel.com>
621
622 PR ld/10337
623 * elf.c (bfd_section_from_shdr): Don't change sh_link for
624 SHT_REL/SHT_RELA sections on executable nor shared library.
625 Treat SHT_REL/SHT_RELA sections with sh_link set to SHN_UNDEF
626 as a normal section.
627
be7035c6
NC
6282009-06-25 Nick Clifton <nickc@redhat.com>
629
630 * elf-m10300.c (mn10300_elf_relax_section): Handle non-section
631 symbols with SEC_MERGE flag.
632
bdeb4032
KT
6332009-06-25 Kai Tietz <kai.tietz@onevision.com>
634
635 * coffcode.h (sec_to_styp_flags): Set discardable for .reloc and
636 give .debug and .reloc data characteristics.
637 (DOT_RELOC): New define for .reloc section string.
638 (coff_write_object_contents): Use DOT_RELOC instead of string.
639
b32e07d7
TG
6402009-06-25 Tristan Gingold <gingold@adacore.com>
641
642 * mach-o-target.c (bfd_mach_o_get_dynamic_symtab_upper_bound)
643 (bfd_mach_o_canonicalize_dynamic_symtab)
644 (bfd_mach_o_get_synthetic_symtab): Defines.
645 (TARGET_NAME_BACKEND): Add bfd_mach_o_print_thread entry.
646 (TARGET_NAME): Use Mach-O specific functions for dynamic.
647
648 * mach-o-i386.c (bfd_mach_o_i386_swap_reloc_in): Fix howto indexes
649 for scattered relocations.
650 (bfd_mach_o_i386_print_thread): New function.
651 (bfd_mach_o_print_thread): Define.
652
653 * mach-o.c (text_section_names_xlat): Add an entry for __const.
654 (bfd_mach_o_canonicalize_one_reloc, bfd_mach_o_canonicalize_relocs):
655 New functions extracted from ...
656 (bfd_mach_o_canonicalize_reloc): ... This. Simplified.
657 (bfd_mach_o_get_dynamic_reloc_upper_bound): New function.
658 (bfd_mach_o_canonicalize_dynamic_reloc): New function.
659 (bfd_mach_o_i386_flavour_string): Adjusted after enum renaming.
660 (bfd_mach_o_ppc_flavour_string): Reindentation. Add 64 bits cases.
661 (bfd_mach_o_scan_read_dylinker): Do not create a section anymore.
662 Set name_str field.
663 (bfd_mach_o_scan_read_dylib): Ditto.
664 (bfd_mach_o_scan_read_thread): Set mdata at declaration. Add comments,
665 reindent.
666 (bfd_mach_o_scan_read_dysymtab): Set mdata at declaration. Correctly
667 decode isym and flags on little endian targets. Set dysymtab field.
668 (bfd_mach_o_scan_start_address): Adjust for enum names.
669 (bfd_mach_o_lookup_section): Do not look for segments anymore.
670 (bfd_mach_o_print_section): Display bfd section name.
671 (bfd_mach_o_print_segment): Display none if no name.
672 (bfd_mach_o_print_dysymtab): Display next index for local, external
673 and undefined symbols.
674 (bfd_mach_o_bfd_print_private_bfd_data): Adjust code by using name_str.
675 Display dylinker name. Display thread and unixthread commands content.
676 (bfd_mach_o_print_thread): New macro.
677
678 * mach-o.h (bfd_mach_o_mach_header_magic): Align numbers.
679 (bfd_mach_o_ppc_thread_flavour): Ditto.
680 (bfd_mach_o_i386_thread_flavour): Ditto.
681 (BFD_MACH_O_PPC_THREAD_STATE_NONE): New enum.
682 (BFD_MACH_O_x86_THREAD_STATE_NONE): Replaces
683 BFD_MACH_O_THREAD_STATE_NONE.
684 (bfd_mach_o_segment_command): Remove segment field.
685 (bfd_mach_o_thread_flavour): Field offset is now unsigned long.
686 (bfd_mach_o_dylinker_command): Remove section field, add name_str.
687 (bfd_mach_o_prebound_dylib_command): Ditto.
688 (bfd_mach_o_dylib_command): Ditto.
689 (bfd_mach_o_prebound_dylib_command): Remove section field.
690 (mach_o_data_struct): Add dysymtab field.
691 (bfd_mach_o_backend_data): Add _bfd_mach_o_print_thread field.
692 (bfd_mach_o_get_reloc_upper_bound, bfd_mach_o_canonicalize_reloc)
693 (bfd_mach_o_build_commands): Remove parameter names and attributes.
694 (bfd_mach_o_get_dynamic_reloc_upper_bound)
695 (bfd_mach_o_canonicalize_dynamic_reloc): New prototypes.
696
c41ba836
DK
6972009-06-25 Rafael Avila de Espindola <espindola@google.com>
698
699 * plugin.c (load_plugin): Use stat and S_ISREG instead of the d_type
700 field of struct dirent.
701
3188b070
TG
7022009-06-23 Tristan Gingold <gingold@adacore.com>
703
704 * vms.c (vms_get_synthetic_symtab): Remove duplicate definition
705 of this macro. Fix indentation.
706
022f8312
CL
7072009-06-22 Christophe Lyon <christophe.lyon@st.com>
708
709 * elf32-arm.c (elf32_arm_size_stubs): Use PLT address as
710 destination for defined dynamic symbols when deciding whether to
711 insert a stub or not.
712 (allocate_dynrelocs): Make sure functions are not marked as Thumb
713 when actually accessed through a PLT, even when generating a
714 shared lib.
715
d297e807
TG
7162009-06-22 Tristan Gingold <gingold@adacore.com>
717
718 * mach-o.c (bfd_mach_o_canonicalize_reloc): Append a sentinel to
719 the relocs array.
720
ceaf50a2
AM
7212009-06-22 Alan Modra <amodra@bigpond.net.au>
722
723 * elf32-ppc.c (ppc_elf_check_relocs): Handle R_PPC_RELAX* in switch.
724 * elf32-v850.c (v850_elf_relocate_section): Warning fix.
725
983bddc8
AM
7262009-06-22 Alan Modra <amodra@bigpond.net.au>
727
728 * elf64-ppc.c (ppc64_elf_edit_opd): Avoid gcc warning.
729
f8703194
L
7302009-06-19 H.J. Lu <hongjiu.lu@intel.com>
731
732 * elflink.c (elf_link_add_object_symbols): Avoid warning
733 from -Wjump-misses-init in gcc 4.5.0.
734
09a24cbf
L
7352009-06-19 H.J. Lu <hongjiu.lu@intel.com>
736
737 * elf32-i386.c (elf_i386_check_relocs): Properly check local
738 symbol on error.
739 * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
740
4c544807
L
7412009-06-19 H.J. Lu <hongjiu.lu@intel.com>
742
743 * elf32-i386.c (elf_i386_tls_transition): Add a parameter,
744 r_symndx. Report local symbol name on error.
745 (elf_i386_check_relocs): Updated. Report local symbol name on
746 error.
747 (elf_i386_gc_sweep_hook): Updated.
748 (elf_i386_relocate_section): Likewise.
749
750 * elf64-x86-64.c (elf64_x86_64_tls_transition): Add a parameter,
751 r_symndx. Report local symbol name on error.
752 (elf64_x86_64_check_relocs): Updated. Report local symbol name
753 on error.
754 (elf64_x86_64_gc_sweep_hook): Updated.
755 (elf64_x86_64_relocate_section): Likewise.
756
b8674692
TG
7572009-06-19 Tristan Gingold <gingold@adacore.com>
758
759 * mach-o.c (bfd_mach_o_print_private_header): Fix format character.
760
046b007d
TG
7612009-06-19 Tristan Gingold <gingold@adacore.com>
762
763 * mach-o.c (bfd_mach_o_scan_read_symtab_symbols): Add prototype.
764 (bfd_mach_o_version): Use bfd_mach_o_get_data instead of direct access.
765 (bfd_mach_o_valid): Ditto.
766 (bfd_mach_o_wide_p): Ditto.
767 (bfd_mach_o_canonicalize_reloc): Ditto.
768 (bfd_mach_o_build_commands): Ditto.
769 (bfd_mach_o_scan_read_thread): Ditto.
770 (bfd_mach_o_flatten_sections): Ditto.
771 (bfd_mach_o_scan_start_address): Ditto.
772 (bfd_mach_o_lookup_section): Ditto.
773 (bfd_mach_o_core_fetch_environment): Ditto.
774 (bfd_mach_o_write_contents): Ditto. Handle reexport_dylib.
775 (bfd_mach_o_scan_write_relocs): Adjust for bfd_mach_o_get_data.
776 (bfd_mach_o_scan_write_symtab): Ditto.
777 Use macros instead of hard-coded values.
778 (bfd_mach_o_scan_read_symtab_symbol): Make the function static.
779 Use bfd_mach_o_get_data instead of direct access. Use macros
780 instead of hard-coded values.
781 (bfd_mach_o_scan_read_symtab_strtab): Make the function static.
782 Remove sym argument and get section from mdata.
783 Move code into the else branch.
784 (bfd_mach_o_scan_read_symtab_symbols): Make the function static.
785 Remove sym argument and get section from mdata. Adjust code.
786 (bfd_mach_o_scan_read_dylib): Move assertion into the created
787 switch (which replaces consecutive if statements).
788 (bfd_mach_o_scan_read_dysymtab): Rename seg to cmd. Load
789 module table, table of content, indirect symbols and external
790 referenced symbols.
791 (bfd_mach_o_scan_read_symtab): Renames seg to symtab. Set symtab
792 field.
793 (bfd_mach_o_scan_read_linkedit): New function.
794 (bfd_mach_o_scan_read_str): Ditto.
795 (bfd_mach_o_count_symbols): Simplify the code by using the symtab
796 field of mdata.
797 (bfd_mach_o_get_symtab_upper_bound): Remove check as
798 bfd_mach_o_count_symbols never returns an error.
799 (bfd_mach_o_canonicalize_symtab): Simplify the code by using the
800 symtab field (there might be only one symtab).
801 (bfd_mach_o_scan_read_command): Handle reexported dylib.
802 Handle sub frameworks, sub umbrella, sub library and sub client.
803 Read code signature and segment split info commands.
804 (bfd_mach_o_scan): Reindent.
805 (bfd_mach_o_xlat_name): New type.
806 (bfd_mach_o_print_flags): New function.
807 (bfd_mach_o_get_name): Ditto.
808 (bfd_mach_o_cpu_name): New variable.
809 (bfd_mach_o_filetype_name, bfd_mach_o_header_flags_name)
810 (bfd_mach_o_section_type_name)
811 (bfd_mach_o_section_attribute_name)
812 (bfd_mach_o_load_command_name): New variables.
813 (bfd_mach_o_print_private_header): New function.
814 (bfd_mach_o_print_section_map): New function extracted from
815 bfd_mach_o_print_private_bfd_data.
816 (bfd_mach_o_print_section): Ditto. Print more infos.
817 (bfd_mach_o_print_segment): Ditto.
818 (bfd_mach_o_print_dysymtab): Ditto.
819 (bfd_mach_o_bfd_print_private_bfd_data): Reworked. Handle
820 load weak dylib, reexport dylib and id dylib.
821 Handle code signature and segment_split info.
822 Handle sub frameworks, sub umbrella, sub library and sub client.
823 (bfd_mach_o_section_get_nbr_indirect): New function.
824
825 * mach-o.h (BFD_MACH_O_REFERENCE_MASK): New macro. Add comment.
826 (bfd_mach_o_header_flags): New enum to define header flags.
827 (bfd_mach_o_section_attribute): New enum to replace ...
828 (BFD_MACH_O_S_ATTR_LOC_RELOC, BFD_MACH_O_S_ATTR_EXT_RELOC,
829 BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS, BFD_MACH_O_S_ATTR_DEBUG,
830 BFD_MACH_O_S_SELF_MODIFYING_CODE, BFD_MACH_O_S_ATTR_LIVE_SUPPORT,
831 BFD_MACH_O_S_ATTR_NO_DEAD_STRIP, BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS,
832 BFD_MACH_O_S_ATTR_NO_TOC, BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS): ...
833 these removed macros.
834 (BFD_MACH_O_NLIST_SIZE, BFD_MACH_O_NLIST_64_SIZE): New macros.
835 (bfd_mach_o_dylib_module): New type.
836 (BFD_MACH_O_DYLIB_MODULE_SIZE, BFD_MACH_O_DYLIB_MODULE_64_SIZE): New
837 macros.
838 (bfd_mach_o_dylib_table_of_content): New type.
839 (BFD_MACH_O_TABLE_OF_CONTENT_SIZE): New macro.
840 (bfd_mach_o_dylib_reference): New type.
841 (BFD_MACH_O_REFERENCE_SIZE): New macro.
842 (bfd_mach_o_dysymtab_command): Add fields for loaded and decoded
843 modules, toc, references and indirect syms.
844 (BFD_MACH_O_INDIRECT_SYMBOL_SIZE): New macro.
845 (bfd_mach_o_dylinker_command): Remove cmd and cmdsize fields (were
846 unused). Add comment.
847 (bfd_mach_o_dylib_command): Ditto.
848 (bfd_mach_o_prebound_dylib_command): Ditto.
849 (bfd_mach_o_linkedit_command): New type.
850 (bfd_mach_o_str_command): New type.
851 (bfd_mach_o_load_command): Add linkedit and str fields.
852 (mach_o_data_struct): Add symtab field.
853 (bfd_get_mach_o_data): Renamed to ...
854 (bfd_mach_o_get_data): ... this new macro.
855 (bfd_mach_o_scan_read_symtab_symbol,
856 bfd_mach_o_scan_read_symtab_strtab,
857 bfd_mach_o_scan_read_symtab_symbols): Prototypes removed.
858
859 * mach-o-i386.c (bfd_mach_o_i386_mkobject): Use bfd_mach_o_get_data
860 instead of direct access.
861
6d78d0b9
AM
8622009-06-19 Alan Modra <amodra@bigpond.net.au>
863
864 * elf32-ppc.c (ppc_elf_check_relocs): Allow local symbols for
865 R_PPC_PLTREL24 relocs.
866 (ppc_elf_relocate_section): Likewise.
867
3ec01793
AM
8682009-06-19 Alan Modra <amodra@bigpond.net.au>
869
870 * elf32-ppc.c (find_plt_ent): Pass pointer to plist rather than
871 pointer to sym hash. Update all uses.
872 (update_plt_info): Likewise. Don't check addend here.
873
c2e61a4e
L
8742009-06-18 H.J. Lu <hongjiu.lu@intel.com>
875
876 * elf32-i386.c (elf_i386_check_relocs): Remove isymbuf and use
877 bfd_sym_from_r_symndx.
878 * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
879
87d72d41
AM
8802009-06-18 Alan Modra <amodra@bigpond.net.au>
881
882 * elf-bfd.h (struct sym_sec_cache): Delete.
883 (struct sym_cache): New.
884 (bfd_section_from_r_symndx): Delete prototype.
885 (bfd_sym_from_r_symndx): Define prototype.
886 * elf.c (bfd_section_from_r_symndx): Delete, replace with..
887 (bfd_sym_from_r_symndx): ..new function.
888 * elf32-arm.c: Update all uses of struct sym_sec_cache and
889 bfd_section_from_r_symndx to new struct and function.
890 * elf32-bfin.c: Likewise.
891 * elf32-hppa.c: Likewise.
892 * elf32-i386.c: Likewise.
893 * elf32-m32r.c: Likewise.
894 * elf32-m68hc1x.c: Likewise.
895 * elf32-m68hc1x.h: Likewise.
896 * elf32-m68k.c: Likewise.
897 * elf32-ppc.c: Likewise.
898 * elf32-s390.c: Likewise.
899 * elf32-sh.c: Likewise.
900 * elf64-ppc.c: Likewise.
901 * elf64-s390.c: Likewise.
902 * elf64-x86-64.c: Likewise.
903 * elfxx-sparc.c: Likewise.
904 * elfxx-sparc.h: Likewise.
905
14aae723
L
9062009-06-18 H.J. Lu <hongjiu.lu@intel.com>
907
908 * elf32-i386.c (elf_i386_check_relocs): Cache or free isymbuf.
909 * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
910
5e486aa1
NC
9112009-06-18 Nick Clifton <nickc@redhat.com>
912
913 * elflink.c (elf_link_sort_relocs): Return early if there are no
914 relocs to sort.
915
361dff73
DK
9162009-06-18 Dave Korn <dave.korn.cygwin@gmail.com>
917
32425da9
NC
918 Merge cegcc and mingw32ce target name changes from
919 CeGCC project:
361dff73 920
32425da9 921 2007-12-25 Pedro Alves <pedro_alves@portugalmail.pt>
361dff73
DK
922
923 * config.bfd: Add arm*-*-cegcc* target.
924
32425da9 925 2007-12-17 Pedro Alves <pedro_alves@portugalmail.pt>
361dff73
DK
926
927 * config.bfd: Add arm-*-mingw32ce* target.
928
e03a8ed8
L
9292009-06-17 H.J. Lu <hongjiu.lu@intel.com>
930
931 * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): New.
932 * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Likewise.
933 * elf32-i386.c (elf_i386_allocate_dynrelocs): Use it.
934 * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
935
9362009-06-17 H.J. Lu <hongjiu.lu@intel.com>
937
938 * elf-bfd.h (_bfd_elf_create_ifunc_dyn_reloc): New.
939 * elf-ifunc.c (_bfd_elf_create_ifunc_dyn_reloc): Likewise.
940 * elf32-i386.c (elf_i386_check_relocs): Use it.
941 * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
942
9432009-06-17 H.J. Lu <hongjiu.lu@intel.com>
944
945 * elf-bfd.h (elf_dyn_relocs): New.
946
947 * elf32-i386.c (elf_i386_dyn_relocs): Removed.
948 (elf_i386_link_hash_entry): Replace elf_i386_dyn_relocs with
949 elf_dyn_relocs.
950 (elf_i386_copy_indirect_symbol): Likewise.
951 (elf_i386_check_relocs): Likewise.
952 (elf_i386_gc_sweep_hook): Likewise.
953 (elf_i386_allocate_dynrelocs): Likewise.
954 (elf_i386_readonly_dynrelocs): Likewise.
955 (elf_i386_size_dynamic_sections): Likewise.
956
957 * elf64-x86-64.c (elf64_x86_64_dyn_relocs): Removed.
958 (elf64_x86_64_link_hash_entry): Replace elf64_x86_64_dyn_relocs
959 with elf_dyn_relocs.
960 (elf64_x86_64_copy_indirect_symbol): Updated.
961 (elf64_x86_64_check_relocs): Likewise.
962 (elf64_x86_64_gc_sweep_hook): Likewise.
963 (elf64_x86_64_adjust_dynamic_symbol): Likewise.
964 (elf64_x86_64_allocate_dynrelocs): Likewise.
965 (elf64_x86_64_readonly_dynrelocs): Likewise.
966 (elf64_x86_64_size_dynamic_sections): Likewise.
967
64e77c6d
L
9682009-06-17 H.J. Lu <hongjiu.lu@intel.com>
969
970 * elf32-arm.c (create_got_section): Get existing .rela.got
971 section.
972 * elf32-hppa.c (elf32_hppa_create_dynamic_sections): Likewise.
973 * elf32-lm32.c (create_got_section): Likewise.
974 * elf32-m32r.c (create_got_section): Likewise.
975 * elf32-ppc.c (ppc_elf_create_got): Likewise.
976 * elf32-s390.c (create_got_section): Likewise.
977 * elf32-sh.c (create_got_section): Likewise.
978 * elf32-xtensa.c (elf_xtensa_create_dynamic_sections): Likewise.
979 * elf64-s390.c (create_got_section): Likewise.
980 * elfxx-sparc.c (create_got_section): Likewise.
981
982 * elflink.c (_bfd_elf_create_got_section): Properly initialize
983 the GOT size.
984
d2149d72
L
9852009-06-16 H.J. Lu <hongjiu.lu@intel.com>
986
987 * elf-bfd.h (ELF_LOCAL_SYMBOL_HASH): New.
988
989 * elf32-i386.c (elf_i386_local_hash): Removed.
990 (elf_i386_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH.
991 (elf_i386_get_local_sym_hash): Likewise.
992
993 * elf64-x86-64.c (elf64_x86_64_local_hash): Removed.
994 (elf64_x86_64_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH.
995 (elf64_x86_64_get_local_sym_hash): Likewise.
996 * elfxx-ia64.c (elfNN_ia64_local_htab_hash): Likewise.
997 (get_local_sym_hash): Likewise.
998
cc3bd654
L
9992009-06-16 H.J. Lu <hongjiu.lu@intel.com>
1000
1001 * elfxx-ia64.c (elfNN_ia64_link_hash_table): Remove got_sec,
1002 rel_got_sec and plt_sec.
1003 (elfNN_ia64_relax_section): Updated.
1004 (elfNN_ia64_create_dynamic_sections): Likewise.
1005 (get_got): Likewise.
1006 (allocate_dynrel_entries): Likewise.
1007 (elfNN_ia64_size_dynamic_sections): Likewise.
1008 (set_got_entry): Likewise.
1009 (elfNN_ia64_choose_gp): Likewise.
1010 (elfNN_ia64_relocate_section): Likewise.
1011 (elfNN_ia64_finish_dynamic_symbol): Likewise.
1012 (elfNN_ia64_finish_dynamic_sections): Likewise.
1013
be3e406d
UW
10142009-06-16 Ulrich Weigand <uweigand@de.ibm.com>
1015
1016 * elf32-spu.c (needs_ovl_stub): Respect .brinfo lrlive bits
1017 also for calls.
1018
6de2ae4a
L
10192009-06-16 H.J. Lu <hongjiu.lu@intel.com>
1020
1021 * configure.in (elf): Add elf-ifunc.lo.
1022
1023 * configure: Regenerated.
1024 * Makefile.in: Likewise.
1025
1026 * elf-bfd.h (elf_link_hash_table): Add sgot, sgotplt,
1027 srelgot, splt, srelplt, igotplt, iplt, irelplt and irelifunc.
1028
1029 * elf32-i386.c (elf_i386_link_hash_table): Remove sgot,
1030 sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and
1031 irelifunc.
1032 (elf_i386_link_hash_table_create): Likewise.
1033 (elf_i386_create_dynamic_sections): Likewise.
1034 (elf_i386_check_relocs): Likewise.
1035 (elf_i386_allocate_dynrelocs): Likewise.
1036 (elf_i386_size_dynamic_sections): Likewise.
1037 (elf_i386_relocate_section): Likewise.
1038 (elf_i386_finish_dynamic_symbol): Likewise.
1039 (elf_i386_finish_dynamic_sections): Likewise.
1040 (elf_i386_create_got_section): Removed.
1041
1042 * elf64-x86-64.c (elf64_x86_64_link_hash_table): Remove sgot,
1043 sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and
1044 irelifunc.
1045 (elf64_x86_64_compute_jump_table_size): Updated.
1046 (elf64_x86_64_link_hash_table_create): Likewise.
1047 (elf64_x86_64_create_dynamic_sections): Likewise.
1048 (elf64_x86_64_check_relocs): Likewise.
1049 (elf64_x86_64_allocate_dynrelocs): Likewise.
1050 (elf64_x86_64_size_dynamic_sections): Likewise.
1051 (elf64_x86_64_relocate_section): Likewise.
1052 (elf64_x86_64_finish_dynamic_symbol): Likewise.
1053 (elf64_x86_64_finish_dynamic_sections): Likewise.
1054 (elf64_x86_64_create_got_section): Removed.
1055
1056 * elflink.c (_bfd_elf_create_got_section): Use log_file_align
1057 for pointer alignment. Set up section pointers.
1058 (_bfd_elf_create_dynamic_sections): Likewise.
1059 (_bfd_elf_create_ifunc_sections): Moved to ...
1060 * elf-ifunc.c: Here. New.
1061
1062 * Makefile.am (BFD32_BACKENDS): Add elf-ifunc.lo.
1063 (BFD32_BACKENDS_CFILES): Add elf-ifunc.c.
1064 Run "make dep-am".
1065
81694485
NC
10662009-06-16 Doug Kwan <dougkwan@google.com>
1067
6de2ae4a
L
1068 * elf32-arm.c (cortex_a8_erratum_scan): Change type of offset
1069 to bfd_signed_vma. Cast constant operands which are used in
1070 offset related expressions to bfd_signed_vma type as appropriate.
81694485 1071
6db7e006
MR
10722009-06-16 Maciej W. Rozycki <macro@linux-mips.org>
1073
1074 * elf32-vax.c (elf_vax_plt_sym_val): New function.
1075 (elf_backend_plt_sym_val): Define.
1076
9b90d8fd
MR
10772009-06-16 Maciej W. Rozycki <macro@linux-mips.org>
1078
1079 * elf32-vax.c (elf_vax_reloc_type_class): New function.
1080 (elf_backend_reloc_type_class): Define.
1081
04981bc1
MR
10822009-06-16 Maciej W. Rozycki <macro@linux-mips.org>
1083
1084 * elf32-vax.c (elf_vax_relocate_section): For symbol references
1085 from an executable to a shared library treat R_VAX_PC32
1086 relocations as R_VAX_PLT32 ones.
1087
886815b2
MR
10882009-06-16 Maciej W. Rozycki <macro@linux-mips.org>
1089
1090 * elf32-vax.c (elf_vax_instantiate_got_entries): Skip local
1091 symbols in GOT space calculation.
1092 (elf_vax_relocate_section): Adjust accordingly.
1093
6c4fb25a
MR
10942009-06-16 Maciej W. Rozycki <macro@linux-mips.org>
1095
1096 * elf32-vax.c (elf_vax_plt_entry): Set the entry mask to
1097 include <R11:R2>.
1098
7b6021f1
MR
10992009-06-16 Maciej W. Rozycki <macro@linux-mips.org>
1100
1101 * elf32-vax.c (elf_vax_check_relocs): Handle the visibility
1102 attribute.
1103 (elf_vax_relocate_section): Likewise.
1104
188dbb07
L
11052009-06-15 H.J. Lu <hongjiu.lu@intel.com>
1106
1107 * elf32-i386.c (elf_i386_allocate_dynrelocs): Update comments.
1108 * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
1109
048cbda4
L
11102009-06-15 H.J. Lu <hongjiu.lu@intel.com>
1111
1112 * elf32-i386.c (elf_i386_check_relocs): Reformat.
1113 * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
1114
482c6ce9
L
11152009-06-15 H.J. Lu <hongjiu.lu@intel.com>
1116
1117 * Makefile.am: Run "make dep-am".
1118 * Makefile.in: Regenerated.
1119
eba077f2
L
11202009-06-15 H.J. Lu <hongjiu.lu@intel.com>
1121
1122 * elf32-i386.c (elf_i386_allocate_dynrelocs): Fix a typo.
1123 * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
1124
ec68b083
NC
11252009-06-15 Nick Clifton <nickc@redhat.com>
1126
1127 * po/ru.po: New Russian translation.
1128 * configure.in (ALL_LINGUAS): Add ru.
1129 * configure: Regenerate.
1130
b80ee1aa
L
11312009-06-14 H.J. Lu <hongjiu.lu@intel.com>
1132
1133 * elf32-i386.c: Remove duplicated comments.
1134
44c4ea11
L
11352009-06-14 H.J. Lu <hongjiu.lu@intel.com>
1136
1137 PR ld/10270
1138 * elf32-i386.c (elf_i386_allocate_dynrelocs): Disallow
1139 dynamic IFUNC pointer in non-shared object. Use .got.plt
1140 for IFUNC definition in PIE.
1141 (elf_i386_allocate_dynrelocs): Resolve IFUNC definition in
1142 PIE locally.
1143
1144 * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Disallow
1145 dynamic IFUNC pointer in non-shared object. Use .got.plt
1146 for IFUNC definition in PIE.
1147 (elf64_x86_64_relocate_section): Resolve IFUNC definition in
1148 PIE locally.
1149
8b7e2992
L
11502009-06-13 H.J. Lu <hongjiu.lu@intel.com>
1151
1152 * elf32-i386.c (elf_i386_check_relocs): Properly report
1153 local symbol for unhandled relocation against STT_GNU_IFUNC
1154 symbol.
637fa7af 1155 (elf_i386_relocate_section): Likewise.
8b7e2992 1156 * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
637fa7af 1157 (elf64_x86_64_relocate_section): Likewise.
8b7e2992 1158
c25bc9fc
L
11592009-06-13 H.J. Lu <hongjiu.lu@intel.com>
1160
1161 PR ld/10269
1162 * elf32-i386.c: Include "objalloc.h" and "hashtab.h".
1163 (elf_i386_link_hash_table): Add loc_hash_table and
1164 loc_hash_memory.
1165 (elf_i386_local_hash): New.
1166 (elf_i386_local_htab_hash): Likewise.
1167 (elf_i386_local_htab_eq): Likewise.
1168 (elf_i386_get_local_sym_hash): Likewise.
1169 (elf_i386_link_hash_table_free): Likewise.
1170 (elf_i386_allocate_local_dynrelocs): Likewise.
1171 (elf_i386_finish_local_dynamic_symbol): Likewise.
1172 (bfd_elf64_bfd_link_hash_table_free): Likewise.
1173 (elf_i386_link_hash_table_create): Create loc_hash_table and
1174 loc_hash_memory.
1175 (elf_i386_check_relocs): Handle local STT_GNU_IFUNC symbols.
1176 (elf_i386_size_dynamic_sections): Likewise.
1177 (elf_i386_relocate_section): Likewise.
1178 (elf_i386_finish_dynamic_sections): Likewise.
1179 (elf_i386_finish_dynamic_symbol): Check _DYNAMIC only if sym
1180 isn't NULL.
1181
1182 * elf64-x86-64.c: Include "objalloc.h" and "hashtab.h".
1183 (elf64_x86_64_link_hash_table): Add loc_hash_table and
1184 loc_hash_memory.
1185 (elf64_x86_64_local_hash): New.
1186 (elf64_x86_64_local_htab_hash): Likewise.
1187 (elf64_x86_64_local_htab_eq): Likewise.
1188 (elf64_x86_64_get_local_sym_hash): Likewise.
1189 (elf64_x86_64_link_hash_table_free): Likewise.
1190 (elf64_x86_64_allocate_local_dynrelocs): Likewise.
1191 (elf64_x86_64_finish_local_dynamic_symbol): Likewise.
1192 (bfd_elf64_bfd_link_hash_table_free): Likewise.
1193 (elf64_x86_64_link_hash_table_create): Create loc_hash_table
1194 and loc_hash_memory.
1195 (elf64_x86_64_check_relocs): Handle local STT_GNU_IFUNC
1196 symbols.
1197 (elf64_x86_64_size_dynamic_sections): Likewise.
1198 (elf64_x86_64_relocate_section): Likewise.
1199 (elf64_x86_64_finish_dynamic_sections): Likewise.
1200 (elf64_x86_64_finish_dynamic_symbol): Check _DYNAMIC only if
1201 sym isn't NULL.
1202
dec9d5df
PB
12032009-06-10 Philip Blundell <philb@gnu.org>
1204
1205 * elf32-arm.c (elf32_arm_fix_exidx_coverage): Avoid crash if
1206 elf_sec->this_hdr == NULL.
1207
92bc0e80
TG
12082009-06-12 Tristan Gingold <gingold@adacore.com>
1209
1210 * reloc.c: Add BFD_RELOC_MACH_O_SECTDIFF and BFD_RELOC_MACH_O_PAIR.
1211 * bfd-in2.h: Regenerated.
1212 * libbfd.h: Regenerated.
1213
1214 * mach-o.c (FILE_ALIGN): New macro.
1215 (bfd_mach_o_canonicalize_symtab): Adjust for bfd_mach_o_asymbol.
1216 (bfd_mach_o_print_symbol): Ditto.
1217 (bfd_mach_o_scan_write_thread): Adjust type of variable offset.
1218 (bfd_mach_o_get_reloc_upper_bound): New function.
1219 (bfd_mach_o_canonicalize_reloc): Ditto.
1220 (bfd_mach_o_scan_write_relocs): Ditto.
1221 (bfd_mach_o_scan_write_section_32): Remove offset argument.
1222 (bfd_mach_o_scan_write_section_64): Ditto.
1223 (bfd_mach_o_scan_write_segment_32): Write relocs. Fix size of data
1224 written for load command. Do not compute section file offset.
1225 (bfd_mach_o_scan_write_segment_64): Ditto.
1226 (bfd_mach_o_scan_write_symtab): Compute file offset first.
1227 Adjust for bfd_mach_o_asymbol. Move code to convert from BFD to
1228 Mach-O to ...
1229 (bfd_mach_o_mangle_symbols): ... this new function.
046b007d 1230 (bfd_mach_o_write_contents): Be sure to have load commands built.
92bc0e80
TG
1231 Call bfd_mach_o_mangle_symbols.
1232 (bfd_mach_o_build_commands): Adjust for filelen field.
1233 Use FILE_ALIGN macro. Clear section file offset if section is empty.
1234 Do not set symtab file offset anymore here.
1235 (bfd_mach_o_make_empty_symbol): Allocate a bfd_mach_o_asymbol.
1236 (bfd_mach_o_make_bfd_section): Set SEC_RELOC if has reloc.
1237 Set reloc_count and rel_filepos section fields.
1238 (bfd_mach_o_scan_read_section_32): Type of argument offset is now
1239 unsigned int.
1240 (bfd_mach_o_scan_read_section_64): Ditto.
1241 (bfd_mach_o_scan_read_section): Ditto.
1242 (bfd_mach_o_scan_read_symtab_symbol): Typr of argument s is now
1243 bfd_mach_o_asymbol. Use unsigned int for file offset type.
1244 (bfd_mach_o_scan_read_symtab_symbol): Adjust for bfd_mach_o_asymbol.
1245 Handle weak-ref symbols.
1246 (bfd_mach_o_scan_read_symtab_symbols): Adjust for bfd_mach_o_asymbol.
1247 (bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
1248 (bfd_mach_o_scan): Remove assignment to removed field.
1249 (bfd_mach_o_mkobject_init): Ditto.
1250 (bfd_mach_o_bfd_print_private_bfd_data): Adjust printf formatter.
1251 (bfd_mach_o_bfd_reloc_type_lookup): New macro.
1252 (bfd_mach_o_bfd_reloc_name_lookup): Ditto.
1253 (bfd_mach_o_swap_reloc_in): Ditto.
1254 (bfd_mach_o_swap_reloc_out): Ditto.
1255
1256 * mach-o.h (BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_NON_LAZY)
1257 (BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_LAZY)
1258 (BFD_MACH_O_REFERENCE_FLAG_DEFINED)
1259 (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_DEFINED)
1260 (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY)
1261 (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY)
1262 (BFD_MACH_O_REFERENCED_DYNAMICALLY, BFD_MACH_O_N_DESC_DISCARDED)
1263 (BFD_MACH_O_N_NO_DEAD_STRIP, BFD_MACH_O_N_WEAK_REF)
1264 (BFD_MACH_O_N_WEAK_DEF): New macros.
1265 Add comments.
1266 (bfd_mach_o_section_type): Add new enumeration values.
1267 (BFD_MACH_O_S_SELF_MODIFYING_CODE)
1268 (BFD_MACH_O_S_ATTR_LIVE_SUPPORT)
1269 (BFD_MACH_O_S_ATTR_NO_DEAD_STRIP)
1270 (BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS, BFD_MACH_O_S_ATTR_NO_TOC): New
1271 macros.
1272 (BFD_MACH_O_GENERIC_RELOC_VANILLA)
1273 (BFD_MACH_O_GENERIC_RELOC_PAIR)
1274 (BFD_MACH_O_GENERIC_RELOC_SECTDIFF)
1275 (BFD_MACH_O_GENERIC_RELOC_PB_LA_PTR)
1276 (BFD_MACH_O_GENERIC_RELOC_LOCAL_SECTDIFF): Ditto.
1277 (BFD_MACH_O_RELENT_SIZE): Ditto.
1278 (BFD_MACH_O_R_PCREL, BFD_MACH_O_GET_R_LENGTH)
1279 (BFD_MACH_O_R_EXTERN, BFD_MACH_O_GET_R_TYPE)
1280 (BFD_MACH_O_GET_R_SYMBOLNUM, BFD_MACH_O_SET_R_LENGTH)
1281 (BFD_MACH_O_SET_R_TYPE, BFD_MACH_O_SET_R_SYMBOLNUM): Ditto.
1282 (BFD_MACH_O_SR_SCATTERED, BFD_MACH_O_SR_PCREL)
1283 (BFD_MACH_O_GET_SR_LENGTH, BFD_MACH_O_GET_SR_TYPE)
1284 (BFD_MACH_O_GET_SR_ADDRESS, BFD_MACH_O_SET_SR_LENGTH)
1285 (BFD_MACH_O_SET_SR_TYPE, BFD_MACH_O_SET_SR_ADDRESS): Ditto.
1286 (bfd_mach_o_reloc_info): New struct.
1287 (bfd_mach_o_asymbol): New struct.
1288 (bfd_mach_o_symtab_command): The symbols field is now of type
1289 bfd_mach_o_asymbol.
1290 (bfd_mach_o_load_command): The offset and len fields are now of type
1291 unsigned int.
1292 (mach_o_data_struct): Remove symbols, nsymbols and ibfd fields.
1293 Add a filelen field. Add comments.
1294 (bfd_mach_o_backend_data): New struct.
1295 (bfd_mach_o_get_backend_data): New macro.
1296 (bfd_mach_o_scan_read_symtab_symbol): Parameter symbol now of type
1297 bfd_mach_o_asymbol.
1298 (bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
1299 (bfd_mach_o_get_reloc_upper_bound): New prototype.
1300 (bfd_mach_o_canonicalize_reloc): Ditto.
1301
1302 * mach-o-target.c (bfd_mach_o_bfd_is_local_label_name): Remove
1303 duplicated macro. Now defined to _bfd_generic_is_local_label.
1304 (TARGET_NAME_BACKEND): New macro...
1305 (TARGET_NAME_BACKEND): ... used to name a new variable.
1306 (TARGET_NAME): Define relocs table using bfd_mach_o, reference
1307 Mach-O backend data.
1308
1309 * mach-o-i386.c (i386_howto_table): New variable.
1310 (bfd_mach_o_i386_swap_reloc_in): New function.
1311 (bfd_mach_o_i386_swap_reloc_out): Ditto.
1312 (bfd_mach_o_i386_bfd_reloc_type_lookup): Ditto.
1313 (bfd_mach_o_i386_bfd_reloc_name_lookup): Ditto.
1314 (bfd_mach_o_swap_reloc_in, bfd_mach_o_swap_reloc_out): New macros.
1315 (bfd_mach_o_bfd_reloc_type_lookup)
1316 (bfd_mach_o_bfd_reloc_name_lookup): Ditto.
1317
8c7d38e8
NC
13182009-06-11 Eric Paris <eparis@redhat.com>
1319 Nick Clifton <nickc@redhat.com>
1320
1321 * opncls.c (_maybe_make_executable): New function. Gives execute
1322 permission to an executable bfd that was opened for writing
1323 provided that it is a regular file. Replaces common code found in...
1324 (bfd_close): here and ...
1325 (bfd_close_all_done): here.
1326
f865a31d
AG
13272009-06-11 Anthony Green <green@moxielogic.com>
1328
1329 * reloc.c: Add BFD_RELOC_MOXIE_10_PCREL.
1330 * bfd-in2.h: Rebuilt.
1331 * libbfd.h: Rebuilt.
1332 * elf32-moxie.c (moxie_elf_howto_table): Add R_MOXIE_PCREL10
1333 relocation support.
1334 (moxie_reloc_map): Ditto.
1335 Clean up copyright notice.
1336
25b88f33
PP
13372009-06-10 Paul Pluzhnikov <ppluzhnikov@google.com>
1338
1372b818 1339 * bfd-in2.h: bfd_mmap prototype.
25b88f33
PP
1340 * bfdio.c (bfd_mmap): New function.
1341 * libbfd.h (bfd_iovec): Add bmmap.
1372b818 1342 * cache.c (cache_bmmap): New function.
25b88f33
PP
1343 (cache_iovec): Initialize bmmap member.
1344 * opencls.c (opncls_bmmap): New function.
1345 (opncls_iovec): Initialize bmmap member.
1346
c2f09c75
TG
13472009-06-09 Tristan Gingold <gingold@adacore.com>
1348
1349 * mach-o.h (bfd_mach_o_symtab_command): Remove stabs_segment
1350 and stabstr_segment fields.
1351 (mach_o_be_vec, mach_o_le_vec): Removed
1352 (bfd_mach_o_version): New prototype.
1353
1354 * mach-o.c (bfd_mach_o_version): Make this function public.
1355 (mach_o_wide_p): New function.
1356 (bfd_mach_o_wide_p): Ditto.
1357 (bfd_mach_o_convert_section_name_to_bfd): Add prefix only for
1358 weird names.
1359 (bfd_mach_o_convert_section_name_to_mach_o): Fix typo in comment.
1360 Search in the list only if the name starts with a dot.
1361 (bfd_mach_o_write_header): Use mach_o_wide_p instead of hard-coded
1362 test. Check bfd_seek status.
1363 (bfd_mach_o_scan_write_thread): Check bfd_seek status.
1364 (bfd_mach_o_scan_write_section_32): Ditto.
1365 (bfd_mach_o_scan_write_section_64): Ditto.
1366 (bfd_mach_o_scan_write_section): Removed.
1367 (bfd_mach_o_scan_write_segment): Split into ...
1368 (bfd_mach_o_scan_write_segment_32): ... this and ...
1369 (bfd_mach_o_scan_write_segment_64): ... this. Check bfd_seek status.
1370 (bfd_mach_o_scan_write_symtab_symbols): Moved into ...
1371 (bfd_mach_o_scan_write_symtab): ... this. Write symtab from BFD
1372 symbol table. Now returns a boolean.
1373 (bfd_mach_o_write_contents): Set filetype. Check bfd_seek status.
1374 Adjust for status type.
1375 (bfd_mach_o_build_commands): Use mach_o_wide_p instead of hard-coded
1376 test. Write symbol table. Numbers the sections.
1377 (bfd_mach_o_read_header): Check bfd_seek status.
1378 Use mach_o_wide_p instead of hard-coded test.
1379 (bfd_mach_o_scan_read_section_32): Check bfd_seek status.
1380 (bfd_mach_o_scan_read_section_64): Ditto.
1381 (bfd_mach_o_scan_read_symtab_symbol): Ditto. Check bfd_seek status.
1382 Use BFD_MACH_O_N_TYPE instead of hard-coded value. Correctly
1383 handled common symbols.
1384 (bfd_mach_o_scan_read_symtab_strtab): Check bfd_seek status.
1385 (bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
1386 (bfd_mach_o_scan_read_dylinker): Ditto.
1387 (bfd_mach_o_scan_read_dylib): Ditto.
1388 (bfd_mach_o_scan_read_thread): Ditto.
1389 (bfd_mach_o_scan_read_symtab): Ditto.
1390 Do not create a section for the stabs.
1391 (bfd_mach_o_scan_read_uuid): Check bfd_seek status.
1392 (bfd_mach_o_scan_read_segment): Ditto.
1393 (bfd_mach_o_scan_read_command): Ditto.
1394 (bfd_mach_o_scan_start_address): Ditto.
1395 (bfd_mach_o_scan): Use mach_o_wide_p instead of hard-coded test.
1396 (bfd_mach_o_archive_p): Check bfd_seek status.
1397 (bfd_mach_o_core_fetch_environment): Ditto.
1398
1399 * mach-o-i386.c (bfd_mach_o_i386_mkobject): Don't set filetype.
1400
2a81c24a
L
14012009-06-06 H.J. Lu <hongjiu.lu@intel.com>
1402
1403 * elf32-i386.c (elf_i386_link_hash_table): Add irelifunc.
1404 (elf_i386_link_hash_table_create): Initialize irelifunc.
1405 (elf_i386_check_relocs): Updated. Set up irelifunc for
1406 shared objects.
1407 (elf_i386_allocate_dynrelocs): Use irelifunc for dynamic
1408 relocation for non-GOT reference of STT_GNU_IFUNC symbol in
1409 shared objects.
1410 (elf_i386_relocate_section): Likewise.
1411
1412 * elf64-x86-64.c (elf64_x86_64_link_hash_table): Add irelifunc.
1413 (elf64_x86_64_link_hash_table_create): Initialize irelifunc.
1414 (elf64_x86_64_check_relocs): Updated. Set up irelifunc for
1415 shared objects.
1416 (elf64_x86_64_allocate_dynrelocs): Use irelifunc for dynamic
1417 relocation for non-GOT reference of STT_GNU_IFUNC symbol in
1418 shared objects.
1419 (elf64_x86_64_relocate_section): Likewise.
1420
1421 * elf-bfd.h (_bfd_elf_create_static_ifunc_sections): Renamed to
1422 ...
1423 (_bfd_elf_create_ifunc_sections): This.
1424
c2f09c75 1425 * elflink.c (_bfd_elf_create_static_ifunc_sections): Renamed to
2a81c24a
L
1426 ...
1427 (_bfd_elf_create_ifunc_sections): This. Create .rel[a].ifunc
1428 for shared objects.
1429
710ab287
L
14302009-06-06 H.J. Lu <hongjiu.lu@intel.com>
1431
1432 * elf32-i386.c (elf_i386_check_relocs): Make room for dynamic
1433 relocation for R_386_32 against STT_GNU_IFUNC symbol when
1434 building shared object. Check info->executable instead of
1435 !info->shared when setting non_got_ref.
1436 (elf_i386_allocate_dynrelocs): Allocate dynamic relocation
1437 for non-GOT reference of STT_GNU_IFUNC symbol in shared
1438 object. Allocate GOT relocation agsinst STT_GNU_IFUNC
1439 symbol if needed.
1440 (elf_i386_relocate_section): Output dynamic relocation for
1441 R_386_32 against STT_GNU_IFUNC symbol to get the real
1442 function address when building shared object.
1443 (elf_i386_finish_dynamic_symbol): Output R_386_GLOB_DAT
1444 relocation for STT_GNU_IFUNC symbol in shared object.
1445
1446 * elf64-x86-64.c (elf64_x86_64_check_relocs): Make room for
1447 dynamic relocation for R_X86_64_64 against STT_GNU_IFUNC
1448 symbol when building shared object. Check info->executable
1449 instead of !info->shared when setting non_got_ref.
1450 (elf64_x86_64_allocate_dynrelocs): Allocate dynamic relocation
1451 for non-GOT reference of STT_GNU_IFUNC symbol in shared
1452 library. Allocate GOT relocation agsinst STT_GNU_IFUNC symbol
1453 if needed.
1454 (elf64_x86_64_relocate_section): Output dynamic relocation
1455 for R_X86_64_64 against STT_GNU_IFUNC symbol to get the real
1456 function address when building shared object.
1457 (elf64_x86_64_finish_dynamic_symbol): Output R_X86_64_GLOB_DAT
1458 relocation for STT_GNU_IFUNC symbol in shared object.
1459
9e93c730
JK
14602009-06-06 Jan Kratochvil <jan.kratochvil@redhat.com>
1461
1462 * Makefile.am: Run "make dep-am".
1463 (BFD32_BACKENDS): Add mach-o-i386.lo.
1464 (BFD32_BACKENDS_CFILES): Add mach-o-i386.c.
1465 * Makefile.in: Regenerate.
1466
74681fc4
AM
14672009-06-06 Alan Modra <amodra@bigpond.net.au>
1468
1469 * elf32-spu.c (spu_elf_relocate_section): Match overlay number
1470 when looking for soft-icache stubs.
1471
154a1ee5
TG
14722009-06-05 Tristan Gingold <gingold@adacore.com>
1473
1474 * mach-o.h: Update copyright year.
1475 (bfd_mach_o_mach_header_magic): New enum.
1476 (bfd_mach_o_cpu_subtype): Now an enum.
1477 (BFD_MACH_O_HEADER_SIZE, BFD_MACH_O_HEADER_64_SIZE): New macros.
1478 (BFD_MACH_O_SECTION_SIZE, BFD_MACH_O_SECTION_64_SIZE): Ditto.
1479 (BFD_MACH_O_LC_SEGMENT_SIZE, BFD_MACH_O_LC_SEGMENT_64_SIZE): Ditto.
1480 (bfd_mach_o_load_command): Field type_required is now a boolean.
1481 Reindent prototypes.
1482 (bfd_mach_o_object_p, bfd_mach_o_core_p): Remove.
1483 (bfd_mach_o_bfd_copy_private_symbol_data): Add a prototype.
1484 (bfd_mach_o_bfd_copy_private_section_data): Ditto.
1485 (bfd_mach_o_bfd_copy_private_bfd_data): Ditto.
1486 (bfd_mach_o_get_symtab_upper_bound): Ditto.
1487 (bfd_mach_o_canonicalize_symtab): Ditto.
1488 (bfd_mach_o_get_symbol_info): Ditto.
1489 (bfd_mach_o_print_symbol): Ditto.
1490 (bfd_mach_o_bfd_print_private_bfd_data): Ditto.
1491 (bfd_mach_o_make_empty_symbol): Ditto.
1492 (bfd_mach_o_write_contents): Ditto.
1493
1494 * mach-o.c (bfd_mach_o_object_p, bfd_mach_o_core_p,
1495 bfd_mach_o_mkobject): Defines.
1496 (bfd_mach_o_valid): Returns FALSE/TRUE instead of 0/1.
1497 Do not check with target vector but with flavour.
1498 (struct mach_o_section_name_xlat): New declaration.
1499 (dwarf_section_names_xlat): Ditto.
1500 (text_section_names_xlat): Ditto.
1501 (data_section_names_xlat): Ditto.
1502 (struct mach_o_segment_name_xlat): Ditto.
1503 (segsec_names_xlat): Ditto.
1504 (bfd_mach_o_convert_section_name_to_bfd): New function.
1505 (bfd_mach_o_convert_section_name_to_mach_o): Ditto.
1506 (bfd_mach_o_bfd_copy_private_symbol_data): Make it public.
1507 (bfd_mach_o_bfd_copy_private_section_data): Ditto.
1508 (bfd_mach_o_bfd_copy_private_bfd_data): Ditto.
1509 Accept any input and output flavour. Do not share private data
1510 anymore.
1511 (bfd_mach_o_count_symbols): Add a comment.
1512 (bfd_mach_o_get_symtab_upper_bound): Make it public.
1513 (bfd_mach_o_canonicalize_symtab): Ditto.
1514 (bfd_mach_o_get_symbol_info): Ditto.
1515 (bfd_mach_o_print_symbol): Ditto.
1516 (bfd_mach_o_write_header): Now returns a boolean instead of an int.
1517 Use constants instead of hard-coded values.
1518 (bfd_mach_o_scan_write_section_32): Use constants instead of hard-coded
1519 values.
1520 (bfd_mach_o_scan_write_section_64): Ditto.
1521 (bfd_mach_o_scan_write_segment): Ditto.
1522 Do not copy sections anymore.
1523 (bfd_mach_o_write_contents): Make it public.
1524 Remove dead code. Rewrite typeflag assignment.
1525 (bfd_mach_o_build_commands): New function.
1526 (bfd_mach_o_set_section_contents): Ditto.
1527 (bfd_mach_o_make_empty_symbol): Make it public.
1528 (bfd_mach_o_read_header): Make it static.
1529 Convert to bfd_boolean.
1530 Use constants instead of hard-coded values.
1531 (bfd_mach_o_make_bfd_section): Call
1532 bfd_mach_o_convert_section_name_to_bfd to create name.
1533 (bfd_mach_o_scan_read_section_32): Use constants instead of hard-coded
1534 values.
1535 (bfd_mach_o_scan_read_section_64): Ditto.
1536 (bfd_mach_o_scan_read_segment): Do not create a bfd section for
1537 a segment anymore. Use constants instead of hard-coded values.
1538 (bfd_mach_o_scan_read_command): Fix style.
1539 (bfd_mach_o_scan): Use constants instead of hard-coded values.
1540 Get rid of BFD_IO_FUNCS.
1541 (bfd_mach_o_mkobject_init): Renamed from bfd_mach_o_mkobject.
1542 (bfd_mach_o_header_p): Created from bfd_mach_o_object_p.
1543 (bfd_mach_o_gen_object_p): New function, replaces bfd_mach_o_object_p.
1544 (bfd_mach_o_object_p): Removed.
1545 (bfd_mach_o_gen_core_p): New function, replaces ...
1546 (bfd_mach_o_core_p): ... deleted.
1547 (bfd_mach_o_bfd_print_private_bfd_data): Make it public.
1548
1549 * mach-o-i386.c: New file.
1550 * config.bfd: Use mach_o_i386_vec as targ_defvec for ix86-darwin.
1551 * configure.in (TDEFINES): Add mach_o_i386_vec.
1552 * configure: Regenerated.
1553 * targets.c: Add mach_o_i386_vec.
1554
1555 * mach-o.c: Update copyright years.
1556 (BFD_IO_FUNCS): Remove (was not used).
1557 (bfd_mach_o_mkarchive, bfd_mach_o_read_ar_hdr, bfd_mach_o_slurp_armap
1558 bfd_mach_o_slurp_extended_name_table,
1559 bfd_mach_o_construct_extended_name_table,
1560 bfd_mach_o_truncate_arname, bfd_mach_o_write_armap,
1561 bfd_mach_o_get_elt_at_index, bfd_mach_o_generic_stat_arch_elt,
1562 bfd_mach_o_update_armap_timestamp, bfd_mach_o_close_and_cleanup,
1563 bfd_mach_o_bfd_free_cached_info, bfd_mach_o_new_section_hook,
1564 bfd_mach_o_get_section_contents_in_window,
1565 bfd_mach_o_bfd_is_local_label_name,
1566 bfd_mach_o_bfd_is_target_special_symbol,
1567 bfd_mach_o_bfd_is_local_label_name, bfd_mach_o_get_lineno,
1568 bfd_mach_o_find_nearest_line, bfd_mach_o_find_inliner_info,
1569 bfd_mach_o_bfd_make_debug_symbol, bfd_mach_o_read_minisymbols,
1570 bfd_mach_o_minisymbol_to_symbol,
1571 bfd_mach_o_bfd_get_relocated_section_contents,
1572 bfd_mach_o_bfd_relax_section, bfd_mach_o_bfd_link_hash_table_create,
1573 bfd_mach_o_bfd_link_hash_table_free, bfd_mach_o_bfd_link_add_symbols,
1574 bfd_mach_o_bfd_link_just_syms, bfd_mach_o_bfd_final_link,
1575 bfd_mach_o_bfd_link_split_section, bfd_mach_o_set_arch_mach,
1576 bfd_mach_o_bfd_merge_private_bfd_data,
1577 bfd_mach_o_bfd_set_private_flags, bfd_mach_o_get_section_contents,
1578 bfd_mach_o_bfd_gc_sections, bfd_mach_o_bfd_merge_sections,
1579 bfd_mach_o_bfd_is_group_section, bfd_mach_o_bfd_discard_group,
1580 bfd_mach_o_section_already_linked, bfd_mach_o_bfd_define_common_symbol,
1581 bfd_mach_o_bfd_copy_private_header_data,
1582 bfd_mach_o_core_file_matches_executable_p): Move these defines ...
1583 * mach-o-target.c: ... here.
1584 Update copyright years.
1585
a1ef399e
AM
15862009-06-04 Alan Modra <amodra@bigpond.net.au>
1587
1588 * dep-in.sed: Don't use \n in replacement part of s command.
1589 * Makefile.am (DEP1): LC_ALL for uniq.
1590 Run "make dep-am".
1591 * Makefile.in: Regenerate.
1592
2e75bb35
L
15932009-06-03 H.J. Lu <hongjiu.lu@intel.com>
1594
1595 * elf32-i386.c (elf_i386_allocate_dynrelocs): Remove check of
1596 h->plt.refcount > 0 on STT_GNU_IFUNC symbol.
1597 * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
1598
0018b0a3
L
15992009-06-03 H.J. Lu <hongjiu.lu@intel.com>
1600
1601 * elf32-i386.c (elf_i386_allocate_dynrelocs): Allocate
1602 GOT entry for STT_GNU_IFUNC symbol with pointer equality.
1603 (elf_i386_relocate_section): Adjust R_386_GOT32 relocation
1604 against STT_GNU_IFUNC symbols for static executables.
1605 (elf_i386_finish_dynamic_symbol): Load GOT entry with
1606 PLT entry for STT_GNU_IFUNC symbol with pointer equality.
1607
1608 * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Allocate
1609 GOT entry for STT_GNU_IFUNC symbol with pointer equality.
1610 (elf64_x86_64_finish_dynamic_symbol): Load GOT entry with
1611 PLT entry for STT_GNU_IFUNC symbol with pointer equality.
1612
94313f36
RS
16132009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1614
1615 * coff-rs6000.c (xcoff_ppc_relocate_section): Allow undefined
1616 symbols to be left unimported when linking statically.
1617 * xcofflink.c (xcoff_link_add_symbols): Ignore global linkage
1618 code when linking statically.
1619
7afd84dc
L
16202009-06-02 H.J. Lu <hongjiu.lu@intel.com>
1621
1622 * elf32-i386.c (elf_i386_check_relocs): Increment
1623 got.refcount for R_386_GOT32/R_386_GOTOFF relocations
1624 against STT_GNU_IFUNC symbol.
1625 (elf_i386_allocate_dynrelocs): Set got.refcount to 0 if
1626 local STT_GNU_IFUNC definition is used.
1627 (elf_i386_relocate_section): Handle got.offset != -1 for
1628 R_386_GOT32/R_386_GOTOFF relocations against STT_GNU_IFUNC
1629 symbol.
1630
1631 * elf64-x86-64.c (elf64_x86_64_check_relocs): Increment
1632 got.refcount for R_X86_64_GOTPCREL/R_X86_64_GOTPCREL64
1633 relocations against STT_GNU_IFUNC symbol.
1634 (elf64_x86_64_allocate_dynrelocs): Set got.refcount to 0 if
1635 local STT_GNU_IFUNC definition is used.
1636 (elf64_x86_64_relocate_section): Handle got.offset != -1
1637 for R_X86_64_GOTPCREL/R_X86_64_GOTPCREL64 relocations against
1638 STT_GNU_IFUNC symbol.
1639
cbe950e9
L
16402009-06-01 H.J. Lu <hongjiu.lu@intel.com>
1641
1642 PR ld/10205
1643 * elf32-i386.c (elf_howto_table): Add R_386_IRELATIVE.
1644 (elf_i386_reloc_type_lookup): Likewise.
1645 (R_386_tls): Removed.
1646 (R_386_irelative): New.
1647 (R_386_vt_offset): Updated.
1648 (elf_i386_rtype_to_howto): Likewise.
1649 (elf_i386_link_hash_table): Add igotplt, iplt and irelplt.
1650 (elf_i386_link_hash_table_create): Initialize igotplt,
1651 iplt and irelplt.
1652 (elf_i386_check_relocs): Handle STT_GNU_IFUNC symbol first.
1653 (elf_i386_adjust_dynamic_symbol): Likewise.
1654 (elf_i386_allocate_dynrelocs): Likewise.
1655 (elf_i386_relocate_section): Likewise.
1656 (elf_i386_size_dynamic_sections): Set up .iplt and .igot.plt
1657 sections.
1658 (elf_i386_finish_dynamic_symbol): When building a static
1659 executable, use .iplt, .igot.plt and .rel.iplt sections for
1660 STT_GNU_IFUNC symbols. Generate R_386_IRELATIVE relocation for
1661 locally defined STT_GNU_IFUNC symbol.
1662
1663 * elf64-x86-64.c (x86_64_elf_howto): Add R_X86_64_IRELATIVE.
1664 (x86_64_reloc_map): Likewise.
1665 (R_X86_64_standard): Updated.
1666 (elf64_x86_64_link_hash_table): Add igotplt, iplt and irelplt.
1667 (elf64_x86_64_link_hash_table_create): Initialize igotplt,
1668 iplt and irelplt.
1669 (elf64_x86_64_check_relocs): Handle STT_GNU_IFUNC symbol first.
1670 (elf64_x86_64_adjust_dynamic_symbol): Likewise.
1671 (elf64_x86_64_allocate_dynrelocs): Likewise.
1672 (elf64_x86_64_relocate_section): Likewise.
1673 (elf64_x86_64_size_dynamic_sections): Set up .iplt and .igot.plt
1674 sections.
1675 (elf64_x86_64_finish_dynamic_symbol): When building a static
1676 executable, use .iplt, .igot.plt and .rela.iplt sections for
1677 STT_GNU_IFUNC symbols. Generate R_X86_64_IRELATIVE relocation
1678 for locally defined STT_GNU_IFUNC symbol.
1679
1680 * reloc.c (BFD_RELOC_386_IRELATIVE): New.
1681 (BFD_RELOC_X86_64_IRELATIVE): Likewise.
1682
1683 * bfd-in2.h: Regenerated.
1684 * libbfd.h: Likewise.
1685
3aa14d16
L
16862009-06-01 H.J. Lu <hongjiu.lu@intel.com>
1687
1688 * elf-bfd.h (struct bfd_elf_section_data): Remove indirect_relocs.
1689 (_bfd_elf_make_ifunc_reloc_section): Removed.
1690 (_bfd_elf_is_ifunc_symbol): Likewise.
1691 (_bfd_elf_create_static_ifunc_sections): New.
1692
1693 * elflink.c (_bfd_elf_adjust_dynamic_symbol): Move STT_GNU_IFUNC
1694 symbol check to ...
1695 (elf_link_add_object_symbols): Here.
1696 (_bfd_elf_link_hash_hide_symbol): Don't clean plt on
1697 STT_GNU_IFUNC symbol.
1698 (elf_link_output_extsym): Call elf_backend_finish_dynamic_symbol
1699 if a STT_GNU_IFUNC symbol is referenced in a non-shared object.
1700 (IFUNC_INFIX): Removed.
1701 (get_ifunc_reloc_section_name): Likewise.
1702 (_bfd_elf_make_ifunc_reloc_section): Likewise.
1703 (_bfd_elf_is_ifunc_symbol): Likewise.
1704 (_bfd_elf_create_static_ifunc_sections): New.
1705
eb4ff4d6
L
17062009-05-29 H.J. Lu <hongjiu.lu@intel.com>
1707
1708 * elf32-i386.c (link_hash_newfunc): Add elf_i386_ prefix.
1709 (create_got_section): Likewise.
1710 (allocate_dynrelocs): Likewise.
1711 (readonly_dynrelocs): Likewise.
1712 (set_tls_module_base): Likewise.
1713 (dtpoff_base): Likewise.
1714 (tpoff): Likewise.
1715 (elf_i386_link_hash_table_create): Updated.
1716 (elf_i386_create_dynamic_sections): Likewise.
1717 (elf_i386_check_relocs): Likewise.
1718 (elf_i386_size_dynamic_sections): Likewise.
1719 (elf_i386_relocate_section): Likewise.
1720
1721 * elf64-x86-64.c (link_hash_newfunc): Add elf64_x86_64_ prefix.
1722 (create_got_section): Likewise.
1723 (allocate_dynrelocs): Likewise.
1724 (readonly_dynrelocs): Likewise.
1725 (set_tls_module_base): Likewise.
1726 (dtpoff_base): Likewise.
1727 (tpoff): Likewise.
1728 (elf64_x86_64_link_hash_table_create): Updated.
1729 (elf64_x86_64_create_dynamic_sections): Likewise.
1730 (elf64_x86_64_check_relocs): Likewise.
1731 (elf64_x86_64_size_dynamic_sections): Likewise.
1732 (elf64_x86_64_relocate_section): Likewise.
1733
fc579192
NC
17342009-05-28 Nick Clifton <nickc@redhat.com>
1735
1736 * targets.c (_bfd_target_vector): Only include plugin target in
1737 all-targets build if BFD_SUPPORTS_PLUGINS is non-zero.
1738
5ebe2858
UW
17392009-05-28 Ulrich Weigand <uweigand@de.ibm.com>
1740
1741 * elf32-spu.c (struct call_info): New member broken_cycle.
1742 (remove_cycle): Instead of physically removing call_info structures
1743 to break call graph cycles, mark them using the broken_cycle flag.
1744 (mark_overlay_section): Respect broken_cycle flag.
1745 (unmark_overlay_section): Likewise.
1746 (collect_lib_sections): Likewise.
1747 (collect_overlays): Likewise.
1748 (sum_stack): Likewise.
1749
34ad4cb0
UW
17502009-05-28 Ulrich Weigand <uweigand@de.ibm.com>
1751
1752 * elf32-spu.c (insert_callee): Accumulate incoming callee->count.
1753 (mark_functions_via_relocs): Initialize callee->count to 1.
1754 (pasted_function): Likewise.
1755 (spu_elf_auto_overlay): Honor call counts when determining number
1756 of stubs required in software i-cache mode.
1757
fc579192
NC
17582009-05-27 Rafael Avila de Espindola <espindola@google.com>
1759
1760 * plugin.c (program_name): Remove.
1761 (plugin_program_name): New.
1762 (bfd_plugin_set_program_name): New.
1763 (try_load_plugin): Use plugin_program_name.
1764 * plugin.h (bfd_plugin_set_program_name): New.
1765
17662009-05-27 Rafael Avila de Espindola <espindola@google.com>
5691d22d
NC
1767
1768 * aclocal.m4: Include ../config/plugins.m4.
1769 * configure.in: Use AC_PLUGINS.
1770 * configure: Regenerate.
1771 * Makefile.in: Regenerate.
1772 * doc/Makefile.in: Regenerate.
1773
c8a1f254
NS
17742009-05-27 Nathan Sidwell <nathan@codesourcery.com>
1775
1776 * elf32-ppc.c (ppc_elf_relax_section): Work with a partial
1777 link.
1778 * bout.c (b_out_bfd_relax_section): Reject relocatable links.
1779 * elf32-m10300.c (mn10300_elf_relax_section): Likewise.
1780 * elf32-avr.c (elf32_avr_relax_section): Likewise.
1781 * elf32-frv.c (elf32_avr_relax_section): Likewise.
1782 * elf32-xtensa.c (elf_xtensa_relax_section): Likewise.
1783 * elf64-mmix.c (mmix_elf_relax_section): Likewise.
1784 * elfxx-ia64.c (elfNN_ia64_relax_section): Likewise.
1785 * elfxx-sparc.c (_bfd_sparc_elf_relax_section): Likewise.
1786 * reloc.c (bfd_generic_relax_section): Likewise.
1787 * reloc16.c (bfd_coff_reloc16_relax_section): Likewise.
1788 * vms.c (vms_bfd_relax_section): Likewise.
1789
68d7e96a
L
17902009-05-26 H.J. Lu <hongjiu.lu@intel.com>
1791
1792 * elf-bfd.h (_bfd_elf_is_ifunc_symbol): New.
1793
1794 * elf32-i386.c (is_indirect_symbol): Renamed to ...
1795 * elflink.c (_bfd_elf_is_ifunc_symbol): This.
1796
1797 * elf32-i386.c (allocate_dynrelocs): Updated.
1798 (elf_i386_relocate_section): Likewise.
1799 * elf64-x86-64.c (allocate_dynrelocs): Likewise.
1800 (elf64_x86_64_relocate_section): Likewise.
1801
1802 * elf64-x86-64.c (is_indirect_symbol): Removed.
1803
f12e7348
NC
18042009-05-26 Nick Clifton <nickc@redhat.com>
1805
1806 * po/id.po: Updated Indonesian translation.
1807
ce3c775b
NC
18082009-05-26 Rafael Avila de Espindola <espindola@google.com>
1809
1810 * Makefile.am: Run "make dep-am".
1811 (AM_CPPFLAGS): New.
1812 (LIBDL): New.
1813 (ALL_MACHINES): Add cpu-plugin.lo.
1814 (ALL_MACHINES_CFILES): Add cpu-plugin.c.
1815 (BFD32_BACKENDS): Add plugin.lo.
1816 (BFD32_BACKENDS_CFILES): Add plugin.c.
1817 (libbfd_la_LIBADD): Add LIBDL
1818 * archures.c (bfd_architecture): Add bfd_arch_plugin.
1819 (bfd_plugin_arch): Declare.
1820 * bfd-in.h (BFD_SUPPORTS_PLUGINS): New.
1821 * bfd.c (bfd): Add plugin_data.
1822 * config.bfd: Handle the plugin target.
1823 * configure.in: Check for --enable-plugins.
1824 (LT_INIT): Use the dlopen option.
1825 * cpu-plugin.c: New.
1826 * plugin.c: New.
1827 * plugin.h: New.
1828 * targets.c (plugin_vec): Declare.
1829 (_bfd_target_vector): Add plugin_vec.
1830 * Makefile.in: Regenerate.
1831 * bfd-in2.h: Regenerate.
1832 * configure: Regenerate.
1833
9e097a72
AM
18342009-05-26 Alan Modra <amodra@bigpond.net.au>
1835
1836 * dep-in.sed: Don't modify .o to .lo here. Output one filename
1837 per line with all lines having continuation backslash. Prefix
1838 first line with "A", following lines with "B".
1839 * Makefile.am (DEP): Don't use dep.sed here.
1840 (DEP1): Run $MKDEP on single files, modify .o to .lo here. Use
1841 dep.sed here on dependencies, sort and uniq.
1842 * Makefile.in: Regenerate.
1843
d5acff2f
TG
18442009-05-25 Tristan Gingold <gingold@adacore.com>
1845
1846 * makefile.vms: Add verilog.obj to object list OBJS.
1847
5c93f09b
AM
18482009-05-24 Alan Modra <amodra@bigpond.net.au>
1849
1850 * bfdio.c (bfd_seek): Formatting. Ensure newly allocated memory
1851 for BFD_IN_MEMORY is cleared.
1852 (bfd_bwrite): Zero excess memory allocated.
1853
48229727
JB
18542009-05-22 Julian Brown <julian@codesourcery.com>
1855
1856 * elf32-arm.c (THUMB16_BCOND_INSN, THUMB32_INSN, THUMB32_B_INSN): New
1857 macros.
1858 (elf32_arm_stub_a8_veneer_b_cond, elf32_arm_stub_a8_veneer_b)
1859 (elf32_arm_stub_a8_veneer_blx): New stub sequences.
1860 (elf32_arm_stub_type): Add arm_stub_a8_veneer_b_cond,
1861 arm_stub_a8_veneer_b and arm_stub_a8_veneer_blx.
1862 (elf32_arm_stub_hash_entry): Add target_addend, orig_insn fields.
1863 (a8_erratum_fix, a8_erratum_reloc): New structs.
1864 (elf32_arm_link_hash_table): Add a8_erratum_fixes,
1865 num_a8_erratum_fixes, fix_cortex_a8 fields.
1866 (elf32_arm_link_hash_table_create): Zero fix_cortex_a8.
1867 (elf32_arm_add_stub): Split into two parts, creating...
1868 (elf32_arm_create_or_find_stub_sec): New function.
1869 (elf32_arm_final_link_relocate): Add forward declaration.
1870 (arm_build_one_stub): Add support for THUMB32_TYPE, Thumb-2
1871 relocations, multiple relocations per stub.
1872 (find_stub_size_and_template): New (using parts of arm_size_one_stub).
1873 (arm_size_one_stub): Use find_stub_size_and_template.
1874 (a8_reloc_compare): New.
1875 (find_thumb_glue): Add forward declaration.
1876 (cortex_a8_erratum_scan): New.
1877 (elf32_arm_size_stubs): Add Cortex-A8 erratum workaround support.
1878 (bfd_elf32_arm_set_cortex_a8_fix): New.
1879 (bfd_elf32_arm_set_target_relocs): Add fix_cortex_a8 argument.
1880 (arm_map_one_stub): Add THUMB32_TYPE support.
1881 (a8_branch_to_stub_data): New.
1882 (make_branch_to_a8_stub): New.
1883 (elf32_arm_write_section): Add Cortex-A8 erratum workaround support.
1884 * bfd-in.h (bfd_elf32_arm_set_cortex_a8_fix): New.
1885 (bfd_elf32_arm_set_target_relocs): Add argument for controlling
1886 Cortex-A8 erratum workaround.
1887 * bfd-in2.h: Regenerate.
1888
2b3decb5
AM
18892009-05-22 Alan Modra <amodra@bigpond.net.au>
1890
1891 * Makefile.am: Run "make dep-am".
1892 * Makefile.in: Regenerate.
1893 * po/SRC-POTFILES.in: Regenerate.
1894
930e005c
AM
18952009-05-21 Alan Modra <amodra@bigpond.net.au>
1896
1897 * elflink.c (elf_link_input_bfd): Correct *pindex change in last
1898 commit.
1899
6e0b88f1
AM
19002009-05-21 Alan Modra <amodra@bigpond.net.au>
1901
1902 * elf-bfd.h (struct elf_backend_data
1903 <elf_backend_link_output_symbol_hook>): Return an int.
1904 * elf64-ppc.c (ppc64_elf_output_symbol_hook): Return 2 to drop
1905 symbols on deleted .opd entries.
1906 * elflink.c (elf_link_output_sym): Return without outputting sym
1907 if output_symbol_hook returns 2.
1908 (elf_link_output_extsym): Don't assign h->indx when symbol discarded.
1909 Abort if we must not discard sym.
1910 (elf_link_input_bfd): Similarly, don't set finfo->indices for
1911 local syms.
1912 (bfd_elf_final_link): Adjust elf_link_output_sym calls.
1913 * elf-vxworks.c (elf_vxworks_link_output_symbol_hook): Adjust for
1914 elf_backend_link_output_symbol_hook return type change.
1915 * elf32-arm.c (output_arch_syminfo): Likewise.
1916 (elf32_arm_output_map_sym, elf32_arm_output_stub_sym): Likewise.
1917 (elf32_arm_output_arch_local_syms): Likewise.
1918 * elf32-cr16c.c (elf32_cr16c_link_output_symbol_hook): Likewise.
1919 * elf32-score.c (s3_bfd_score_elf_link_output_symbol_hook): Likewise.
1920 (bfd_score_elf_link_output_symbol_hook): Likewise.
1921 * elf32-score.h (s7_bfd_score_elf_link_output_symbol_hook): Likewise.
1922 * elf32-score7.c (s7_bfd_score_elf_link_output_symbol_hook): Likewise.
1923 * elf32-sh64.c (sh64_elf_link_output_symbol_hook): Likewise.
1924 * elf32-spu.c (spu_elf_output_symbol_hook): Likewise.
1925 * elf32-v850.c (v850_elf_link_output_symbol_hook): Likewise.
1926 * elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Likewise.
1927 * elf64-mmix.c (mmix_elf_link_output_symbol_hook): Likewise.
1928 * elf64-sh64.c (sh64_elf64_link_output_symbol_hook): Likewise.
1929 * elf64-sparc.c (elf64_sparc_output_arch_syms): Likewise.
1930 * elfxx-mips.c (_bfd_mips_elf_link_output_symbol_hook): Likewise.
1931 * elfxx-mips.h (_bfd_mips_elf_link_output_symbol_hook): Likewise.
1932
5ef11c02
AM
19332009-05-21 Alan Modra <amodra@bigpond.net.au>
1934
1935 * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't segfault on
1936 out of range .opd symbols.
1937
ebf12fbe
DK
19382009-05-21 Dave Korn <dave.korn.cygwin@gmail.com>
1939
1940 * coffgen.c (coff_print_symbol): Use bfd_fprintf_vma, not
1941 fprintf_vma directly.
1942 * peXXigen.c (pe_print_edata): Likewise.
1943 (pe_print_pdata): Likewise.
1944 (_bfd_XX_print_ce_compressed_pdata): Likewise.
1945 (_bfd_XX_print_private_bfd_data_common): Likewise.
1946
c1711530
DK
19472009-05-19 Dave Korn <dave.korn.cygwin@gmail.com>
1948
1949 * cofflink.c (process_embedded_commands): Ignore "-aligncomm".
1950
22a8f80e 19512009-05-15 Andrew Stubbs <ams@codesourcery.com>
164e7efc 1952 Paul Brook <paul@codesourcery.com>
22a8f80e
PB
1953
1954 * elf32-arm.c (elf32_arm_fix_exidx_coverage): Don't attempt to
1955 fix discarded sections.
1956
335bd8f2
UW
19572009-05-14 Ulrich Weigand <uweigand@de.ibm.com>
1958
1959 * elf32-spu.c (mark_overlay_section): Move .init and .fini
1960 sections into the software icache.
1961
cdc83fba
UW
19622009-05-14 Ulrich Weigand <uweigand@de.ibm.com>
1963
1964 * elf32-spu.c (build_stub): Always build "compact" sofware
1965 i-cache stubs.
1966
97fc8d84
UW
19672009-05-14 Ulrich Weigand <uweigand@de.ibm.com>
1968
1969 * elf32-spu.c (struct spu_link_hash_table): Add fromelem_size_log2.
1970 (spu_elf_setup): Initialize it.
1971 (spu_elf_size_stubs): Move .ovtab into .bss for software i-cache.
1972 Update to new-sytle cache manager data structures.
1973 (spu_elf_build_stubs): Generate new-style cache manager data
1974 structures and symbols.
1975 (spu_elf_auto_overlay): Update size computation.
1976
452de53c
UW
19772009-05-14 Ulrich Weigand <uweigand@de.ibm.com>
1978
1979 * elf32-spu.c (spu_elf_modify_segment_map): Move all PF_OVERLAY
1980 segments first amongst the program headers.
1981
d342a8b1
UW
19822009-05-14 Ulrich Weigand <uweigand@de.ibm.com>
1983
1984 * elf32-spu.c (spu_elf_relocate_section): Only encode overlay index
1985 into addresses for relocation types that look at high bits. Remove
1986 special handling of relocation overflow warnings.
1987
cc210763
UW
19882009-05-14 Ulrich Weigand <uweigand@de.ibm.com>
1989
1990 * elf32-spu.c (mark_functions_via_relocs): Handle cycles in the
1991 control flow graph between fragments of a function.
1992
c1ea05bb
UW
19932009-05-14 Ulrich Weigand <uweigand@de.ibm.com>
1994
1995 * elf32-spu.c (spu_elf_size_stubs): Even in software i-cache mode,
1996 generate only a 16-byte .toe section.
1997 (spu_elf_build_stubs, spu_elf_auto_overlay): Likewise.
1998
bbb0fc04
AM
19992009-05-14 Alan Modra <amodra@bigpond.net.au>
2000
2001 * elf32-spu.c (spu_elf_size_stubs): Split out section placement to..
2002 (spu_elf_place_overlay_data): ..here. New function.
2003 * elf32-spu.h (spu_elf_place_overlay_data): Declare.
2004
6e6718a3
AJ
20052009-05-13 Andrew Jenner <andrew@codesourcery.com>
2006
2007 * elf32-arm.c: Move sysdep.h to start of file.
2008
77ae44b0
AM
20092009-05-11 Ulrich Weigand <uweigand@de.ibm.com>
2010
2011 * elf32-spu.c (spu_elf_find_overlays): Don't use .ovl.init lma as
2012 start of overlays.
2013 (spu_elf_build_stubs): Don't define __icache_tagbase. Define
2014 __icache_tag_array and __icache_tag_array_size.
2015
51408ec2
AM
20162009-05-11 Masaki Muranaka <monaka@monami-software.com>
2017
2018 * elf32-bfin.c (bfin_bfd_reloc_type_lookup): Remove unnecessary
2019 ATTRIBUTE_UNUSED.
2020 (bfinfdpic_link_omit_section_dynsym): Likewise.
2021 (elf32_bfinfdpic_finish_dynamic_sections): Likewise.
2022
2468f9c9
PB
20232009-05-05 Paul Brook <paul@codesourcery.com>
2024
2025 * bfd-in.h (elf32_arm_fix_exidx_coverage): Add prototype.
2026 * bfd-in2.h: Regenerate.
2027 * elf32-arm.c (arm_unwind_edit_type, arm_unwind_table_edit): Define.
2028 (_arm_elf_section_data): Add text and exidx fields.
2029 (add_unwind_table_edit, get_arm_elf_section_data, adjust_exidx_size,
2030 insert_cantunwind_after, elf32_arm_fix_exidx_coverage, offset_prel31,
2031 copy_exidx_entry): New functions.
2032 (elf32_arm_write_section): Fixup .ARM.exidx contents.
2033
738a79f6
CL
20342009-05-05 Christophe lyon <christophe.lyon@st.com>
2035
2036 * elf32-arm.c (DEF_STUBS): New helper define.
2037 (DEF_STUB): Likewise.
2038 (stub_def): New type.
2039 (stub_definitions): New array, containing stub template pointers
2040 and sizes.
2041 (arm_size_one_stub): Make use of stub_definitions.
2042
09e2aba4
DK
20432009-05-04 Dave Korn <dave.korn.cygwin@gmail.com>
2044
2045 * elflink.c (find_version_for_sym): Remove from here, ...
2046 * linker.c (bfd_find_version_for_sym): ... rename, replace
2047 here, make public and update all callers.
2048 * bfd-in2.h: Regenerate.
2049
d8045f23
NC
20502009-04-30 Nick Clifton <nickc@redhat.com>
2051
2052 * elf-bfd.h (struct bfd_elf_section_data): Add indirect_relocs
2053 section pointer.
2054 (struct elf_obj_data): Add has_ifunc_symbols boolean.
2055 * elf.c (swap_out_syms): Convert BSF_GNU_INDIRECT_FUNCTION flags
2056 into a STT_GNU_IFUNC symbol type.
2057 (_bfd_elf_is_function_type): Accept STT_GNU_IFUNC as a function
2058 type.
2059 (_bfd_elf_set_osabi): Set the osasbi field to ELFOSABI_LINUX if
2060 the binary contains ifunc symbols.
2061 * elfcode.h (elf_slurp_symbol_table): Translate the STT_GNU_IFUNC
2062 symbol type into a BSF_GNU_INDIRECT_FUNCTION flag.
2063 * elf32-i386.c (is_indirect_function): New function.
2064 (elf_i386_check_relocs): Create an ifunc output section.
2065 (allocate_dynrelocs): Create dynamic relocs in the ifunc output
2066 section if necessary.
2067 (elf_i386_relocate_section): Emit a reloc against an ifunc symbol
2068 if necessary.
2069 (elf_i386_add_symbol_hook): New function. Set the
2070 has_ifunc_symbols field of the elf_obj_data structure if an ifunc
2071 symbol is encountered.
2072 (elf_backend_post_process_headers): Define.
2073 (elf_backend_add_symbol_hook): Define.
2074 (elf_i386_post_process_headers): Rename to
2075 elf_i388_fbsd_post_process_headers.
2076 * elf64-x86_64.c (IS_X86_64_PCREL_TYPE): New macro.
2077 (is_indirect_function): New function.
2078 (elf64_x86_64_check_relocs): Create an ifunc output section.
2079 (allocate_dynrelocs): Create dynamic relocs in the ifunc output
2080 section if necessary.
2081 (elf64_x86_64_relocate_section): Emit a reloc against an ifunc
2082 symbol if necessary.
2083 (elf_i386_add_symbol_hook): Set the has_ifunc_symbols field of the
2084 elf_obj_data structure if an ifunc symbol is encountered.
2085 (elf_backend_post_process_headers): Define.
2086 * elflink.c (_bfd_elf_adjust_dynamic_symbol): Always create a PLT
2087 if we have ifunc symbols to handle.
2088 (get_ifunc_reloc_section_name): New function. Computes the name
2089 for an ifunc section.
2090 (_bfd_elf_make_ifunc_reloc_section): New function. Creates a
2091 section to hold ifunc relocs.
2092 * syms.c (BSF_GNU_INDIRECT_FUNCTION): Define.
2093 (bfd_print_symbol_vandf): Handle ifunc symbols.
2094 (bfd_decode_symclass): Likewise.
2095 * bfd-in2.h: Regenerate.
2096
96c23d59
JM
20972009-04-30 Joseph Myers <joseph@codesourcery.com>
2098
2099 * elf32-arm.c (elf32_arm_check_relocs): Give errors for absolute
2100 MOVW and MOVT relocations in a shared library link.
2101
c067354b
NC
21022009-04-27 Anthony Green <green@moxielogic.com>
2103
2104 * verilog.c: New file.
2105 * Makefile.am (BFD32_LIBS): Add verilog.c.
2106 (BFD32_LIBS_CFILES): Add verilog.c.
2107 (verilog.lo): New build rule.
2108 * Makefile.in: Rebuilt.
2109 * targets.c: Add verilog support.
2110 * bfd.c (tdata union): Add Verilog private data field.
2111 * bfd-in2.h: Regenerate.
2112
325c681d
L
21132009-04-27 H.J. Lu <hongjiu.lu@intel.com>
2114
2115 * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Don't
2116 copy pe_opthdr.
2117
ba775898
DK
21182009-04-23 Matthias Klose <doko@ubuntu.com>
2119
2e28a5fc 2120 * peXXigen.c (_bfd_XXi_swap_sym_in): Initialize `name'.
ba775898 2121
155d87d7
CL
21222009-04-22 Christophe Lyon <christophe.lyon@st.com>
2123
2124 PR9743
2125 * elf32-arm.c (arm_type_of_stub): Handle R_ARM_THM_JUMP24,
2126 R_ARM_JUMP24 and R_ARM_PLT32 relocations.
2127 (elf32_arm_size_stubs): Likewise.
2128 (record_thumb_to_arm_glue): Deleted unused function.
2129 (bfd_elf32_arm_process_before_allocation): No longer handle
2130 R_ARM_THM_JUMP24, R_ARM_JUMP24 and R_ARM_PLT32 relocations here.
2131 (elf32_arm_final_link_relocate): Handle R_ARM_THM_JUMP24,
2132 R_ARM_JUMP24 and R_ARM_PLT32 relocations.
2133
3e6b1042
DJ
21342009-04-21 Daniel Jacobowitz <dan@codesourcery.com>
2135
2136 * elf32-arm.c (INTERWORK_FLAG): Check BFD_LINKER_CREATED.
2137 (elf32_arm_write_section): Declare early.
2138 (elf32_arm_size_stubs): Skip non-stub sections in the stub BFD.
2139 (arm_allocate_glue_section_space): Exclude empty sections.
2140 (ARM_GLUE_SECTION_FLAGS): Add SEC_LINKER_CREATED.
2141 (bfd_elf32_arm_add_glue_sections_to_bfd): Do not skip the stub
2142 BFD.
2143 (elf32_arm_output_glue_section, elf32_arm_final_link): New.
2144 (elf32_arm_merge_eabi_attributes): Skip the stub BFD.
2145 (elf32_arm_size_dynamic_sections): Allocate interworking
2146 sections here.
2147 (bfd_elf32_bfd_final_link): Define.
2148
4f360784
L
21492009-04-21 H.J. Lu <hongjiu.lu@intel.com>
2150
2151 * coff-ia64.c (COFF_PAGE_SIZE): Changed to 8K.
154a1ee5 2152
4f360784
L
2153 * coffcode.h (coff_compute_section_file_positions): Clear
2154 D_PAGED if PE section alignment is smaller than COFF_PAGE_SIZE.
2155
2156 * libcoff-in.h (pe_tdata): Remove force_minimum_alignment and
2157 force_minimum_alignment.
2158
2159 * libcoff.h: Regenerated.
2160
2161 * pei-ia64.c (PEI_TARGET_SUBSYSTEM): Removed.
2162 (PEI_FORCE_MINIMUM_ALIGNMENT): Likewise.
2163
2164 * peicode.h (pe_mkobject): Don't set force_minimum_alignment
2165 nor target_subsystem.
2166
2167 * peXXigen.c (_bfd_XXi_swap_aouthdr_out): Don't check
2168 force_minimum_alignment nor target_subsystem.
2169
e48570bb
DK
21702009-04-21 Kai Tietz <kai.tietz@onevision.com>
2171
2172 * coff-x86_64.c (PEI_HEADERS): Protect includes.
2173 (bfd_pe_print_pdata): Remove #ifdef PE variation.
2174 * pei-x86_64.c (PEI_HEADERS): Define to prevent double
2175 include in coff-x86_64.c of headers.
2176 (PDATA_ROW_SIZE): New define.
2177 (pex_regs[]): New static array.
2178 (pex64_get_runtime_function): New static function.
2179 (pex64_get_unwind_info): Likewise.
2180 (pex64_get_scope_entry): Likewise.
2181 (pex64_xdata_print_uwd_codes): Likewise.
2182 (pex64_get_section_by_rva): Likewise.
2183 (pex64_dump_xdata): Likewise.
2184 (pex64_bfd_print_pdata): Likewise.
2185 (bfd_pe_print_pdata): Define as pex64_bfd_print_pdata.
2186 * peXXigen.c (_bfd_pex64_print_pdata): Removed implementation.
2187 * libpei.h (_bfd_pex64_print_pdata): Removed declaration.
2188
383c383f 21892009-04-19 Peter O'Gorman <binutils@mlists.thewrittenword.com>
4f360784
L
2190 Alan Modra <amodra@bigpond.net.au>
2191 Dave Korn <dave.korn.cygwin@gmail.com>
383c383f
AM
2192
2193 * peXXigen.c (_bfd_XXi_swap_sym_in): Fix name handling w.r.t
2194 long names and non-NUL-terminated strings.
2195
b6b450f1
L
21962009-04-17 H.J. Lu <hongjiu.lu@intel.com>
2197
2198 * bfd-in2.h: Regenerated.
2199
d9118602
L
22002009-04-17 H.J. Lu <hongjiu.lu@intel.com>
2201
2202 * peXXigen.c (_bfd_XX_print_private_bfd_data_common): Replace
2203 IMAGE_SUBSYSTEM_EFI_ROM with IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER.
2204
92dd4511
L
22052009-04-17 H.J. Lu <hongjiu.lu@intel.com>
2206
2207 PR binutils/10074
2208 * coffcode.h (bfd_pei_p): New.
2209
2210 * config.bfd: Remove bfd_efi_bsdrv_ia32_vec,
2211 bfd_efi_rtdrv_ia32_vec, bfd_efi_bsdrv_x86_64_vec,
2212 bfd_efi_rtdrv_x86_64_vec, bfd_efi_bsdrv_ia64_vec and
2213 bfd_efi_rtdrv_ia64_vec. Replace bfd_efi_app_ia32_vec,
2214 bfd_efi_app_x86_64_vec and bfd_efi_app_ia64_vec with
2215 i386pei_vec, x86_64pei_vec and bfd_pei_ia64_vec, respectively.
2216
2217 * configure.in: Remove bfd_efi_bsdrv_ia32_vec,
2218 bfd_efi_rtdrv_ia32_vec, bfd_efi_bsdrv_x86_64_vec,
2219 bfd_efi_rtdrv_x86_64_vec,
2220 bfd_efi_bsdrv_ia64_vec and bfd_efi_rtdrv_ia64_vec. Replace
2221 bfd_efi_ia64_vec with bfd_pei_ia64_vec.
2222 * targets.c: Likewise.
2223
2224 * configure: Regenerated.
2225 * libcoff.h: Likewise.
2226 * Makefile.in: Likewise.
2227
2228 * efi-app-ia32.c: Removed.
2229 * efi-app-x86_64.c: Likewise.
2230 * efi-bsdrv-ia32.c: Likewise.
2231 * efi-bsdrv-ia64.c: Likewise.
2232 * efi-bsdrv-x86_64.c: Likewise.
2233 * efi-rtdrv-ia32.c: Likewise.
2234 * efi-rtdrv-ia64.c: Likewise.
2235 * efi-rtdrv-x86_64.c: Likewise.
2236 * efi-rtdrv-ia32.c: Likewise.
2237
2238 * efi-app-ia64.c: Moved to ...
2239 * pei-ia64.c: This.
2240 (TARGET_SYM): Set to bfd_pei_ia64_vec.
2241 (TARGET_NAME): Set to pei-ia64.
2242
2243 * libpei.h (bfd_target_pei_p): Removed.
2244 (bfd_target_pei_arch): Likewise.
2245 (bfd_target_efi_app_p): Likewise.
2246 (bfd_target_efi_app_arch): Likewise.
2247 (bfd_target_efi_bsdrv_p): Likewise.
2248 (bfd_target_efi_bsdrv_arch): Likewise.
2249 (bfd_target_efi_rtdrv_p): Likewise.
2250 (bfd_target_efi_rtdrv_arch): Likewise.
2251 (bfd_pe_executable_p): Likewise.
2252
2253 * Makefile.am (BFD32_BACKENDS): Remove efi-app-ia32.lo,
2254 efi-bsdrv-ia32.lo and efi-rtdrv-ia32.lo.
2255 (BFD32_BACKENDS_CFILES): Remove efi-app-ia32.c, efi-bsdrv-ia32.c
2256 and efi-rtdrv-ia32.c.
2257 (BFD64_BACKENDS): Remove efi-app-ia64.lo, efi-bsdrv-ia64.lo,
2258 efi-rtdrv-ia64.lo, efi-app-x86_64.lo, efi-bsdrv-x86_64.lo and
2259 efi-rtdrv-x86_64.lo. Add pei-ia64.lo.
2260 (BFD64_BACKENDS_CFILES): Remove efi-app-ia64.c, efi-bsdrv-ia64.c,
2261 efi-rtdrv-ia64.c, efi-app-x86_64.c, efi-bsdrv-x86_64.c and
2262 efi-rtdrv-x86_64.c. Add pei-ia64.c.
2263 (efi-app-ia64.lo): Removed.
2264 (efi-bsdrv-ia32.lo): Likewise.
2265 (efi-rtdrv-ia32.lo): Likewise.
2266 (efi-app-ia64.lo): Likewise.
2267 (efi-bsdrv-ia64.lo): Likewise.
2268 (efi-rtdrv-ia64.lo): Likewise.
2269 (efi-app-x86_64.lo): Likewise.
2270 (efi-bsdrv-x86_64.lo): Likewise.
2271 (efi-rtdrv-x86_64.lo): Likewise.
2272 (pei-ia64.lo): New.
2273
2274 * peicode.h (coff_swap_scnhdr_in): Replace bfd_pe_executable_p
2275 with bfd_pei_p.
2276 (arch_type): Removed.
2277 (pe_arch): Likewise.
2278 (pe_bfd_object_p): Just return coff_object_p.
2279
2280 * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Replace
2281 bfd_pe_executable_p with bfd_pei_p.
2282
69c5861e
CL
22832009-04-17 Christophe Lyon <christophe.lyon@st.com>
2284
2285 * elf32-arm.c (elf32_arm_size_stubs): Handle long branches through
2286 PLT entries to an undefined symbol when generating a shared
2287 library.
2288
e9cd0660
NC
22892009-04-17 Nick Clifton <nickc@redhat.com>
2290
2291 PR 9909
2292 * coffcode.h (handle_COMDAT): Allow for external COMDAT symbols.
2293
3023e3f6
RS
22942009-04-16 Richard Sandiford <r.sandiford@uk.ibm.com>
2295
2296 * aout-adobe.c (aout_32_bfd_define_common_symbol): Define.
2297 * aout-target.h (MY_bfd_define_common_symbol): Likewise.
2298 * aout-tic30.c (MY_bfd_define_common_symbol): Likewise.
2299 * binary.c (binary_bfd_define_common_symbol): Likewise.
2300 * bout.c (b_out_bfd_define_common_symbol): Likewise.
2301 * coff-alpha.c (_bfd_ecoff_bfd_define_common_symbol): Likewise.
2302 * coff-mips.c (_bfd_ecoff_bfd_define_common_symbol): Likewise.
2303 * coffcode.h (coff_bfd_define_common_symbol): Likewise.
2304 * elfxx-target.h (bfd_elfNN_bfd_define_common_symbol): Likewise.
2305 * i386msdos.c (msdos_bfd_define_common_symbol): Likewise.
2306 * i386os9k.c (os9k_bfd_define_common_symbol): Likewise.
2307 * ieee.c (ieee_bfd_define_common_symbol): Likewise.
2308 * ihex.c (ihex_bfd_define_common_symbol): Likewise.
2309 * libbfd-in.h (_bfd_nolink_bfd_define_common_symbol): Likewise.
2310 * mach-o.c (bfd_mach_o_bfd_define_common_symbol): Likewise.
2311 * mmo.c (mmo_bfd_define_common_symbol): Likewise.
2312 * nlm-target.h (nlm_bfd_define_common_symbol): Likewise.
2313 * oasys.c (oasys_bfd_define_common_symbol): Likewise.
2314 * pef.c (bfd_pef_bfd_define_common_symbol): Likewise.
2315 * ppcboot.c (ppcboot_bfd_define_common_symbol): Likewise.
2316 * som.c (som_bfd_define_common_symbol): Likewise.
2317 * srec.c (srec_bfd_define_common_symbol): Likewise.
2318 * tekhex.c (tekhex_bfd_define_common_symbol): Likewise.
2319 * versados.c (versados_bfd_define_common_symbol): Likewise.
2320 * vms.c (vms_bfd_define_common_symbol): Likewise.
2321 * xcoff-target.h (_bfd_xcoff_bfd_define_common_symbol): Likewise.
2322 * xsym.c (bfd_sym_bfd_define_common_symbol): Likewise.
2323 * coff-rs6000.c (rs6000coff_vec): Add _bfd_xcoff_define_common_symbol.
2324 (pmac_xcoff_vec): Likewise.
2325 * coff64-rs6000.c (rs6000coff64_vec): Likewise.
2326 (aix5coff64_vec): Likewise.
2327 * linker.c (bfd_generic_define_common_symbol): New function.
2328 * targets.c (BFD_JUMP_TABLE_LINK): Add NAME##_bfd_define_common_symbol.
2329 (_bfd_define_common_symbol): New field.
2330 * libcoff-in.h (_bfd_xcoff_define_common_symbol): Declare.
2331 * xcofflink.c (_bfd_xcoff_define_common_symbol): New function.
2332 (xcoff_build_ldsyms): Don't set XCOFF_DEF_REGULAR for common
2333 symbols here.
2334 * bfd-in2.h: Regenerate.
2335 * libbfd.h: Likewise.
2336 * libcoff.h: Likewise.
2337
20135e4c
NC
23382009-04-15 Anthony Green <green@moxielogic.com>
2339
2340 * targets.c: Add moxie support.
2341 * Makefile.am: Ditto.
2342 * Makefile.in: Rebuilt.
2343 * cpu-moxie.c, elf32-moxie.c: New files.
2344 * archures.c: Add moxie support.
2345 * configure.in: Add moxie support.
2346 * configure: Rebuilt.
2347 * config.bfd, archures.c: Add moxie support.
2348 * bfd-in2.h: Rebuilt.
2349
82b5c97a
CL
23502009-04-15 Christophe Lyon <christophe.lyon@st.com>
2351
2352 * elf32-arm.c (elf32_arm_final_link_relocate): Don't convert ARM
2353 branch to an undef weak symbol into a jump to next instruction if
2354 a PLT entry will be created.
2355
0408dee6
DK
23562009-04-14 Dave Korn <dave.korn.cygwin@gmail.com>
2357
2358 * coffgen.c (make_a_section_from_file): Set the backend long
2359 section names enable if long section names found on input.
2360 * coffcode.h: Extend long section names documentation to match.
2361
a0c402a5
L
23622009-04-08 H.J. Lu <hongjiu.lu@intel.com>
2363
2364 * elflink.c (elf_link_add_object_symbols): Warn alternate ELF
2365 machine code.
2366
4d28413b
DD
23672009-04-07 DJ Delorie <dj@redhat.com>
2368
2369 * archures.c: Add bfd_mach_mep_c5.
2370 * bfd-in2.h: Likewise.
2371 * cpu-mep.c: Add bfd_c5_arch.
2372 * elf32-mep.c: Support it.
2373
bb6198d2
L
23742009-04-07 H.J. Lu <hongjiu.lu@intel.com>
2375
2376 * elflink.c (_bfd_elf_section_already_linked): Add `\n' for
2377 info->callbacks->einfo.
2378 * linker.c (_bfd_generic_section_already_linked): Likewise.
2379
bcb012d3
DD
23802009-04-06 DJ Delorie <dj@redhat.com>
2381
2382 * elf32-h8300.c (elf32_h8_relax_section): Relax MOVA opcodes.
2383
db1fe6e9
L
23842009-04-06 H.J. Lu <hongjiu.lu@intel.com>
2385
2386 * coff-x86_64.c (bfd_pe_print_pdata): Defined to
2387 _bfd_pex64_print_pdata only if PE is defined.
2388
2389 * libpei.h (_bfd_pep_print_x64_pdata): Renamed to ...
2390 (_bfd_pex64_print_pdata): This.
2391
2392 * peXXigen.c (_bfd_pep_print_x64_pdata): Renamed to ...
2393 (_bfd_pex64_print_pdata): This. Defined only if COFF_WITH_pex64
2394 is defined.
2395
c7c7219d
KT
23962009-04-05 Kai Tietz <kai.tietz@onevision.com>
2397
2398 * coff-x86_64.c (bfd_pe_print_pdata): Define as
2399 _bfd_pep_print_x64_pdata.
2400 * libpei.h (_bfd_pep_print_x64_pdata): Add prototype.
2401 * peXXigen.c (_bfd_pep_print_x64_pdata): New.
2402
3df502ae
SA
24032009-04-02 Sterling Augustine <sterling@jaw.hq.tensilica.com>
2404
154a1ee5 2405 * elf32-xtensa.c (relax_property_section): Always set r_offset
3df502ae
SA
2406 to zero.
2407
d3626fb0
CL
24082009-04-02 Christophe Lyon <christophe.lyon@st.com>
2409
2410 * elf32-arm.c (elf32_arm_stub_long_branch_v4t_thumb_thumb,
2411 elf32_arm_stub_long_branch_v4t_thumb_thumb_pic): Two new long
2412 branch stubs.
2413 (elf32_arm_stub_type): New enum values for the two new stubs.
2414 (arm_type_of_stub): Make use of the two new stubs.
2415 (arm_size_one_stub): Handle the two new stubs.
2416
fe723c87
MT
24172009-04-01 Matt Thomas <matt@netbsd.org>
2418
2419 * elf32-vax.c (elf_vax_check_relocs): Do not put relocations against
2420 hidden symbols into the GOT or PLT.GOT.
154a1ee5 2421 (elf_vax_relocate_section): Do not emit a PCREL reloc
fe723c87
MT
2422 into a shared object if it is against a hidden symbol.
2423
ee698300
RS
24242009-04-01 Richard Sandiford <r.sandiford@uk.ibm.com>
2425
2426 * xcofflink.c (xcoff_archive_info): Add contains_shared_object_p
2427 and know_contains_shared_object_p.
2428 (xcoff_archive_contains_shared_object_p): Add an "info" parameter.
2429 Cache the result in the archive_info table.
2430 (xcoff_auto_export_p): Add an "info" parameter and update the
2431 call to xcoff_archive_contains_shared_object_p.
2432 (xcoff_mark_auto_exports): Update accordingly.
2433 (xcoff_post_gc_symbol): Likewise.
2434
54e2dbe0
RS
24352009-04-01 Richard Sandiford <r.sandiford@uk.ibm.com>
2436
2437 * xcofflink.c (bfd_link_input_bfd): Treat __rtinit as C_HIDEXT
2438 rather than C_EXT.
2439
2e470849
RS
24402009-04-01 Richard Sandiford <r.sandiford@uk.ibm.com>
2441
2442 * coff-rs6000.c (member_layout): New structure.
2443 (archive_iterator): Likewise.
2444 (member_layout_init): New function.
2445 (archive_iterator_begin): Likewise.
2446 (archive_iterator_next): Likewise.
2447 (xcoff_write_armap_old): Use the new iterator functions.
2448 (do_shared_object_padding): Delete.
2449 (xcoff_write_armap_big): Use the new iterator functions. Simplify
2450 handling of arch_info.
2451 (xcoff_write_archive_contents_old): Allocate arelt_data in the
2452 first loop rather than the second. Allocate a member header if
2453 there isn't one, then work out the stat information and length
2454 in the first loop too. Use the new iterators for the second loop.
2455 (xcoff_write_archive_contents_big): Likewise.
2456
24c611d1
RS
24572009-04-01 Richard Sandiford <r.sandiford@uk.ibm.com>
2458
2459 * bfd-in.h (bfd_xcoff_split_import_path): Declare.
2460 (bfd_xcoff_set_archive_import_path): Likewise.
2461 * bfd-in2.h: Regenerate.
2462 * xcofflink.c: Include libiberty.h.
2463 (xcoff_archive_info): New structure.
2464 (xcoff_archive_info_hash): New function.
2465 (xcoff_archive_info_eq): Likewise.
2466 (xcoff_get_archive_info): Likewise.
2467 (_bfd_xcoff_bfd_link_hash_table_create): Initialize archive_info.
2468 (bfd_xcoff_split_import_path): New function.
2469 (bfd_xcoff_set_archive_import_path): Likewise.
2470 (xcoff_set_import_path): Move earlier in file.
2471 (xcoff_link_add_dynamic_symbols): Set the import path of a non-archive
2472 object to the the directory part of the bfd's filename. Get the
2473 import path and filename of an archive object from the archive's
2474 xcoff_tdata, initializing it if necessary. Update use of
2475 import_file_id.
2476 (bfd_link_input_bfd): Update use of import_file_id.
2477 (xcoff_write_global_symbol): Likewise.
2478
d286971a
RS
24792009-04-01 Richard Sandiford <r.sandiford@uk.ibm.com>
2480
2481 * xcofflink.c (xcoff_link_hash_table): Moved from include/coff/xcoff.h.
2482
24832009-04-01 Richard Sandiford <r.sandiford@uk.ibm.com>
2484
2485 * xcofflink.c (xcoff_link_create_extra_sections): Don't create
2486 a .loader section for relocatable links.
2487 (xcoff_need_ldrel_p): New function.
2488 (xcoff_mark): Use it.
2489 (bfd_xcoff_link_count_reloc): Only count loader relocs if there's
2490 a loader section.
2491 (xcoff_build_ldsym): New function, split out from...
2492 (xcoff_build_ldsyms): ...here. Rename to...
2493 (xcoff_post_gc_symbol): ...this. Only export symbols, and only
2494 call xcoff_build_ldsym, if there's a loader section.
2495 (xcoff_build_loader_section): New function, extracted verbatim from...
2496 (bfd_xcoff_size_dynamic_sections): ...here. Only call it if
2497 there's a loader section. Only add an __rtinit loader symbol
2498 if there's a loader section. Update after above name change.
2499 (xcoff_symbol_section, xcoff_create_ldrel): New functions.
2500 (bfd_link_input_bfd): Use xcoff_need_ldrel_p, xcoff_symbol_section
2501 and xcoff_create_ldrel.
2502 (xcoff_write_global_symbol): Use xcoff_create_ldrel.
2503 (xcoff_reloc_link_order): Likewise, but only call it if there's
2504 a loader section. Use xcoff_symbol_section.
2505 (_bfd_xcoff_bfd_final_link): Only use fdinfo.ldrel and fdinfo.ldsym
2506 if there's a loader section.
2507
8707bb87
RS
25082009-04-01 Richard Sandiford <rdsandiford@googlemail.com>
2509
2510 * xcofflink.c (bfd_link_input_bfd): Fix buffer overrun.
2511
e780aef2
CL
25122009-04-01 Christophe Lyon <christophe.lyon@st.com>
2513
2514 * elf32-arm.c (group_sections): Rewrite loops for better
2515 readability.
2516
c301e700
DD
25172009-03-30 DJ Delorie <dj@redhat.com>
2518
2519 * elflink.c (elf_link_input_bfd): Don't try to resolve complex
2520 relocs when doing a relocatable link.
2521
3895f852
MM
25222009-03-28 Mark Mitchell <mark@codesourcery.com>
2523
2524 * coff-arm.c (coff_arm_merge_private_bfd_data): Use "error:", not
2525 "ERROR:", in error messages.
2526 * cpu-arm.c (bfd_arm_merge_machines): Likewise.
2527 * elf-attrs.c (_bfd_elf_merge_object_attributes): Likewise.
2528 * elf32-arm.c (tag_cpu_arch_combine): Likewise.
2529 (elf32_arm_merge_eabi_attributes): Likewise.
2530 (elf32_arm_merge_private_bfd_data): Likewise.
2531
ea882e87
NC
25322009-03-27 Nick Clifton <nickc@redhat.com>
2533
2534 * section.c (bfd_get_section_contents): Detect and handle the case
2535 where a section has the SEC_IN_MEMORY flag set but no actual
2536 contents allocated.
2537
9433b9b1
AM
25382009-03-26 Alan Modra <amodra@bigpond.net.au>
2539
2540 PR 6494
2541 * elf.c (copy_elf_program_header): Do not check that PT_GNU_RELRO
2542 p_filesz and p_memsz are equal. Use p_memsz as the segment size.
2543 (assign_file_positions_for_non_load_sections): Zap PT_GNU_RELRO
2544 if we don't find matching PT_LOAD when copying.
2545
dc1aa734
SR
25462009-03-25 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
2547
2548 * elf32-crx.c (crx_elf_howto_table): Zero the src_mask field of
2549 the reloc descriptions.
2550
34d3d6b9
HPN
25512009-03-25 Hans-Peter Nilsson <hp@axis.com>
2552
2553 * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
2554 <R_CRIS_16_GOT_GD, case R_CRIS_32_GOT_GD>: Handle COMMON symbols.
2555 <case R_CRIS_16_TPREL, R_CRIS_32_TPREL>: Ditto.
2556
34274ccc
L
25572009-03-24 H.J. Lu <hongjiu.lu@intel.com>
2558
2559 * cpu-i386.c (bfd_x86_64_arch_intel_syntax): Make it static.
2560 (bfd_i386_arch_intel_syntax): Likewise.
2561 (i8086_arch): Likewise.
2562 (bfd_x86_64_arch): Likewise.
2563
019c5a2e
HPN
25642009-03-24 Hans-Peter Nilsson <hp@axis.com>
2565
6718f446
HPN
2566 * elf32-cris.c (cris_elf_relocate_section): <case
2567 R_CRIS_16_DTPREL, R_CRIS_32_DTPREL>: Allow use of non-local
2568 symbols for non-allocated sections. Don't check whether to
2569 generate R_CRIS_DTPMOD for non-allocated sections.
2570 (cris_elf_gc_sweep_hook) <case R_CRIS_32_DTPREL>: Don't
2571 handle relocation GC:ing if applied to non-allocated section.
2572 (cris_elf_check_relocs): Similar.
2573
019c5a2e
HPN
2574 * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
2575 <R_CRIS_16_GOT_GD, R_CRIS_32_GOT_GD>: Don't include the TLS size
2576 when emitting a known TP offset in the GOT.
2577
ffcfec52
AM
25782009-03-23 Alan Modra <amodra@bigpond.net.au>
2579
2580 * elf64-ppc.c (synthetic_opd): Delete.
2581 (compare_symbols): Look for .opd name rather than section match.
2582 (ppc64_elf_get_synthetic_symtab): Likewise.
2583
c6dd29ce
AM
25842009-03-21 Alan Modra <amodra@bigpond.net.au>
2585
2586 * elf32-ppc.c (is_pic_glink_stub): Delete.
2587 (is_nonpic_glink_stub): New function.
2588 (ppc_elf_get_synthetic_symtab): Check for last non-pic stub rather
2589 than first pic one.
2590 (struct ppc_elf_link_hash_table <glink_pltresolve>): Comment fix.
2591
8c21ca21
AK
25922009-03-20 Martin Schwidefsky <schwidefsky@de.ibm.com>
2593 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2594
2595 * elf32-s390.c (elf_s390_check_relocs): Use the SYMBOL_*
4f360784 2596 macros for visibilty and locality checks.
8c21ca21
AK
2597 (elf_s390_adjust_dynamic_symbol): Likewise.
2598 (allocate_dynrelocs): Likewise.
2599 (elf_s390_relocate_section): Likewise.
2600 (elf_s390_finish_dynamic_symbol): Likewise.
2601 * elf64-s390.c (elf_s390_check_relocs): Likewise.
2602 (elf_s390_adjust_dynamic_symbol): Likewise.
2603 (allocate_dynrelocs): Likewise.
2604 (elf_s390_relocate_section): Likewise.
2605 (elf_s390_finish_dynamic_symbol): Likewise.
2606
156621f3
KT
26072009-03-19 Kai Tietz <kai.tietz@onevision.com>
2608
2609 * bfd-in2.h: Regenerated.
2610 * coffcode.h (sec_to_styp_flags): For pe-coff add SEC_READONLY
2611 for debugging sections and map memory read/write dependent on
2612 SEC_COFF_NOREAD.
2613 (styp_to_sec_flags): Set SEC_COFF_NOREAD for sections
2614 without memory read flags set.
2615 * section.c: Add SEC_COFF_NOREAD to section flags.
2616
d1fa68d3
AS
26172009-03-19 Andreas Schwab <schwab@linux-m68k.org>
2618
2619 * elf32-hppa.c (final_link_relocate): Cast bfd_vma values to long
2620 for format string.
2621
ad2adbc8
AM
26222009-03-19 Alan Modra <amodra@bigpond.net.au>
2623
2624 * elf32-spu.c (spu_elf_find_overlays): Separate error return from
2625 "no overlays" return. If there are overlays, create overlay
2626 manager entry symbols here, so that..
2627 (spu_elf_build_stubs): ..we don't need to set them up here.
2628 Simplify entry symbol tests.
2629 * elf32-spu.h (spu_elf_find_overlays): Update prototype.
2630
67cc5033
MK
26312009-03-18 Mark Kettenis <kettenis@gnu.org>
2632
d1fa68d3 2633 * elf.c (elfcore_grok_openbsd_procinfo)
67cc5033
MK
2634 (elfcore_grok_openbsd_note): New functions.
2635 (elf_parse_notes): Handle notes from OpenBSD ELF core files.
2636
8d25cc3d
AM
26372009-03-18 Alan Modra <amodra@bigpond.net.au>
2638
3889c459 2639 * vms-hdr.c: Don't include alloca.h.
8d25cc3d
AM
2640 * elf32-m68hc1x.c: Include alloca-conf.h.
2641 * xsym.c: Likewise.
2642 * elf64-hppa.c: Likewise. Remove existing #if's handling alloca.
2643 * som.c: Likewise.
2644 * Makefile.am: Run "make dep-am".
2645 * Makefile.in: Regenerate.
2646
a89e6478
DJ
26472009-03-17 Daniel Jacobowitz <dan@codesourcery.com>
2648
2649 * elf32-arm.c (elf32_arm_check_relocs): Correct symbian_p test.
2650
a7e11ee1
AM
26512009-03-17 Alan Modra <amodra@bigpond.net.au>
2652
2653 * elf32-spu.h (struct spu_elf_params): ovly_flavour now only 1 bit.
2654 Add compact_stub.
2655 (emum _ovly_flavour): Delete ovly_compact, ovly_none.
2656 * elf32-spu.c (struct spu_link_hash_table): Replace ovly_load and
2657 ovly_return fields with ovly_entry[2]. Adjust all users.
2658 (spu_elf_find_overlays): Set ovly_entry[1] from __icache_call_handler
2659 when soft-icache.
2660 (spu_elf_build_stubs): Likewise.
2661 (ovl_stub_size): Change arg to spu_elf_params pointer. Adjust for
2662 ovly_flavour changes. Update all callers.
2663 (ovl_stub_size_log2): New function.
2664 (build_stub): Handle compact icache stubs. Use different manager
2665 entry point for stubs in non-icache area.
2666 (spu_elf_size_stubs): Don't allocate space for indirect branch
2667 descriptors.
2668 (spu_elf_build_stubs): And don't built them.
2669
607a83c9
AS
26702009-03-16 Andrew Stubbs <ams@codesourcery.com>
2671
2672 * dwarf2.c (read_section): Always use rawsize, if available.
2673
588f62fc
AM
26742009-03-16 Alan Modra <amodra@bigpond.net.au>
2675
2676 * simple.c (bfd_simple_get_relocated_section_contents): Use larger
2677 of rawsize and size for buffer.
2678
a14c90c1
UW
26792009-03-15 Ulrich Weigand <uweigand@de.ibm.com>
2680
2681 * elf32-spu.c (spu_elf_check_vma): Do not reset auto_overlay
2682 parameter just because fixed sections fit into local store.
2683 (spu_elf_auto_overlay): Do not declare as "noreturn". Skip
2684 generating overlays if fixed sections plus reserved stack
2685 and heap space fit into local store.
2686
30c665df
AM
26872009-03-15 Alan Modra <amodra@bigpond.net.au>
2688
2689 * elf32-spu.c (build_stub): Correct icache set_id.
2690 (spu_elf_relocate_section): Likewise.
2691
f95942a3
RS
26922009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2693
2694 * xcofflink.c (xcoff_link_check_archive_element): Only free the
2695 symbol table if it was created by the current call.
2696
670562e9
RS
26972009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2698
2699 * xcofflink.c (xcoff_build_ldsyms): Give imported descriptors
2700 class XMC_DS rather than XMC_UA.
2701
b64232cc
RS
27022009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2703
2704 * bfd-in.h (bfd_xcoff_size_dynamic_sections): Replace the
2705 bfd_boolean export_defineds parameter with an unsigned int
2706 auto_export_flags parameter.
2707 * bfd-in2.h: Regenerate.
2708 * xcofflink.c (xcoff_archive_contains_shared_object_p): New function,
2709 split out from xcoff_build_ldsyms.
2710 (xcoff_covered_by_expall_p): New function.
2711 (xcoff_auto_export_p): New function, split out from xcoff_build_ldsyms
2712 but with extra code to handle -bexpfull and -bexpall.
2713 (xcoff_mark_auto_exports): New function.
2714 (xcoff_build_ldsyms): Use xcoff_auto_export_p to decide whether
2715 a function should be automatically exported.
2716 (bfd_xcoff_size_dynamic_sections): Replace the export_defineds
2717 parameter with an auto_export_flags parameter. Update ldinfo
2718 accordingly. Use xcoff_mark_auto_exports to mark all automatically-
2719 exported symbols.
2720
7d504122
RS
27212009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2722
2723 * xcofflink.c (xcoff_mark_symbol_by_name): New function.
2724 (bfd_xcoff_size_dynamic_sections): Use it to mark the entry,
2725 init and fini functions. Do garbage collection for objects
2726 without an entry point too.
2727
8602d4fe
RS
27282009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2729
2730 * coffcode.h (coff_pointerize_aux_hook): Update CSECT_SYM_P to
2731 check whether a symbol has csect information.
2732 (coff_print_aux): Likewise.
2733 * coff-rs6000.c (_bfd_xcoff_swap_aux_in): Handle auxillary csect
2734 information for C_AIX_WEAKEXT too.
2735 (_bfd_xcoff_swap_aux_out): Likewise.
2736 (xcoff_reloc_type_br): Handle defweak symbols too.
2737 * coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Handle auxillary csect
2738 information for C_AIX_WEAKEXT too.
2739 (_bfd_xcoff64_swap_aux_out): Likewise.
2740 (xcoff64_reloc_type_br): Handle defweak symbols too.
2741 * coffgen.c (coff_print_symbol): Handle auxillary function
2742 information for C_AIX_WEAKEXT too.
2743 * xcofflink.c (_bfd_xcoff_canonicalize_dynamic_symtab): Set BSF_WEAK
2744 instead of BSF_GLOBAL if the L_WEAK flag is set.
2745 (xcoff_dynamic_definition_p): New function.
2746 (xcoff_link_add_dynamic_symbols): Use it to decide whether ldsym
2747 defines h. Don't change h if ldsym isn't the definition. Otherwise,
2748 always take the symbol class from the ldsym. Use weak bfd symbol
2749 types for weak ldsyms.
2750 (xcoff_link_add_symbols): Use CSECT_SYM_P and EXTERN_SYM_P.
2751 Fix the check for whether a definition is from a shared object.
2752 Allow redefinitions of weak symbols.
2753 (xcoff_link_check_ar_symbols): Use EXTERN_SYM_P.
2754 (xcoff_keep_symbol_p): Likewise.
2755 (bfd_xcoff_size_dynamic_sections): Use CSECT_SYM_P.
2756 (xcoff_link_input_bfd): Use CSECT_SYM_P and EXTERN_SYM_P.
2757 Add .loader entries for C_AIX_WEAKEXT as well as C_EXT symbols,
2758 but mark them as L_WEAK.
2759 (xcoff_write_global_symbol): Treat weak symbols as C_AIX_WEAKEXT
2760 instead of C_EXT if C_AIX_WEAKEXT == C_WEAKEXT.
2761
5b49f6dc
RS
27622009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2763
2764 * xcofflink.c (xcoff_mark): When walking the relocations,
2765 only mark the target symbol or the target section, not both.
2766 (xcoff_final_definition_p): New function.
2767 (xcoff_keep_symbol_p): Use it to check whether an external XCOFF
2768 symbol is a valid definition of the associated output symbol.
2769 Use XCOFF_ALLOCATED to stop the same hash table entry having
2770 two output symbols.
2771 (bfd_xcoff_size_dynamic_sections): Set XCOFF_ALLOCATED when
2772 keeping a symbol.
2773 (xcoff_link_input_bfd): Use xcoff_final_definition_p.
2774
c4037431
RS
27752009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2776
2777 * xcofflink.c (bfd_xcoff_import_symbol): Treat imported absolute
2778 symbols as XMC_XO.
2779
3df13c4a
RS
27802009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2781
2782 * libcoff-in.h (xcoff_tdata): Add a lineno_counts field.
2783 * libcoff.h: Regenerate.
2784 * xcofflink.c (xcoff_link_add_symbols): Record per-symbol
2785 line-number counts in the bfd's lineno_counts field.
2786 Don't keep per-csect line-number counts.
2787 (xcoff_sweep): Don't update per-csect line-number counts.
2788 (bfd_xcoff_size_dynamic_sections): Count the number of line-number
2789 entries in each output section.
2790 (xcoff_link_input_bfd): Get the number of line numbers from
2791 the bfd's lineno_counts field, rather than recalculating it
2792 from scratch. Fix the range check when updating C_BINCL and
2793 C_EINCL symbols.
2794 (_bfd_xcoff_bfd_final_link): Don't count the output line numbers
2795 here. Don't expect csects to have line-number counts.
2796
e450936a
RS
27972009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2798
2799 * libcoff-in.h (xcoff_tdata): Change debug_indices to a signed long.
2800 * libcoff.h: Regenerate.
2801 * xcofflink.c (xcoff_keep_symbol_p): New function, using the
2802 "skip" logic from xcoff_link_input_bfd.
2803 (bfd_xcoff_size_dynamic_sections): Explicitly skip dynamic
2804 objects in a dynamic link, rather than checking whether csectpp
2805 is null. Always allocate debug_index for other objects,
2806 and always go through the loop. Update the type of debug_index
2807 after the change above. Read the auxillary csect information
2808 and use xcoff_keep_symbol_p to decide whether a symbol should
2809 be kept. Set its debug_index to -2 if not.
2810 (xcoff_link_input_bfd): Update the type of debug_index after
2811 the change above and always expect it to be nonnull. Use it to
2812 test whether a symbol should be stripped, rather than making the
2813 decision here. Postpone all symbol creation to the second pass.
2814
47dfb2ca
RS
28152009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2816
2817 * xcofflink.c: (xcoff_mark_symbol): Mark the TOC section when
2818 creating a descriptor.
2819 (xcoff_sweep): Don't mark toc_section unless it's needed.
2820 (bfd_xcoff_size_dynamic_sections): Skip the toc_section
2821 when marking every bfd.
2822 (xcoff_link_input_bfd): Skip all TOC anchors.
2823 (xcoff_toc_section_p, xcoff_find_tc0): New functions.
2824 (_bfd_xcoff_bfd_final_link): Don't set the output bfd's TOC anchor
2825 to -1; call xcoff_find_tc0 instead.
2826
4cc02a02
RS
28272009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2828
2829 * libcoff-in.h (xcoff_section_tdata): Update commentary.
2830 * libcoff.h: Regenerate.
2831 * xcofflink.c (xcoff_link_add_symbols): Set the csect of XTY_ER
2832 symbols to bfd_und_section_ptr or bfd_abs_section_ptr, rather than
2833 the previous symbol's csect. Treat last_symndx as an inclusive value
2834 and simplify its handling.
2835 (xcoff_mark): Treat last_symndx as an inclusive value. Only mark
2836 symbols with the right csect. Don't mark rsec when processing
d1fa68d3 2837 relocations against undefined or absolute sections.
4cc02a02
RS
2838 (bfd_xcoff_size_dynamic_sections): Don't check the SEC_MARK flag
2839 of bfd_und_section_ptr.
2840 (xcoff_link_input_bfd): Likewise.
2841
858ef0ce
RS
28422009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2843
2844 * coff-rs6000.c (xcoff_ppc_relocate_section): Report relocations
2845 against undefined symbols if the symbol's XCOFF_WAS_UNDEFINED
2846 flag is set. Assert that all undefined symbols are either
2847 imported or defined by a dynamic object.
2848 * coff64-rs6000.c (xcoff64_ppc_relocate_section): Likewise.
2849 * xcofflink.c (xcoff_link_add_symbols): Extend function-symbol
2850 handling to all relocations. Only set XCOFF_CALLED for function
2851 symbols.
2852 (xcoff_find_function): New function, split out from...
2853 (bfd_xcoff_export_symbol) ...here.
2854 (xcoff_set_import_path): New function, split out from...
2855 (bfd_xcoff_import_symbol): ...here. Remove assertion for old
2856 meaning of XCOFF_CALLED.
2857 (xcoff_mark_symbol): If we mark an undefined and unimported
2858 symbol, find some way of defining it. If the symbol is a function
2859 descriptor, fill in its definition automatically. If the symbol
2860 is a function, mark its descriptor and allocate room for global
2861 linkage code. Otherwise mark the symbol as implicitly imported.
2862 Move the code for creating function descriptors from...
d1fa68d3 2863 (xcoff_build_ldsyms): ...here. Use XCOFF_WAS_UNDEFINED to
858ef0ce
RS
2864 check for symbols that were implicitly defined.
2865 (xcoff_mark): Don't count any dynamic relocations against
2866 function symbols.
2867 (bfd_xcoff_size_dynamic_sections): Save the rtld parameter
2868 in the xcoff link info.
2869 (xcoff_link_input_bfd): Remove handling of undefined and
2870 unexported symbols.
2871
12b2cce9
RS
28722009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2873
2874 * coff-rs6000.c (xcoff_reloc_type_br): Make the branch absolute
2875 if the target is absolute. Fix comment typo.
2876 (xcoff_ppc_relocate_section): Remove FIXME.
2877 * coff64-rs6000.c (xcoff64_reloc_type_br): Make the branch absolute
2878 if the target is absolute.
2879
0e3212ad
RS
28802009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2881
2882 * xcofflink.c (xcoff_mark, xcoff_link_input_bfd): Don't copy
2883 R_POS and R_NEG relocations against absolute symbols to the
2884 .loader section.
2885
d19d97e9
RS
28862009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2887
2888 * coff64-rs6000.c (xcoff64_write_object_contents): Set the cputype
2889 to 2 for bfd_mach_ppc_620.
2890
e5231592
RS
28912009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
2892
2893 * config.bfd: Treat AIX 6+ in the same way as AIX 5.
2894 * configure.in: Likewise.
2895 * configure: Regenerate.
2896
3516e984
L
28972009-03-13 H.J. Lu <hongjiu.lu@intel.com>
2898
2899 PR binutils/9945
2900 * elf.c (assign_section_numbers): Generate symbol table if there
2901 is any relocation in output.
2902 (_bfd_elf_compute_section_file_positions): Likewise.
2903
ce98a316
NC
29042009-03-13 Nick Clifton <nickc@redhat.com>
2905
2906 PR 9934
2907 * elf-bfd.h (NUM_SHDR_ENTRIES): Cope with an empty section.
2908 * elflink.c (elf_link_read_relocs_from_section): Use
2909 NUM_SHDR_ENTRIES. Gracefully handle the case where there are
2910 relocs but no symbol table.
2911 * elf32-arm.c (elf32_arm_check_relocs): Likewise.
2912
c4fb387b
L
29132009-03-12 H.J. Lu <hongjiu.lu@intel.com>
2914
2915 PR ld/9938
2916 * elf32-i386.c (elf_i386_check_tls_transition): Use strncmp
2917 to check ___tls_get_addr.
2918
2919 * elf64-x86-64.c (elf64_x86_64_check_tls_transition): Use
2920 strncmp to check __tls_get_addr.
2921
53638231
AS
29222009-03-12 Andrew Stubbs <ams@codesourcery.com>
2923
2924 * dwarf2.c (read_section): Always check the offset, even when the
2925 section has been read before.
2926
09e8c3bf
L
29272009-03-11 H.J. Lu <hongjiu.lu@intel.com>
2928
2929 * elf32-i386.c (elf_i386_check_tls_transition): Fix a typo in
2930 comments.
2931
36e4dce6
CD
29322009-03-11 Chris Demetriou <cgd@google.com>
2933
2934 * bfd.c (BFD_DETERMINISTIC_OUTPUT): New flag.
2935 * bfd-in2.h: Regenerate.
2936 * archive.c (bfd_ar_hdr_from_filesystem): If BFD_DETERMINISTIC_OUTPUT
2937 flag is set, use 0 for uid, gid, and timestamp, and use 0644 for file
2938 mode.
2939 (bsd_write_armap): Likewise.
2940 (_bfd_archive_bsd_update_armap_timestamp): If BFD_DETERMINISTIC_OUTPUT
2941 flag is set, do nothing.
2942 (coff_write_armap): If BFD_DETERMINISTIC_OUTPUT flag is set, use 0
2943 for timestamp.
2944
9b175a76
UW
29452009-03-11 Ulrich Weigand <uweigand@de.ibm.com>
2946
2947 * elf32-spu.c (find_function_stack_adjust): Handle sf instruction
2948 used to update stack pointer.
2949
f501de17
DA
29502009-03-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2951
2952 PR binutils/9921
2953 * som.c (som_bfd_derive_misc_symbol_info): Set symbol type ST_ABSOLUTE
2954 for unknown symbols in absolute section.
2955
d11fd249
NC
29562009-03-06 Nick Clifton <nickc@redhat.com>
2957
2958 * po/es.po: Updated Spanish translation.
2959
8cd931b7
CL
29602009-03-05 Christophe Lyon <christophe.lyon@st.com>
2961
2962 * elf32-arm.c (group_sections): Take next section size into
2963 account before accepting to group it.
2964
5fa9e92f
CL
29652009-03-05 Christophe Lyon <christophe.lyon@st.com>
2966
2967 * elf32-arm.c (arm_type_of_stub): Handle long branches targetting
2968 PLT entries.
2969 (elf32_arm_final_link_relocate): Likewise.
2970
b92997d6
AM
29712009-03-05 Moritz Kroll <Moritz.Kroll@gmx.de>
2972
2973 PR 9923
2974 * peXXigen.c (_bfd_XXi_final_link_postscript): Check h->root.type.
2975
727fc41e
AM
29762009-03-04 Alan Modra <amodra@bigpond.net.au>
2977
2978 * reloc.c (BFD_RELOC_PPC_TLSGD, BFD_RELOC_PPC_TLSLD): New.
2979 * section.c (struct bfd_section): Add has_tls_get_addr_call.
2980 (BFD_FAKE_SECTION): Init new flag.
2981 * ecoff.c (bfd_debug_section): Likewise.
2982 * bfd-in2.h: Regenerate.
2983 * libbfd.h: Regenerate.
2984 * elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_TLSGD and R_PPC_TLSLD.
2985 (ppc_elf_reloc_type_lookup): Handle new relocs.
2986 (ppc_elf_check_relocs): Set has_tls_get_addr_call on finding such
2987 without marker relocs.
2988 (ppc_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs
2989 if section has no old-style calls.
2990 (ppc_elf_relocate_section): Set tls_mask for non-tls relocs too.
2991 Don't try to optimize new-style __tls_get_addr call when handling
2992 arg setup relocs. Instead do so for R_PPC_TLSGD and R_PPC_TLSLD
2993 relocs.
2994 * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_TLSGD, R_PPC64_TLSLD.
2995 (ppc64_elf_reloc_type_lookup): Handle new relocs.
2996 (ppc64_elf_check_relocs): Set has_tls_get_addr_call on finding such
2997 without marker relocs.
2998 (ppc64_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs
2999 if section has no old-style calls. Set toc_ref for new relocs as
3000 appropriate.
3001 (ppc64_elf_relocate_section): Set tls_mask for non-tls relocs too.
3002 Don't try to optimize new-style __tls_get_addr call when handling
3003 arg setup relocs. Instead do so for R_PPC_TLSGD and R_PPC_TLSLD
3004 relocs.
3005
51dec227
AM
30062009-03-04 Alan Modra <amodra@bigpond.net.au>
3007
3008 PR 6768
3009 * configure.in: Test for ld --as-needed support. Link shared
3010 libbfd against libm.
3011 * configure: Regenerate.
3012
a1f7ca36
AM
30132009-03-03 Alan Modra <amodra@bigpond.net.au>
3014
3015 * Makefile.am: Run "make dep-am".
3016 * Makefile.in: Regenerate.
3017
c3b7224a
NC
30182009-03-02 Qinwei <qinwei@sunnorth.com.cn>
3019
3020 * elf32-score7.c: New file.
3021 * elf32-score.h: New file.
3022 * elf32-score.c: Add code to support score 7. Set score7 as the
3023 default.
3024 * cpu-score.c: Add score7 architecure.
3025 (compatibile): New function.
3026 * Makefile.am: Add rules for building elf32-score7 object.
3027 * Makefile.in: Regenerate.
3028 * configure.in: Add elf32-score7 object to score vectors.
3029 * configure: Regenerate.
3030 * reloc.c: Add score7 relocs.
3031 * archures.c: Add score3 and score7 machine numbers.
3032 * bfd-in2.h: Regenerate.
3033 * libbfd.h: Regenerate.
3034
58e24671
RW
30352009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3036
3037 * configure: Regenerate.
3038
5887528b
DA
30392009-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3040
d45b7d74
DA
3041 * elf32-hppa.c (hppa32_elf_local_refcounts): New function.
3042 (elf32_hppa_check_relocs): Use it.
3043
5887528b
DA
3044 * elf_hppa_add_symbol_hook (elf_hppa_add_symbol_hook): Move to
3045 elf64-hppa.c.
3046 (elf_hppa_unmark_useless_dynamic_symbols): Likewise.
3047 (elf_hppa_remark_useless_dynamic_symbols): Likewise.
3048 (elf_hppa_is_dynamic_loader_symbol): Likewise.
3049 (elf_hppa_record_segment_addrs): Likewise.
3050 (elf_hppa_final_link): Likewise.
3051 (elf_hppa_relocate_insn): Likewise.
3052 (elf_hppa_final_link_relocate): Likewise.
3053 (elf64_hppa_relocate_section): Likewise.
3054 * elf64-hppa.c: Insert above.
3055
a03bd320
DA
30562009-02-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3057
3058 * elf-hppa.h (elf_hppa_final_link): Use elf_hppa_final_link.
3059 (elf_hppa_final_link_relocate ): Rewrite eliminating dynamic hash table.
3060 (elf_hppa_relocate_section): Likewise.
3061 * elf64-hppa.c (struct elf64_hppa_link_hash_entry): Change to derive
3062 from struct elf_link_hash_entry. Add count field.
3063 (struct elf64_hppa_dyn_hash_table): Delete.
3064 (struct elf64_hppa_link_hash_table): Delete dyn_hash_table field.
3065 (elf64_hppa_hash_table): Rename to hppa_link_hash_table.
3066 (hppa_elf_hash_entry, eh_name): Define.
3067 (elf64_hppa_new_dyn_hash_entry): Delete.
3068 (elf64_hppa_dyn_hash_lookup): Delete.
3069 (elf64_hppa_dyn_hash_traverse): Delete.
3070 (get_dyn_name): Delete.
3071 (elf64_hppa_finalize_opd): Use struct elf_link_hash_entry * instead
3072 of struct elf64_hppa_dyn_hash_entry *.
3073 (elf64_hppa_finalize_dlt, llocate_global_data_dlt,
3074 allocate_global_data_plt, allocate_global_data_stub,
3075 allocate_global_data_opd, count_dyn_reloc, allocate_dynrel_entries):
3076 Likewise.
3077 (hppa64_link_hash_newfunc): New.
3078 (elf64_hppa_hash_table_create): Rework.
3079 (count_dyn_reloc): Likewise.
3080 (hppa64_elf_local_refcounts): New.
3081 (elf64_hppa_check_relocs): Rework using standard technique for recording
3082 local DLT, PLT and OPD reference counts.
3083 (elf64_hppa_dynamic_symbol_p): Revise using "eh" for struct
3084 elf_link_hash_entry *.
3085 (elf64_hppa_mark_exported_functions, allocate_global_data_dlt,
3086 allocate_global_data_plt, allocate_global_data_stub,
3087 allocate_global_data_opd, allocate_dynrel_entries,
3088 elf64_hppa_adjust_dynamic_symbol,
3089 elf64_hppa_mark_milli_and_exported_functions): Likewise.
3090 (elf64_hppa_create_dynamic_sections, elf64_hppa_size_dynamic_sections):
3091 Use hppa_link_hash_table. Rework.
3092 (elf64_hppa_link_output_symbol_hook): Rework.
3093 (elf64_hppa_finish_dynamic_symbol, elf64_hppa_finalize_opd,
3094 elf64_hppa_finalize_dlt, elf64_hppa_finalize_dynreloc,
3095 elf64_hppa_finish_dynamic_sections): Likewise.
3096
ebe24dd4
CL
30972009-02-26 Christophe Lyon <christophe.lyon@st.com>
3098
3099 * elf32-arm.c (stub_reloc_type): Removed.
3100 (insn_sequence): Renamed reloc_type field to r_type.
3101 (elf32_arm_stub_long_branch_v4t_arm_thumb_pic): New stub.
3102 (elf32_arm_stub_long_branch_v4t_thumb_arm_pic): Likewise.
3103 (elf32_arm_stub_long_branch_thumb_only_pic): Likewise.
3104 (elf32_arm_stub_type): Add new enum entries for the new stubs.
3105 (arm_stub_is_thumb): Catch new stubs.
3106 (arm_type_of_stub): Handle new stubs.
3107 (arm_size_one_stub): Use ARRAY_SIZE. Handle new stubs.
3108 (bfd_elf32_arm_process_before_allocation): Remove useless
3109 condition.
3110
b9d678e0
L
31112009-02-25 H.J. Lu <hongjiu.lu@intel.com>
3112
3113 * elf.c (elf_find_function): Use is_function_type to check
3114 function symbol.
3115
56fb3749
SA
31162009-02-24 Sterling Augustine <sterling@jaw.hq.tensilica.com>
3117
3118 * xtensa-modules.c: Revert to previous version 1.11 due
3119 to inadvertant commit.
3120
658ff993
SA
31212009-02-24 Sterling Augustine <sterling@tensilica.com>
3122
3123 * elf32-xtensa.c (text_action_add): Separate test for action
3124 type. Break if saved action is ta_widen_insn at same offset.
3125
cf3eccff
DJ
31262009-02-24 Daniel Jacobowitz <dan@codesourcery.com>
3127
3128 * elf32-arm.c (elf32_arm_stub_long_branch_any_any_pic): Rename
3129 to elf32_arm_stub_long_branch_any_arm_pic.
3130 (elf32_arm_stub_long_branch_any_thumb_pic): New.
3131 (enum elf32_arm_stub_type, arm_type_of_stub)
3132 (arm_size_one_stub): Handle any to ARM PIC and any to Thumb PIC
3133 separately.
3134
07d72278
DJ
31352009-02-24 Joseph Myers <joseph@codesourcery.com>
3136
3137 * elf32-arm.c (PREV_SEC): Update comment.
3138 (group_sections): Rename argument to stubs_always_after_branch.
3139 Reverse the list and place stubs at the end of input sections.
3140 Undefine NEXT_SEC.
3141 (elf32_arm_size_stubs): Update to use stubs_always_after_branch.
3142
4e31c731
DJ
31432009-02-23 Daniel Jacobowitz <dan@codesourcery.com>
3144
3145 * elf32-arm.c (arm_build_one_stub): Initialize stub_reloc_offset.
3146 Fix formatting.
3147 (arm_size_one_stub): Remove unnecessary break.
3148 (arm_map_one_stub): Fix formatting. Return after BFD_FAIL.
3149
31502009-02-23 Christophe Lyon <christophe.lyon@st.com>
461a49ca
DJ
3151
3152 * elf32-arm.c (stub_insn_type): New type.
3153 (stub_reloc_type): Likewise.
3154 (insn_sequence): Likewise.
3155 (elf32_arm_stub_long_branch_any_any): Encode using insn_sequence.
3156 (elf32_arm_stub_long_branch_v4t_arm_thumb): Likewise.
3157 (elf32_arm_stub_long_branch_thumb_only): Likewise.
3158 (elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise.
3159 (elf32_arm_stub_short_branch_v4t_thumb_arm): Likewise.
3160 (elf32_arm_stub_long_branch_any_any_pic): Likewise.
3161 (elf32_arm_stub_hash_entry): Add new helper fields.
3162 (stub_hash_newfunc): Initialize these new fields.
3163 (arm_build_one_stub): Encode Arm and Thumb instructions separately
3164 to take endianness into account.
3165 (arm_size_one_stub): Compute size of stubs using insn_sequence.
3166 (arm_map_one_stub): Code is now more generic, thanks to
3167 insn_sequence.
3168
c2b4a39d
CL
31692009-02-23 Christophe Lyon <christophe.lyon@st.com>
3170
3171 * elf32-arm.c (elf32_arm_stub_long_branch_thumb_only): Fix stub
3172 code.
3173 (elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise.
3174 (arm_type_of_stub): Use Thumb-only long branch stub (non-PIC) when
3175 BLX is not available. Fix typo in warning message. Add comments
3176 and improve formatting.
3177 (arm_build_one_stub): Adjust to new
3178 elf32_arm_stub_long_branch_v4t_thumb_arm stub.
3179 (arm_map_one_stub): Likewise.
3180
0c376465 31812009-02-23 Tristan Gingold <gingold@adacore.com>
a60a89d6
TG
3182 Eric Botcazou <ebotcazou@adacore.com>
3183 Douglas B Rupp <rupp@gnat.com>
0c376465
TG
3184
3185 * vms.h: Update copyright year, fix comments, reorder declarations.
3186 (_bfd_save_vms_section): Remove the prototype.
3187 (EGPS_S_V_NO_SHIFT): New constant.
3188 (bfd_vms_set_section_flags): New prototype.
3189 (EGPS_S_B_ALIGN, EGPS_S_W_FLAGS, EGPS_S_L_ALLOC, EGPS_S_B_NAMLNG): New
3190 constants.
3191 (EGSY_S_W_FLAGS): Ditto.
3192 (EGSY_S_V_QUAD_VAL): Ditto.
3193 (ESDF_S_L_VALUE, ESDF_S_L_PSINDX, ESDF_S_B_NAMLNG): Ditto.
3194 (EGST_S_W_FLAGS, EGST_S_Q_LP_1, EGST_S_Q_LP_2, EGST_S_L_PSINDX,
3195 EGST_S_B_NAMLNG): Ditto.
3196 (ESRF_S_B_NAMLNG): Ditto.
3197 (ETIR_S_C_HEADER_SIZE): Ditto.
3198 (EGPS_S_V_ALLOC_64BIT): Ditto.
3199 (DST_S_C_EPILOG): Ditto.
3200 (DST_S_C_SRC_SETLNUM_L, DST_S_C_SRC_SETLNUM_W) : Ditto.
3201 (DST_S_C_SRC_INCRLNUM_B): Ditto.
3202 (DST_S_B_PCLINE_UNSBYTE, DST_S_W_PCLINE_UNSWORD): Ditto.
3203 (DST_S_L_PCLINE_UNSLONG): Ditto.
3204 (DST_S_B_MODBEG_NAME, DST_S_L_RTNBEG_ADDRESS) : Ditto
3205 (DST_S_B_RTNBEG_NAME, DST_S_L_RTNEND_SIZE): Ditto
3206 (DST_S_C_SOURCE_HEADER_SIZE): Ditto.
3207 (DST_S_B_SRC_DF_LENGTH, DST_S_W_SRC_DF_FILEID): Ditto.
3208 (DST_S_B_SRC_DF_FILENAME, DST_S_B_SRC_UNSBYTE): Ditto.
3209 (DST_S_B_SRC_UNSBYTE): Ditto.
3210 (DST_S_W_SRC_UNSWORD, DST_S_L_SRC_UNSLONG): Ditto.
3211 Add prototypes.
3212 (vms_section, vms_reloc): Remove types.
3213 (hdr_struc): Replaced by ...
3214 (hdr_struct): ... new type.
3215 (EMH_S_W_HDRTYP, EMH_S_B_STRLVL, EMH_S_L_ARCH1): New constants.
3216 (EMH_S_L_ARCH2, EMH_S_L_RECSIZ, EMH_S_B_NAMLNG): Ditto.
3217 (EMH_DATE_LENGTH): Ditto.
3218 (eom_struc): Replaced by ...
3219 (eom_struct): ... new type.
3220 (EEOM_S_L_TOTAL_LPS, EEOM_S_W_COMCOD, EEOM_S_B_TFRFLG): New constants.
3221 (EEOM_S_L_PSINDX, EEOM_S_L_TFRADR): Ditto.
3222 (EIHD_S_K_MAJORID, EIHD_S_K_MINORID, EIHD_S_K_EXE): Ditto.
3223 (EIHD_S_L_SIZE, EIHD_S_L_ISDOFF, EIHD_S_L_SYMDBGOFF): Ditto.
3224 (EIHD_S_Q_SYMVVA, EIHD_S_L_IMGTYPE): Ditto.
3225 (EISD_S_L_EISDSIZE, EISD_S_L_SECSIZE, EISD_S_Q_VIR_ADDR): Ditto.
3226 (EISD_S_L_FLAGS, EISD_S_L_VBN, EISD_S_R_CONTROL): Ditto.
3227 (EISD_S_L_IDENT, EISD_S_T_GBLNAM): Ditto.
3228 (EISD_S_M_GBL, EISD_S_M_CRF, EISD_S_M_DZRO, EISD_S_M_WRT): Ditto.
3229 (EISD_S_M_INITALCODE, EISD_S_M_BASED, EISD_S_M_FIXUPVEC): Ditto.
3230 (EISD_S_M_RESIDENT, EISD_S_M_VECTOR, EISD_S_M_PROTECT): Ditto.
3231 (EISD_S_M_LASTCLU, EISD_S_M_EXE, EISD_S_M_NONSHRADR): Ditto.
3232 (EISD_S_M_QUAD_LENGTH, EISD_S_M_ALLOC_64BIT): Ditto.
3233 (EIHS_S_L_DSTVBN, EIHS_S_L_DSTSIZE, EIHS_S_L_GSTVBN): Ditto.
3234 (EIHS_S_L_GSTSIZE, EIHS_S_L_DMTVBN, EIHS_S_L_DMTBYTES): Ditto.
3235 (DBG_S_L_DMT_MODBEG, DBG_S_L_DST_SIZE): Ditto.
3236 (DBG_S_W_DMT_PSECT_COUNT, DBG_S_C_DMT_HEADER_SIZE): Ditto.
3237 (DBG_S_L_DMT_PSECT_START, DBG_S_L_DMT_PSECT_LENGTH)
3238 (DBG_S_C_DMT_PSECT_SIZE): Ditto.
3239 (enum file_type_enum): New type.
3240 (struct location_struct): Removed.
3241 (struct fileinfo, struct srecinfo, struct lineinfo): New types.
3242 (struct funcinfo, struct module): Ditto.
3243 (struct vms_private_data_struct): Update fields.
3244 (struct vms_section_data_struct): New type.
3245
3246 * vms.c: Update copyright year, fix comments,
3247 Fix includes for DECC, add prototypes.
3248 (vms_initialize): Use bfd_alloc instead of bfd_zalloc and remove
3249 some initializers.
3250 Use flavour to set is_vax, location_stack is removed.
3251 (struct pair): Declare.
3252 (fill_section_ptr): Initialize variables at declaration.
3253 Add guard to set SECTION_SYM flag, handlde und section.
3254 (vms_fixup_sections): Use struct pair for fill_section_ptr argument.
3255 (_bfd_vms_slurp_object_records): New function, replaces previous
3256 vms_object_p.
3257 (vms_slurp_module): New function.
3258 (vms_slurp_image): Ditto.
3259 (vms_object_p): Complete rewrite.
3260 (vms_mkobject): Use is_vax field to slect architecture.
3261 (free_reloc_stream): New function.
3262 (vms_convert_to_var): Ditto.
3263 (vms_convert_to_var_1): Ditto.
3264 (vms_convert_to_var_unix_filename): Ditto.
3265 (vms_close_and_cleanup): Call free_reloc_stream, convert file to
3266 VAR format on VMS.
3267 (vms_new_section_hook): Set alignment to 0, allocate private data.
3268 (vms_get_section_contents): Load content.
3269 (vms_get_symbol_info): Handle undefined section.
3270 (vms_find_nearest_line): Handle.
3271 (alloc_reloc_stream): New function.
3272 (vms_slurp_reloc_table): Ditto.
3273 (vms_get_reloc_upper_bound): Make it real.
3274 (vms_canonicalize_reloc): Do the real work.
3275 (alpha_howto_table): Add ALPHA_R_NOP, ALPHA_R_BSR, ALPHA_R_LDA,
3276 ALPHA_R_BOH.
3277 (vms_bfd_reloc_type_lookup): Handle NOP, BSR, LDA and BOH.
3278 (vms_set_arch_mach): Check arch.
3279 (vms_set_section_contents): Copy the content after allocation.
3280 (vms_alpha_vec): Update object flags.
3281
3282 * vms-tir.c: Update copyright year, fix comments,
3283 add prototypes for new functions.
3284 (dst_define_location): New function.
3285 (dst_restore_location): New function.
3286 (dst_retrieve_location): New function.
3287 (dst_check_allocation): New function.
3288 (image_dump): Call dst_check_allocation.
3289 (image_write_b): Ditto.
3290 (image_write_w): Ditto.
3291 (image_write_l): Ditto.
3292 (image_write_q): Ditto.
3293 (cmd_name): Handle STA_LW, STA_QW, STO_OFF, STO_IMM, STO_IMMR, STO_LW,
3294 STO_QW, OPR_ADD, CTL_SETRB, STC_LP_PSB, CTL_DFLOC, CTL_STLOC,
3295 CTL_STKDL.
3296 Call error handler instead of abort if name is not known.
3297 (etir_sta): Add quarter_relocs argument and set it.
3298 Fix cast.
3299 (etir_sto): Ditto.
3300 (etir_opr): Ditto, return FALSE in case of error.
3301 (etir_ctl): Add quarter_relocs argument and set it, fix cast.
3302 Fix CTL_DFLOC, CTL_STLOC, CTL_STKDL.
3303 (etir_stc): Add quarter_relocs argument and set it, fix cast.
3304 Fix STC_LP, STC_LP_PSB, STC_GBL and STC_CGA.
3305 Handle STC_LP_PSB, STC_BSR_GBL, STC_LDA_GBL, STC_BOH_GBL.
3306 Move STC_NOP_PS, STC_BSR_PS, STC_LDA_PS, STC_BOH_PS, STC_NBH_PS.
3307 Return FALSE in case of error.
3308 (tir_sta): Change sign of psect.
3309 (tir_ctl): Ditto.
3310 (tir_cmd): Fix cast. Makes tir_table static const.
3311 (etir_cmd): Add quarter_relocs argument, makes etir_table const,
3312 add argument to explain.
3313 (analyze_etir): Initialize maxptr, add quarter_relocs
3314 declaration, move some declarations into inner scopes.
3315 Handle quarter_relocs and STO_IMM.
3316 (_bfd_vms_slurp_tir): Use constant instead of hard-coded values.
3317 (_bfd_vms_slurp_relocs): New function.
3318 (_bfd_vms_decode_relocs): New function.
3319 (sto_imm): Rewritten.
3320 (start_first_etbt_record): New function.
3321 (start_another_etbt_record): Ditto.
3322 (etir_output_check): Ditto.
3323 (defer_reloc_p): Ditto.
3324 (_bfd_vms_write_tir): Remove nextoffset, convert a while-loop to
3325 a for-loop. Correctly deals with contents, deals with .vmsdebug,
3326 rewritte relocations handling.
3327 (_bfd_vms_write_tbt): Removed.
3328 (_bfd_vms_write_dbg): Ditto.
3329
3330 * vms-misc.c: Update copyright year, Fix comments.
3331 (_bfd_vms_get_header_values): Use 'size' instead of 'length'.
3332 (maybe_adjust_record_pointer_for_object): New function.
3333 (_bfd_vms_get_first_record): New function, replaces ...
3334 (_bfd_vms_get_record): .. removed.
3335 (_bfd_vms_get_object_record): New function.
3336 (_bfd_vms_get_object_record): New function.
3337 (vms_get_remaining_object_record): New function, replaces ...
3338 (_bfd_vms_get_next_record): ... removed.
3339 (add_new_contents): Removed.
3340 (_bfd_save_vms_section): Removed.
3341 (_bfd_get_vms_section): Removed.
3342 (_bfd_vms_output_flush): Write in VAR format.
3343 (new_symbol): Don't make UND section.
3344
3345 * vms-hdr.c: Update copyright year, update list of record handled.
3346 (_bfd_vms_slurp_hdr): rec_length renamed to rec_size.
3347 (_bfd_vms_write_hdr): Strip vms and unix patches,
3348 add comments, truncate module name at 31 characters,
3349 use constants instead of hard-coded value,
3350 write BFD version instead of a fixed string.
3351 (_bfd_vms_slurp_ihd): New function.
3352 (_bfd_vms_slurp_isd): Ditto.
3353 (_bfd_vms_slurp_ihs): Ditto.
3354 (new_module): Ditto.
3355 (parse_module): Ditto
3356 (build_module_list): Ditto.
3357 (module_find_nearest_line): Ditto.
3358 (_bfd_vms_find_nearest_dst_line): Ditto.
3359 (vms_slurp_debug): Ditto.
3360 (_bfd_vms_slurp_dbg): Ditto.
3361 (_bfd_vms_slurp_tbt): Ditto.
3362 (_bfd_vms_write_dbg): Ditto.
3363 (_bfd_vms_write_tbt): Ditto.
3364
3365 * vms-gsd.c: Update copyright year, update list of records handled.
3366 (EVAX_LITERALS_NAME): New macro.
3367 (evax_section_flags): Add an entry for EVAX_LITERALS_NAME.
3368 (gpsflagdesc, gsyflagdesc): Moved out of _bfd_vms_slurp_gsd.
3369 (register_universal_symbol): New function and prototype.
3370 (_bfd_vms_slurp_gsd): Fix indentations and casts,
3371 improve debug messages,
3372 use constants instead of hard-coded value,
3373 fix missing endianness conversion,
3374 handle global symbol (SYMG).
3375 (bfd_vms_set_section_flags): New function.
3376 (_bfd_vms_write_gsd): Don't write .vmsdebug section,
3377 handle section literals,
3378 fix indentation,
3379 handle section bfd and vms flags,
3380 don't output LIB$INITIALIZE symbol,
3381 fix handling of weak symbols,
3382 fix evax vs vax procedure descriptor,
3383 handle absolute symbols.
3384
3385 * reloc.c (BFD_RELOC_ALPHA_NOP, BFD_RELOC_ALPHA_BSR,
3386 BFD_RELOC_ALPHA_LDA, BFD_RELOC_ALPHA_BOH): New relocations.
3387
3388 * makefile.vms (DEFS): Fix flags for VMS.
3389
3390 * bfdio.c (real_fopen): Handle multiple VMS fopen attributes.
3391
3392 * bfd-in2.h: Regenerated.
3393 * libbfd.h: Regenerated.
3394
47149254
CC
33952009-02-20 Cary Coutant <ccoutant@google.com>
3396
3397 * vmsutil.c (vms_file_stats_name): Fix incorrect use of st_mtime
3398 in struct stat.
3399
6b1cecf3
DK
34002009-18-02 Dave Korn <dave.korn.cygwin@gmail.com>
3401
3402 PR gas/7059
3403 * coffcode.h (coff_write_object_contents): Don't let the string
3404 table offset overflow the s_name field when using long section names.
3405
88183869
DK
34062009-18-02 Dave Korn <dave.korn.cygwin@gmail.com>
3407
3408 * coff-alpha.c (alpha_ecoff_backend_data): Initialise fields which
3409 control long section name handling with ECOFF_NO_LONG_SECTION_NAMES.
3410 * coff-mips.c (mips_ecoff_backend_data): Likewise.
3411 * coff-rs6000.c (bfd_xcoff_backend_data): Initialise fields which
3412 control long section name handling with XCOFF_NO_LONG_SECTION_NAMES.
3413 (bfd_pmac_xcoff_backend_data): Likewise.
3414 * coff64-rs6000.c (bfd_xcoff_backend_data): Likewise.
3415 (bfd_xcoff_aix5_backend_data): Likewise.
3416 (xcoff64_write_object_contents): Delete unused long_section_names
3417 local variable.
3418 * coff-sh.c (bfd_coff_small_swap_table): Initialise long section
3419 name members using COFF_DEFAULT_LONG_SECTION_NAMES and make entire
3420 struct non-const.
3421 * coffcode.h (documentation): Update to describe long section names.
3422 (COFFLONGSECTIONCATHELPER): New helper macro.
3423 (BLANKOR1TOODD): Likewise.
3424 (COFF_ENABLE_LONG_SECTION_NAMES): Likewise.
3425 (COFF_LONG_SECTION_NAMES_SETTER): Likewise.
3426 (COFF_DEFAULT_LONG_SECTION_NAMES): Likewise.
3427 (bfd_coff_set_long_section_names_allowed): New function.
3428 (bfd_coff_set_long_section_names_disallowed): Likewise.
3429 (struct bfd_coff_backend_data): Add new backend hook function
3430 pointer _bfd_coff_set_long_section_names.
3431 (bfd_coff_set_long_section_names): New backend hook.
3432 (coff_write_object_contents): Only generate long section names if
3433 bfd_coff_long_section_names() indicates they are currently enabled.
3434 (bfd_coff_std_swap_table): Make non-const, and initialise long
3435 section name fields using COFF_DEFAULT_LONG_SECTION_NAMES.
3436 (ticoff0_swap_table): Likewise to both.
3437 (ticoff1_swap_table): Again, likewise to both.
3438 * coffgen.c (make_a_section_from_file): Allow long section names
3439 as inputs even if not currently allowed for outputs.
3440 * ecoff.c (_bfd_ecoff_no_long_sections): New function.
3441 * efi-app-ia32.c (COFF_LONG_SECTION_NAMES): Define to 0, not blank.
3442 * efi-app-ia64.c (COFF_LONG_SECTION_NAMES): Likewise.
3443 * efi-app-x86_64.c (COFF_LONG_SECTION_NAMES): Likewise.
3444 * efi-bsdrv-ia32.c (COFF_LONG_SECTION_NAMES): Likewise.
3445 * efi-bsdrv-ia64.c (COFF_LONG_SECTION_NAMES): Likewise.
3446 * efi-bsdrv-x86_64.c (COFF_LONG_SECTION_NAMES): Likewise.
3447 * efi-rtdrv-ia32.c (COFF_LONG_SECTION_NAMES): Likewise.
3448 * efi-rtdrv-ia64.c (COFF_LONG_SECTION_NAMES): Likewise.
3449 * efi-rtdrv-x86_64.c (COFF_LONG_SECTION_NAMES): Likewise.
3450 * pei-arm.c (COFF_LONG_SECTION_NAMES): Likewise.
3451 * pei-i386.c (COFF_LONG_SECTION_NAMES): Likewise.
3452 * pei-mcore.c (COFF_LONG_SECTION_NAMES): Likewise.
3453 * pei-mips.c (COFF_LONG_SECTION_NAMES): Likewise.
3454 * pei-ppc.c (COFF_LONG_SECTION_NAMES): Likewise.
3455 * pei-sh.c (COFF_LONG_SECTION_NAMES): Likewise.
3456 * pei-x86_64.c (COFF_LONG_SECTION_NAMES): Likewise.
3457 * libcoff-in.h: Update copyright year to cause updated copyright
3458 year in generated libcoff.h, and fix typo.
3459 * libcoff.h: Regenerated.
3460 * libecoff.h (ECOFF_NO_LONG_SECTION_NAMES): New macro.
3461 (_bfd_ecoff_no_long_sections): Add prototype.
3462 * libxcoff.h (XCOFF_NO_LONG_SECTION_NAMES): New macro.
3463 * pe-mips.c (COFF_LONG_SECTION_NAMES): Define empty if not already
3464 defined by an including .c file.
3465 * ticoff.h (ticoff0_swap_table): Make non-const, and initialise
3466 long section name fields using COFF_DEFAULT_LONG_SECTION_NAMES.
3467 (ticoff1_swap_table): Likewise to both.
3468
90d8a22c
CL
34692009-02-18 Christophe Lyon <christophe.lyon@st.com>
3470
3471 * elf32-arm.c (arm_build_one_stub): Fix relocation target for pic
3472 stub. Catch default case error.
3473 (arm_map_one_stub): Add missing Thumb mapping symbol.
3474
12123067
NC
34752009-02-18 Bjoern Haase <bjoern.m.haase@web.de>
3476
3477 PR 9841
3478 * elf32-avr.c: Handle case where no local symbos exist correctly.
3479
fea2b4d6
CL
34802009-02-16 Christophe Lyon <christophe.lyon@st.com>
3481
3482 bfd/
3483 * elf32-arm.c (arm_long_branch_stub,
3484 arm_thumb_v4t_long_branch_stub,
3485 arm_thumb_thumb_long_branch_stub,
3486 arm_thumb_arm_v4t_long_branch_stub,
3487 arm_thumb_arm_v4t_short_branch_stub,
3488 arm_pic_long_branch_stub):
3489 Renamed to elf32_arm_stub_long_branch_any_any,
3490 elf32_arm_stub_long_branch_v4t_arm_thumb,
3491 elf32_arm_stub_long_branch_thumb_only,
3492 elf32_arm_stub_long_branch_v4t_thumb_arm,
3493 elf32_arm_stub_short_branch_v4t_thumb_arm,
3494 elf32_arm_stub_long_branch_any_any_pic.
3495 (arm_stub_long_branch, arm_thumb_v4t_stub_long_branch,
3496 arm_thumb_thumb_stub_long_branch,
3497 arm_thumb_arm_v4t_stub_long_branch,
3498 arm_thumb_arm_v4t_stub_short_branch, arm_stub_pic_long_branch):
3499 Renamed to arm_stub_long_branch_any_any,
3500 arm_stub_long_branch_v4t_arm_thumb,
3501 arm_stub_long_branch_thumb_only,
3502 arm_stub_long_branch_v4t_thumb_arm,
3503 arm_stub_short_branch_v4t_thumb_arm,
3504 arm_stub_long_branch_any_any_pic.
3505
13e0a874
DA
35062009-02-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3507
3508 * elf-hppa.h (elf_hppa_final_link_relocate): Correct addend value used
3509 in branch offset check.
3510
3a71aa26
AM
35112009-02-15 Alan Modra <amodra@bigpond.net.au>
3512
3513 * elf64-ppc.c (struct _ppc64_elf_section_data): Delete t_symndx,
3514 add toc.symndx and toc.add.
3515 (ppc64_elf_check_relocs): Don't set htab->tls_get_addr here.
3516 Set up toc.add.
3517 (get_tls_mask): Add toc_addend param, set from toc.add. Adjust all
3518 callers.
3519 (ppc64_elf_tls_setup): Set htab->tls_get_addr and tls_get_addr_fd.
3520 (branch_reloc_hash_match): New function, extracted from..
3521 (ppc64_elf_tls_optimize): ..here.
3522 (ppc64_elf_relocate_section): Properly set addends when optimizing
3523 tls sequences. Avoid unnecessary reading and writing of insns.
3524 Only redo reloc when symbol changed. Bypass symbol checks when
3525 using tlsld_got.
3526 * elf32-ppc.c (ppc_elf_tls_setup): Correct comment.
3527 (branch_reloc_hash_match): New function, extracted from..
3528 (ppc_elf_tls_optimize): ..here.
3529 (ppc_elf_relocate_section): Avoid unnecessary reading of insns.
3530 Don't clear addend on zapped __tls_get_addr reloc.
3531
2c2b4ed4
NC
35322009-02-12 Nick Clifton <nickc@redhat.com>
3533
3534 PR 9827
3535 * elflink.c (bfd_elf_final_link): When counting the relocations,
3536 if the header size has not been set yet then assume that it will
3537 match the output section's reloc type.
3538
453f5985
NS
35392009-02-12 Nathan Sidwell <nathan@codesourcery.com>
3540
3541 * elf32-mips.c (mips_elf_final_gp): Don't add 0x4000 offset for
3542 relocatable link.
3543
3209bffa
AM
35442009-02-09 Alan Modra <amodra@bigpond.net.au>
3545
3546 * elf32-spu.c (spu_elf_find_overlays): Call bfd_set_error on errors.
3547 (find_function): Likewise.
3548 (pasted_function): Don't error if no prior function found.
3549 (discover_functions): Revert 2008-12-10 change. Extend first
3550 function range to start of section.
3551
813c8a3c
DA
35522009-02-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3553
3554 * elf64-hppa.c: Remove PARAMS macro. Replace PTR with void *. Convert
3555 functions to C90.
3556 * elf64-hppa.h: Likewise.
3557
2d0f9ad9
JM
35582009-02-06 Joseph Myers <joseph@codesourcery.com>
3559
3560 * elfxx-mips.c (_bfd_mips_elf_section_processing): Remove special
3561 .sbss handling.
3562
50e00962
AM
35632009-02-04 Alan Modra <amodra@bigpond.net.au>
3564
3565 * elf32-spu.c (spu_elf_build_stubs): Define __icache_neg_log2_linesize.
3566 Define __icache_ptr_handler*, not __icache_ptr___icache_bi_handler*.
3567
52b6b6b9
JM
35682009-02-03 Sandip Matte <sandip@rmicorp.com>
3569
3570 * aoutx.h (NAME (aout, machine_type)): Handle bfd_mach_mips_xlr.
3571 * archures.c (bfd_mach_mips_xlr): Define.
3572 * bfd-in2.h: Regenerate.
3573 * cpu-mips.c (I_xlr): Define.
3574 (arch_info_struct): Add XLR entry.
3575 * elfxx-mips.c (_bfd_elf_mips_mach): Handle E_MIPS_MACH_XLR.
3576 (mips_set_isa_flags): Handle bfd_mach_mips_xlr
3577 (mips_mach_extensions): Add XLR entry.
3578
654c3c9f
EW
35792009-02-03 Eric B. Weddington <eric.weddington@atmel.com>
3580
3581 * elf32-avr.c (avr_final_link_relocate): Allow avr25 to wraparound.
3582
31dd3154
JM
35832009-02-03 Carlos O'Donell <carlos@codesourcery.com>
3584
3585 * configure.in: AC_SUBST pdfdir.
d1fa68d3 3586 * Makefile.am: Add install-pdf, install-pdf-am
31dd3154
JM
3587 and install-pdf-recursive targets. Define pdfdir.
3588 * doc/Makefile.am: Define pdf__strip_dir. Add
3589 install-pdf and install-pdf-am targets.
d1fa68d3 3590 * po/Make-in: Add install-pdf target.
31dd3154
JM
3591 * configure: Regenerate.
3592 * Makefile.in: Regenerate
3593 * doc/Makefile.in: Regenerate.
3594
cf869cce
NC
35952009-02-03 Maxim Kuvyrkov <maxim@codesourcery.com>
3596
3597 * bfd-in2.h: Regenerate.
3598 * elf32-m68k.c: Handle 2-slot GOT entries. Rename variables and
3599 fields from n_entries to n_slots where appropriate, update comments.
3600 (HOWTO): Add TLS relocations.
3601 (reloc_map): Map BFD_RELOC_68K_TLS_* to R_68K_TLS_*.
3602 (enum elf_m68k_got_offset_size): New enum.
3603 (struct elf_m68k_got_entry.type): Move field to ...
3604 (struct elf_m68k_got_entry_key): ... here. Update all uses.
3605 (elf_m68k_reloc_got_type, elf_m68k_reloc_got_offset_size): New static
3606 functions.
3607 (elf_m68k_reloc_got_n_entries, elf_m68k_reloc_tls_p): New static
3608 functions.
3609 (struct elf_m68k_got): merge rel_8o_n_entries and rel_8o_16o_n_entries
3610 fields into n_entries array. Update comments.
3611 (elf_m68k_init_got): Simplify, update all uses.
3612 (elf_m68k_init_got_entry_key): Handle R_68K_TLS_LDM32 reloc, update.
3613 (ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT): Adjust to handle 2-slot
3614 GOT entries; update name, update all uses.
3615 (ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): Ditto.
3616 (elf_m68k_get_got_entry): Update.
3617 (elf_m68k_update_got_entry_type): Rewrite to handle TLS GOT entries,
3618 simplify.
3619 (elf_m68k_remove_got_entry_type): Simplify.
3620 (elf_m68k_add_entry_to_got, elf_m68k_can_merge_gots_1): Update.
3621 (elf_m68k_can_merge_gots): Update.
3622 (elf_m68k_merge_gots_1, elf_m68k_merge_gots): Update.
3623 (struct elf_m68k_finalize_got_offsets_arg): Rewrite to handle 2-slot
3624 GOT entries, simplify.
3625 (elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Same.
3626 (struct elf_m68k_partition_multi_got_arg): Add slots_relas_diff
3627 field, remove obsoleted local_n_entries field.
3628 (elf_m68k_partition_multi_got_2): New static function.
3629 (elf_m68k_partition_multi_got_1, elf_m68k_partition_multi_got): Use it;
3630 update.
3631 (elf_m68k_remove_got_entry_type): Update.
3632 (elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
d1fa68d3 3633 (elf_m68k_check_relocs): Handle TLS relocations. Remove unnecessary
cf869cce
NC
3634 update of sgot->size and srelgot->size.
3635 (elf_m68k_gc_sweep_hook): Update.
3636 (elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
3637 (elf_m68k_relocate_section, elf_m68k_finish_dynamic_symbol): Handle
3638 TLS relocations.
3639 * reloc.c (BFD_RELOC_68K_TLS_*): Declare TLS relocations.
3640 * libbfd.h (bfd_reloc_code_real_names): Add BFD_RELOC_68K_TLS_*.
3641
c1a0a41f
DD
36422009-02-02 DJ Delorie <dj@redhat.com>
3643
3644 * elf32-mep.c (config_names): Regenerate configuration.
3645
72a80a16
AM
36462009-02-02 Alan Modra <amodra@bigpond.net.au>
3647
3648 * elf-bfd.h (bfd_elf_get_str_section): Don't declare.
3649 (bfd_elf_find_section, _sh_elf_set_mach_from_flags): Likewise.
3650 * elf.c (bfd_elf_get_str_section): Make static.
3651 (bfd_elf_find_section): Delete.
3652 * libbfd.h: Regenerate.
3653
273f4430
JK
36542009-02-01 Jan Kratochvil <jan.kratochvil@redhat.com>
3655
3656 * elf-eh-frame.c (REQUIRE_CLEARED_RELOCS) Remove.
3657 (_bfd_elf_parse_eh_frame): Do not check relocations for removed FDEs.
3658
010e5ae2
AM
36592009-01-31 Alan Modra <amodra@bigpond.net.au>
3660
3661 * elflink.c (on_needed_list): New function.
3662 (elf_link_add_object_symbols): Link in --as-needed libs if they
3663 satisfy undefined symbols in other libs.
3664
33a7ffc2
JM
36652009-01-30 Julian Brown <julian@codesourcery.com>
3666
3667 * elf32-arm.c (bfd_elf32_arm_vfp11_erratum_scan): Skip BFDs with
3668 EXEC_P or DYNAMIC flags, and skip sections which are being linked
3669 with --just-symbols (-R).
3670
13d72a14
AN
36712009-01-29 Adam Nemet <anemet@caviumnetworks.com>
3672
3673 * dwarf2.c (read_rangelist): Use read_address to read low_pc and
3674 high_pc in order to properly sign-extend VMAs.
3675
d334575b 36762009-01-29 Daniel Jacobowitz <dan@codesourcery.com>
d1fa68d3
AS
3677 Mark Shinwell <shinwell@codesourcery.com>
3678 Catherine Moore <clm@codesourcery.com>
d334575b
JM
3679
3680 * elf-attrs.c, elflink.c, elfxx-mips.c: Correct typos in comments.
3681
528aeb62
CM
36822009-01-28 Catherine Moore <clm@codesourcery.com>
3683
3684 * elf32-arm.c (elf32_arm_check_relocs): Set SEC_ALLOC and
3685 SEC_LOAD for dynamic relocation sections.
3686
f6f05983
HPN
36872009-01-27 Hans-Peter Nilsson <hp@axis.com>
3688
3689 * elf32-cris.c (cris_elf_relocate_section): Use elf_hash_table
3690 (info)->tls_size, not elf_hash_table (info)->tls_sec->size for
3691 the size of local TLS data.
3692
27cc28f9
AS
36932009-01-27 Andreas Schwab <schwab@suse.de>
3694
3695 * mach-o.c (bfd_mach_o_archive_p): Restrict the number of
3696 architectures in the archive.
3697
b3bf42d8
HPN
36982009-01-27 Hans-Peter Nilsson <hp@axis.com>
3699
f551b6f0
HPN
3700 * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_DTPREL>
3701 <R_CRIS_32_DTPREL>: Correct relocation value.
3702
b3bf42d8
HPN
3703 * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_8>
3704 <R_CRIS_16, R_CRIS_32>: Don't call BFD_ASSERT for weak undefined
3705 symbols with non-default visibility.
3706
9bc4e62b
NS
37072009-01-26 Nathan Sidwell <nathan@codesourcery.com>
3708
3709 * elf32-ppc.c (ppc_elf_relax_section): Add space for relocs
3710 describing the trampolines.
3711 (ppc_elf_relocate_section): Update relocs to describe the
3712 trampolines.
3713
aeaf6540
DA
37142009-01-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3715
3716 * elf-hppa.h (elf_hppa_final_link_relocate): Add check to ensure that
3717 branch targets can be reached for R_PARISC_PCREL22F, R_PARISC_PCREL17F
3718 and R_PARISC_PCREL12F relocations.
3719
1e8fa21e
AM
37202009-01-24 Alan Modra <amodra@bigpond.net.au>
3721
3722 PR 6022
3723 * elflink.c (find_version_for_sym): New function split out from,
3724 but without export_dynamic test, ..
3725 (_bfd_elf_link_assign_sym_version): ..here.
3726 (_bfd_elf_export_symbol): Use it.
3727
28caa186
AM
37282009-01-23 Alan Modra <amodra@bigpond.net.au>
3729
3730 * elf-bfd.h (struct elf_assign_sym_version_info): Delete.
3731 (struct elf_info_failed, struct elf_find_verdep_info): Move to..
3732 * elflink.c: ..here, somewhat modified.
3733 * elf-bfd.h (_bfd_elf_add_default_symbol, _bfd_elf_export_symbol,
3734 _bfd_elf_link_find_version_dependencies,
3735 _bfd_elf_link_assign_sym_version, _bfd_elf_link_size_reloc_section,
3736 _bfd_elf_fix_symbol_flags, _bfd_elf_adjust_dynamic_symbol,
3737 _bfd_elf_link_sec_merge_syms, bfd_elf_link_mark_dynamic_symbol): Don't
3738 declare..
3739 * elflink.c: ..and make static here.
3740 (_bfd_elf_link_find_version_dependencies): Adjust for removal
3741 of output_bfd from struct elf_find_verdep_info.
3742 (_bfd_elf_link_assign_sym_version): Similarly adjust to use
3743 struct elf_info_failed.
3744 (bfd_elf_size_dynamic_sections): Adjust.
3745
be04437d
AM
37462009-01-22 Alan Modra <amodra@bigpond.net.au>
3747
3748 PR 6832
3749 * dwarf2.c (find_line): Don't update stash->sec_info_ptr until
3750 after comp_unit_find_line call.
3751
58f9615c
NC
37522009-01-21 Nick Clifton <nickc@redhat.com>
3753
3754 PR 9769
3755 * vmsutil.c (vms_file_stats_name): Remove use of unsupported
3756 tm_gmtoff field in struct tm.
3757
fb266b8b
AM
37582009-01-21 Alan Modra <amodra@bigpond.net.au>
3759
3760 * elf32-spu.h (struct spu_elf_params): Add non_ia_text.
3761 * elf32-spu.c (mark_overlay_section): Only include .text.ia.*
3762 sections in soft-icache lines unless non_ia_text. Don't add
3763 rodata if doing so would exceed line size.
3764
451ffe63
HPN
37652009-01-19 Hans-Peter Nilsson <hp@axis.com>
3766
3767 * elf32-cris.c (elf_cris_copy_indirect_symbol): For other symbol
3768 types than bfd_link_hash_indirect, before early return, call
3769 _bfd_elf_link_hash_copy_indirect.
3770
5aa6ff7c
AS
37712009-01-19 Andrew Stubbs <ams@codesourcery.com>
3772
3773 * elf-attrs.c (vendor_set_obj_attr_contents): Support tag ordering.
3774 * elf-bfd.h (elf_backend_data): Add obj_attrs_order.
3775 * elf32-arm.c (elf32_arm_obj_attrs_order): New function.
3776 (elf_backend_obj_attrs_order): New define.
3777 * elfxx-target.h (elf_backend_obj_attrs_order): New define.
3778 (elfNN_bed): Add elf_backend_obj_attrs_order.
3779
3483fe2e
AS
37802009-01-19 Andrew Stubbs <ams@codesourcery.com>
3781
3782 * elf-attrs.c (is_default_attr): Substitute magic numbers with macros.
3783 (obj_attr_size): Likewise.
3784 (write_obj_attribute): Likewise.
3785 (_bfd_elf_copy_obj_attributes): Likewise.
3786 (_bfd_elf_parse_attributes): Likewise.
3787 * elf-bfd.h (ATTR_TYPE_FLAG_INT_VAL): New define.
3788 (ATTR_TYPE_FLAG_STR_VAL, ATTR_TYPE_FLAG_NO_DEFAULT): New defines.
3789 (ATTR_TYPE_HAS_INT_VAL, ATTR_TYPE_HAS_STR_VAL): New defines.
3790 (ATTR_TYPE_HAS_NO_DEFAULT): New define.
3791 * elf32-arm.c (elf32_arm_obj_attrs_arg_type): Replace magic numbers
3792 with macros.
3793
2d0bb761
AS
37942009-01-19 Andrew Stubbs <ams@codesourcery.com>
3795
3796 * elf-attrs.c (is_default_attr): Support defaultless attributes.
3797 (bfd_elf_add_obj_attr_int): Get type from _bfd_elf_obj_attrs_arg_type.
3798 (bfd_elf_add_obj_attr_string): Likewise.
3799 (bfd_elf_add_obj_attr_int_string): Likewise.
3800 (_bfd_elf_parse_attributes): Allow for unknown flag bits in type.
3801 * elf-bfd.h (struct obj_attribute): Document new flag bit.
3802 * elf32-arm.c (elf32_arm_obj_attrs_arg_type): Specify that
3803 Tag_nodefaults has no default value.
3804 (elf32_arm_merge_eabi_attributes): Modify the Tag_nodefaults
3805 comment to reflect the new state.
3806
a77e83b7
AM
38072009-01-19 Alan Modra <amodra@bigpond.net.au>
3808
3809 PR 9695
3810 * pdp11.c (N_BADMAG): True for anything but OMAGIC, NMAGIC, ZMAGIC.
3811 (some_aout_object_p): Delete dead code handling QMAGIC and BMAGIC.
3812 (adjust_z_magix): Delete dead code handling QMAGIC.
3813
f6d29e26
KT
38142009-01-16 Kai Tietz <kai.tietz@onevision.com>
3815
3816 * coffcode.h (styp_to_sec_flags): Correct interpretation of
3817 IMAGE_SCN_MEM_DISCARDABLE.
3818
29670fb9
AM
38192009-01-16 Alan Modra <amodra@bigpond.net.au>
3820
3821 * Makefile.am (libbfd_la_LIBADD, libbfd_la_LDFLAGS): Substitute
3822 SHARED_LIBADD and SHARED_LDFLAGS rather than WIN32LIBADD, WIN32LDFLAGS.
3823 * configure.in (commonbfdlib): Delete.
3824 (SHARED_LDFLAGS): Rename from WIN32LDFLAGS/
3825 (SHARED_LIBADD): Rename from WIN32LIBADD. Add pic libiberty if such
3826 is available, not just for linux.
3827 * po/SRC-POTFILES.in: Regenerate.
3828 * Makefile.in: Regenerate.
3829 * configure: Regenerate.
3830
91e22acd
AS
38312009-01-15 Andrew Stubbs <ams@codesourcery.com>
3832 Julian Brown <julian@codesourcery.com>
3833
3834 * elf-bfd.h (NUM_KNOWN_OBJ_ATTRIBUTES): Set to 71 to include all known
3835 ARM attributes in ABI 2.07.
3836 * elf32-arm.c (get_secondary_compatible_arch): New function.
3837 (set_secondary_compatible_arch): New function.
3838 (tag_cpu_arch_combine): New function.
3839 (elf32_arm_copy_one_eabi_other_attribute): Delete function.
3840 (elf32_arm_copy_eabi_other_attribute_list): Delete function.
3841 (elf32_arm_merge_eabi_attributes): Rename order_312 to order_021 to
3842 make it fit with order_01243.
3843 Add support for Tag_also_compatible_with,
3844 Tag_CPU_unaligned_access, Tag_T2EE_use, Tag_Virtualization_use,
3845 Tag_MPextension_use, Tag_nodefaults and Tag_conformance.
3846 Improve/tidy up support for Tag_CPU_raw_name, Tag_CPU_name,
3847 Tag_CPU_arch, Tag_ABI_HardFP_use, Tag_VFP_HP_extension,
3848 Tag_ABI_FP_denormal, Tag_ABI_PCS_GOT_use, Tag_ABI_align8_needed,
3849 Tag_VFP_arch and Tag_ABI_FP_16bit_format.
3850 Rework the way unknown attributes are handled.
3851 Defer errors until all attributes have been processed.
3852
7b86a9fa
AS
38532009-01-15 Andrew Stubbs <ams@codesourcery.com>
3854
3855 * elf-attrs.c (bfd_elf_add_obj_attr_compat): Rename to
3856 bfd_elf_add_obj_attr_int_string.
3857 Read Tag_compatibility from its new location in the attribute array,
3858 rather than the attribute list.
3859 (_bfd_elf_copy_obj_attributes): bfd_elf_add_obj_attr_compat ->
3860 bfd_elf_add_obj_attr_int_string.
3861 (_bfd_elf_parse_attributes): Likewise.
3862 (_bfd_elf_merge_object_attributes): There's now only one
3863 Tag_compatibility, and it's in the array, not the list.
3864 * elf-bfd.h (NUM_KNOWN_OBJ_ATTRIBUTES): Set to 33 to include
3865 Tag_compatibility.
3866 (bfd_elf_add_obj_attr_compat): Rename to
3867 bfd_elf_add_obj_attr_int_string.
3868 (bfd_elf_add_proc_attr_compat): Rename to
3869 bfd_elf_add_proc_attr_int_string.
3870 * elf32-arm.c (elf32_arm_merge_eabi_attributes): Explicitly don't handle
3871 Tag_compatibility.
3872
01e1a5bc
NC
38732009-01-15 Douglas B Rupp <rupp@gnat.com>
3874
3875 * Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo
3876 (BFD32_BACKENDS_CFILES): Add new file vmsutil.c
3877 (vmsutil.lo): Add dependency rule.
3878 * Makefile.in: Regenerate.
3879 * config.bfd (ia64*-*-*vms*): Add case.
3880 * configure.in (bfd_elf64_ia64_vms_vec): Add case.
3881 * configure: Regenerate.
3882 * vmsutil.c: New file.
3883 * vmsutil.h: New file.
3884 * elf-bfd.h (struct bfd_elf_special_section): Change type of
3885 attr to bfd_vma.
3886 * elfxx-ia64.c (elfNN_vms_post_process_headers,
3887 elfNN_vms_section_processing, elfNN_vms_final_write_processing,
3888 elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr,
3889 elfNN_vms_object_p): New functions
3890 * targets.c (bfd_elf64_ia64_vms_vec): New target.
3891
a33dafc3
L
38922009-01-14 H.J. Lu <hongjiu.lu@intel.com>
3893
3894 PR ld/9727
3895 * elflink.c (elf_gc_sweep): Exclude the group section if the
3896 first member of the section group is excluded.
3897
13c0e967
AM
38982009-01-14 Alan Modra <amodra@bigpond.net.au>
3899
3900 PR 9735
3901 * syms.c (_bfd_stab_section_find_nearest_line): Don't free
3902 saved filename, use bfd_alloc rather than bfd_malloc for it.
3903
460e679b
AM
39042009-01-13 Alan Modra <amodra@bigpond.net.au>
3905
3906 * elf32-spu.c (spu_elf_build_stubs): Make __icache_base absolute.
3907
25076afa
AM
39082009-01-13 Alan Modra <amodra@bigpond.net.au>
3909
3910 * elf32-spu.c (remove_cycles): Always set call->max_depth.
3911
37107878
AM
39122009-01-12 Alan Modra <amodra@bigpond.net.au>
3913
3914 * elf32-spu.c (spu_elf_auto_overlay): Correct vma mask.
3915
cd4a7468
AM
39162009-01-12 Alan Modra <amodra@bigpond.net.au>
3917
3918 * elf32-spu.c (struct spu_link_hash_table): Add init, line_size_log2,
3919 num_lines_log2.
3920 (struct got_entry): Add br_addr.
3921 (struct call_info): Add priority.
3922 (struct function_info): Add lr_store and sp_adjust.
3923 (spu_elf_setup): Init line_size_log2 and num_lines_log2.
3924 (spu_elf_find_overlays): For soft-icache, mark any section within cache
3925 area as an overlay, and check that no other overlays exist. Look up
3926 icache overlay manager entry sym.
3927 (BRA_STUBS, BRA, BRASL): Define.
3928 (enum _stub_type): Replace ovl_stub with call_ovl_stub and br*_ovl_stub.
3929 (needs_ovl_stub): Adjust for soft-icache. Return priority encoded
3930 in branch insn.
3931 (count_stub, build_stub): Support soft-icache.
3932 (build_spuear_stubs, process_stubs): Adjust build_stub call.
3933 (spu_elf_size_stubs): Size soft-icache stubs.
3934 (overlay_index): New function.
3935 (spu_elf_build_stubs): Make static. Support soft-icache.
3936 (spu_elf_check_vma): Don't turn off auto_overlay if soft-icache.
3937 (find_function_stack_adjust): Save lr store and stack adjust insn
3938 offsets.
3939 (maybe_insert_function): Adjust find_function_stack_adjust call.
3940 (mark_functions_via_relocs): Retrieve priority.
3941 (remove_cycles): Only warn about pruned arcs when stack_analysis.
3942 (sort_calls): Sort by priority first.
3943 (mark_overlay_section): Ignore .ovl.init.
3944 (sum_stack): Only print when stack_analysis.
3945 (print_one_overlay_section): New function, extracted from..
3946 (spu_elf_auto_overlay): ..here. Support soft-icache overlays.
3947 (spu_elf_stack_analysis): Only print when htab->stack_analysis.
3948 (spu_elf_final_link): Call spu_elf_stack_analysis for lrlive
3949 analysis. Call spu_elf_build_stubs.
3950 (spu_elf_relocate_section): For soft-icache encode overlay index
3951 into addresses.
3952 (spu_elf_output_symbol_hook): Support soft-icache.
3953 (spu_elf_modify_program_headers: Likewise.
37107878 3954
cd4a7468
AM
3955 * elf32-spu.h (struct spu_elf_params): Add lrlive_analysis. Rename
3956 num_regions to num_lines. Add line_size and max_branch.
3957 (enum _ovly_flavour): Add ovly_soft_icache.
3958 (spu_elf_build_stubs): Delete.
3959
80c29487
JK
39602009-01-11 Jan Kratochvil <jan.kratochvil@redhat.com>
3961
3962 * elflink.c (_bfd_elf_section_already_linked): Handle g++-3.4
3963 relocations in `.gnu.linkonce.r.*' referencing its `.gnu.linkonce.t.*'.
3964
1bc86aea
HPN
39652009-01-07 Hans-Peter Nilsson <hp@axis.com>
3966
3967 * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
3968 <case R_CRIS_16_GOT_GD, R_CRIS_32_GOT_GD>: For a symbol defined in
3969 the program, the known offset starts at the negative size of the
3970 TLS section.
3971 <case R_CRIS_32_IE, R_CRIS_32_GOT_TPREL, R_CRIS_16_GOT_TPREL>:
3972 Similar.
3973
3baa454d 39742009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
75606e85 3975
3baa454d 3976 * config.bfd: Add lm32-*-rtems*.
75606e85 3977
9dbe8890
L
39782009-01-03 H.J. Lu <hongjiu.lu@intel.com>
3979
3980 * coff-ppc.c: Add 2009 to Copyright.
3981 * elf32-cris.c: Likewise.
3982 * elflink.c: Likewise.
3983
0bdf8d40
HPN
39842009-01-03 Hans-Peter Nilsson <hp@axis.com>
3985
3986 * elf32-cris.c (elf_cris_finish_dynamic_symbol): Rename
3987 gotplt_index to rela_plt_index. Adjust for R_CRIS_DTPMOD entry.
3988
54ac0771
L
39892009-01-02 H.J. Lu <hongjiu.lu@intel.com>
3990
3991 PR ld/9679
3992 * elflink.c (elf_merge_st_other): New.
3993 (_bfd_elf_merge_symbol): Use it on skipped weak definitions and
3994 hide them if needed.
3995 (elf_link_add_object_symbols): Updated.
3996
d8880531
L
39972009-01-02 H.J. Lu <hongjiu.lu@intel.com>
3998
3999 PR ld/9676
4000 * elflink.c (elf_link_add_object_symbols): Update def_dynamic,
4001 ref_dynamic and dynamic_def fields when setting def_regular
4002 to 1.
4003
b70b5c14
NC
40042009-01-02 Curtis Mackie <curtmackevo@gmail.com>
4005
4006 PR 9682
4007 * coff-ppc.c (dump_toc): Fix up calls to fprintf without a string
4008 literal.
4009
d8880531 4010For older changes see ChangeLog-2008
56882138
AM
4011\f
4012Local Variables:
4013mode: change-log
4014left-margin: 8
4015fill-column: 74
4016version-control: never
4017End:
This page took 0.675902 seconds and 4 git commands to generate.