[x86] Resolve non-PIC undefweak symbols in executable
[deliverable/binutils-gdb.git] / bfd / ChangeLog
1 2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
2
3 PR ld/19636
4 PR ld/19704
5 PR ld/19719
6 * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
7 (elf_i386_link_hash_entry): Add has_got_reloc and
8 has_non_got_reloc.
9 (elf_i386_link_hash_table): Add interp.
10 (elf_i386_link_hash_newfunc): Initialize has_got_reloc and
11 has_non_got_reloc.
12 (elf_i386_copy_indirect_symbol): Copy has_got_reloc and
13 has_non_got_reloc.
14 (elf_i386_check_relocs): Set has_got_reloc and has_non_got_reloc.
15 (elf_i386_fixup_symbol): New function.
16 (elf_i386_pie_finish_undefweak_symbol): Likewise.
17 (elf_i386_allocate_dynrelocs): Don't allocate space for dynamic
18 relocations and discard relocations against resolved undefined
19 weak symbols in executable. Don't make resolved undefined weak
20 symbols in executable dynamic. Keep dynamic non-GOT/non-PLT
21 relocation against undefined weak symbols in PIE.
22 (elf_i386_size_dynamic_sections): Set interp to .interp section.
23 (elf_i386_relocate_section): Don't generate dynamic relocations
24 against resolved undefined weak symbols in PIE, except for
25 R_386_PC32.
26 (elf_i386_finish_dynamic_symbol): Keep PLT/GOT entries without
27 dynamic PLT/GOT relocations for resolved undefined weak symbols.
28 Don't generate dynamic relocation against resolved undefined weak
29 symbol in executable.
30 (elf_i386_finish_dynamic_sections): Call
31 elf_i386_pie_finish_undefweak_symbol on all symbols in PIE.
32 (elf_backend_fixup_symbol): New.
33 * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
34 (elf_x86_64_link_hash_entry): Add has_got_reloc and
35 has_non_got_reloc.
36 (elf_x86_64_link_hash_table): Add interp.
37 (elf_x86_64_link_hash_newfunc): Initialize has_got_reloc and
38 has_non_got_reloc.
39 (elf_x86_64_copy_indirect_symbol): Copy has_got_reloc and
40 has_non_got_reloc.
41 (elf_x86_64_check_relocs): Set has_got_reloc and
42 has_non_got_reloc.
43 (elf_x86_64_fixup_symbol): New function.
44 (elf_x86_64_pie_finish_undefweak_symbol): Likewise.
45 (elf_x86_64_allocate_dynrelocs): Don't allocate space for dynamic
46 relocations and discard relocations against resolved undefined
47 weak symbols in executable. Don't make resolved undefined weak
48 symbols in executable dynamic.
49 (elf_x86_64_size_dynamic_sections): Set interp to .interp section.
50 (elf_x86_64_relocate_section): Check relocation overflow for
51 dynamic relocations against unresolved weak undefined symbols.
52 Don't generate dynamic relocations against resolved weak
53 undefined symbols in PIE.
54 (elf_x86_64_finish_dynamic_symbol): Keep PLT/GOT entries without
55 dynamic PLT/GOT relocations for resolved undefined weak symbols.
56 Don't generate dynamic relocation against resolved undefined weak
57 symbol in executable.
58 (elf_x86_64_finish_dynamic_sections): Call
59 elf_x86_64_pie_finish_undefweak_symbol on all symbols in PIE.
60 (elf_backend_fixup_symbol): New.
61
62 2016-02-26 Alan Modra <amodra@gmail.com>
63
64 * elf64-ppc.c (create_linkage_sections): Create sfpr when
65 save_restore_funcs, rest of sections when not relocatable.
66 (ppc64_elf_init_stub_bfd): Always call create_linkage_sections.
67 (sfpr_define): Define all symbols on emitted code.
68 (ppc64_elf_func_desc_adjust): Adjust for sfpr now being created
69 when relocatable. Move sfpr_define loop earlier.
70
71 2016-02-24 H.J. Lu <hongjiu.lu@intel.com>
72
73 * elf64-x86-64.c (elf_x86_64_need_pic): New function.
74 (elf_x86_64_relocate_section): Use it. Replace
75 x86_64_elf_howto_table[r_type] with howto.
76
77 2016-02-24 H.J. Lu <hongjiu.lu@intel.com>
78
79 PR ld/19698
80 * elflink.c (bfd_elf_record_link_assignment): Set versioned if
81 symbol version is unknown.
82
83 2016-02-24 H.J. Lu <hongjiu.lu@intel.com>
84
85 * elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset
86 to (bfd_vma) -1 when setting needs_plt to 0.
87 * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
88
89 2016-02-23 H.J. Lu <hongjiu.lu@intel.com>
90
91 * elflink.c (bfd_elf_record_link_assignment): Check for shared
92 library, instead of PIC, and don't check PDE when making linker
93 assigned symbol dynamic.
94
95 2016-02-23 Faraz Shahbazker <faraz.shahbazker@imgtec.com>
96
97 * bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Increment
98 ABIVERSION for non-executable stack.
99
100 2016-02-23 Rich Felker <bugdal@aerifal.cx>
101
102 PR target/19516
103 * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol):
104 Always produce a RELATIVE reloc for a local symbol.
105
106 2016-02-23 Hans-Peter Nilsson <hp@axis.com>
107
108 Fix test-case ld-elf/pr19617b
109 * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
110 discard unused non-function symbols when --dynamic-list-data.
111
112 2016-02-22 H.J. Lu <hongjiu.lu@intel.com>
113
114 * elflink.c (_bfd_elf_link_renumber_dynsyms): Always create the
115 dynsym section, even if it is empty, with dynamic sections.
116
117 2016-02-22 H.J. Lu <hongjiu.lu@intel.com>
118
119 * syms.c: Remove BSF_COMMON from comments.
120 * bfd-in2.h: Regenerated.
121
122 2016-02-22 Jiong Wang <jiong.wang@arm.com>
123
124 * elfnn-aarch64. (aarch64_type_of_stub): Remove redundation calcuation
125 for destination. Remove useless function parameters.
126 (elfNN_aarch64_size_stubs): Update parameters for aarch64_type_of_stub.
127
128 2016-02-19 Nick Clifton <nickc@redhat.com>
129
130 PR ld/19629
131 * aoutx.h (aout_link_add_symbols): Check for out of range string
132 table offsets.
133
134 PR ld/19628
135 * reloc.c (bfd_generic_get_relocated_section_contents): Stop
136 processing if we encounter a reloc without an associated symbol.
137
138 2016-02-18 H.J. Lu <hongjiu.lu@intel.com>
139
140 PR ld/19617
141 * elflink.c (elf_link_add_object_symbols): Always create dynamic
142 sections for -E/--dynamic-list.
143
144 2016-02-17 H.J. Lu <hongjiu.lu@intel.com>
145
146 * elf64-x86-64.c (elf_backend_omit_section_dynsym): New. Defined
147 to bfd_true.
148
149 2016-02-16 Joseph Myers <joseph@codesourcery.com>
150
151 * plugin.c (plugin_vec): Set match priority to 255.
152 * format.c (bfd_check_format_matches) [BFD_SUPPORTS_PLUGINS]: When
153 matching against the plugin vector, take priority from there not
154 from TEMP.
155
156 2016-02-15 Nick Clifton <nickc@redhat.com>
157
158 * elf-bfd.h (struct bfd_elf_special_section): Use unsigned values
159 for length and type fields. Use a signed value for the
160 suffix_length field.
161
162 2016-02-10 H.J. Lu <hongjiu.lu@intel.com>
163
164 PR ld/19601
165 * elf32-i386.c (elf_i386_relocate_section): Mask off the least
166 significant bit in GOT offset for R_386_GOT32X.
167
168 2016-02-10 Nick Clifton <nickc@redhat.com>
169
170 PR 19405
171 * elf32-nios2.c (nios2_elf32_install_imm16): Allow for signed
172 immediate values.
173 * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Limit the
174 number of messages about FDE encoding preventing .eh_frame_hdr
175 generation.
176
177 2016-02-09 Nick Clifton <nickc@redhat.com>
178
179 * oasys.c (oasys_archive_p): Fix indentation.
180 * elf32-nds32.c (nds32_elf_relax_section): Use an unsigned
181 constant for left shifting.
182
183 * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Add a more
184 helpful warning message to explain why certain AArch64 relocs
185 might overflow.
186
187 2016-02-05 Simon Marchi <simon.marchi@ericsson.com>
188
189 * pe-mips.c (coff_mips_reloc): Fix formatting.
190
191 2016-02-05 Cupertino Miranda <Cupertino.Miranda@synopsys.com>
192
193 * cpu-arc.c: Change default archure from bfd_mach_arc_arcv2
194 to bfd_mach_arc_arc600.
195
196 2016-02-04 Alan Modra <amodra@gmail.com>
197
198 * elf64-ppc.c (ppc64_elf_relocate_section): Adjust last patch
199 for big-endian.
200
201 2016-02-02 H.J. Lu <hongjiu.lu@intel.com>
202
203 PR ld/19542
204 * elf64-x86-64.c (elf_x86_64_convert_load): Store the estimated
205 distances in the compressed_size field of the output section.
206
207 2016-02-02 Alan Modra <amodra@gmail.com>
208
209 * elf64-ppc.c (ppc64_elf_relocate_section): Further restrict
210 ELFv2 entry optimization.
211
212 2016-02-02 H.J. Lu <hongjiu.lu@intel.com>
213
214 PR binutils/19547
215 * elf.c (assign_section_numbers): Clear HAS_RELOC if there are
216 no relocations in relocatable files.
217
218 2016-02-01 H.J. Lu <hongjiu.lu@intel.com>
219
220 PR ld/19553
221 * elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
222 if a symbol from a library loaded via DT_NEEDED doesn't match
223 the symbol referenced by regular object.
224
225 2016-02-01 Nathaniel Smith <njs@pobox.com>
226
227 * peicode.h (pe_ILF_build_a_bfd): Create an import symbol for both
228 CODE and DATA.
229
230 2016-02-01 Alan Modra <amodra@gmail.com>
231
232 * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Don't abort on
233 an out of range reloc_index.
234 * elf32-i386.c (elf_i386_get_plt_sym_val): Likewise.
235
236 2016-02-01 Kamil Rytarowski <n54@gmx.com>
237
238 * Makefile.am (OPTIONAL_BACKENDS): Add netbsd-core.lo.
239 (OPTIONAL_BACKENDS_CFILES): Add netbsd-core.c.
240 * Makefile.in: Regenerated.
241
242 2016-02-01 Jan Kratochvil <jan.kratochvil@redhat.com>
243
244 * elf64-s390.c (elf_s390_reloc_name_lookup): Fix indentation.
245
246 2016-01-31 John David Anglin <danglin@gcc.gnu.org>
247
248 PR ld/19526
249 * elf32-hppa.c (elf32_hppa_final_link): Don't sort non-regular output
250 files.
251 * elf64-hppa.c (elf32_hppa_final_link): Likewise. Remove retval.
252
253 2016-01-30 H.J. Lu <hongjiu.lu@intel.com>
254
255 PR ld/19539
256 * elf32-i386.c (elf_i386_reloc_type_class): Check relocation
257 against STT_GNU_IFUNC symbol only with dynamic symbols.
258 * elf64-x86-64.c (elf_x86_64_reloc_type_class): Likewise.
259
260 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
261
262 PR binutils/19523
263 * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Set BFD_DECOMPRESS to
264 decompress debug sections.
265
266 2016-01-25 Maciej W. Rozycki <macro@imgtec.com>
267
268 * elf32-arc.c (elf_arc_finish_dynamic_symbol): Rename `index' to
269 `dynindx'.
270
271 2016-01-25 Nick Clifton <nickc@redhat.com>
272
273 PR target/19435
274 * mach-o.c (bfd_mach_o_close_and_cleanup): Suppress code to free
275 dsym filename buffer.
276
277 2016-01-24 Maciej W. Rozycki <macro@imgtec.com>
278
279 * elfxx-mips.c (BZ16_REG_FIELD): Simplify calculation.
280
281 2016-01-24 Maciej W. Rozycki <macro@imgtec.com>
282
283 * elfxx-mips.c (BZ16_REG): Correct calculation.
284
285 2016-01-21 Nick Clifton <nickc@redhat.com>
286
287 * elf32-arc.c (ADD_RELA): Fix compile time warning errors by
288 changing the type of _loc to be bfd_byte *.
289 (elf_arc_finish_dynamic_symbol): Likewise.
290
291 2016-01-21 Nick Clifton <nickc@redhat.com>
292
293 PR ld/19455
294 * elf32-arm.c (elf32_arm_create_dynamic_sections): Set the ELF
295 class of the linker stub bfd.
296 (elf32_arm_check_relocs): Skip check for pic format after
297 processing a vxWorks R_ARM_ABS12 reloc.
298 * elflink.c (bfd_elf_final_link): Check for ELFCLASSNONE when
299 reporting a class mismatch.
300
301 2016-01-21 Jiong Wang <jiong.wang@arm.com>
302
303 * elfnn-aarch64.c (aarch64_type_of_stub): Allow insert long branch
304 veneer for sym_sec != input_sec.
305 (elfNN_aarch64_size_stub): Support STT_SECTION symbol.
306 (elfNN_aarch64_final_link_relocate): Take rela addend into account when
307 calculation destination.
308
309 2016-01-21 Alan Modra <amodra@gmail.com>
310
311 * elf-linux-core.h (swap_linux_prpsinfo32_out): New function.
312 (swap_linux_prpsinfo64_out): New function.
313 (LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
314 (LINUX_PRPSINFO64_SWAP_FIELDS): Delete.
315 * elf.c (elfcore_write_linux_prpsinfo32): Adjust. Don't memset.
316 (elfcore_write_linux_prpsinfo64): Likewise.
317 * elf32-ppc.c (swap_ppc_linux_prpsinfo32_out): New function.
318 (PPC_LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
319 (elfcore_write_ppc_linux_prpsinfo32): Adjust. Don't memset.
320
321 2016-01-21 Alan Modra <amodra@gmail.com>
322
323 * elf-linux-core.h: Rename from elf-linux-psinfo.h.
324 * elf.c: Adjust #include.
325 * elf32-ppc.c: Don't #include elf-linux-psinfo.h
326 * Makefile.am (SOURCE_HFILES): Update.
327 * Makefile.in: Regenerate.
328 * po/SRC-PORFILES.in: Regenerate.
329
330 2016-01-21 Alan Modra <amodra@gmail.com>
331
332 * configure.ac: Move corefile selection later in file. Move
333 tdefaults code immediately after other target vector code.
334 * configure: Regenerate.
335
336 2016-01-20 Mickael Guene <mickael.guene@st.com>
337
338 * elf32-arm.c (elf32_arm_special_sections): Remove catch of noread
339 section using '.text.noread' pattern.
340
341 2016-01-19 John Baldwin <jhb@FreeBSD.org>
342
343 * elf.c (elfcore_grok_note): Recognize NT_FREEBSD_THRMISC notes.
344
345 2016-01-18 Miranda Cupertino <Cupertino.Miranda@synopsys.com>
346 Zissulescu Claudiu <Claudiu.Zissulescu@synopsys.com>
347
348 * arc-plt.def: New file.
349 * arc-plt.h: Likewise.
350 * elf32-arc.c (elf_arc_abs_plt0_entry, elf_arc_abs_pltn_entry,
351 elf_arcV2_abs_plt0_entry, elf_arcV2_abs_pltn_entry,
352 elf_arc_pic_plt0_entry, elf_arc_pic_pltn_entry,
353 elf_arcV2_pic_plt0_entry, elf_arcV2_pic_pltn_entry): Remove.
354 (name_for_global_symbol): Added.
355 (ADD_RELA): Helper to create dynamic relocs.
356 (new_got_entry_to_list): Create a new got entry in linked list.
357 (symbol_has_entry_of_type): Search for specific type of entry in
358 list.
359 (is_reloc_for_GOT): return FALSE for any TLS related relocs.
360 (is_reloc_for_TLS, arc_elf_set_private_flags)
361 (arc_elf_print_private_bfd_data, arc_elf_copy_private_bfd_data)
362 (arc_elf_merge_private_bfd_data): New functions.
363 (debug_arc_reloc): Cleaned debug info printing.
364 (PDATA reloc): Changed not to perform address alignment.
365 (reverse_me): Added. Fix for ARC_32 relocs.
366 (arc_do_relocation): Return bfd_reloc_of when no relocation should
367 occur.
368 (arc_get_local_got_ents): Renamed from arc_get_local_got_offsets.
369 Changed function to access an array of list of GOT entries instead
370 of just an array of offsets.
371 (elf_arc_relocate_section): Added support for PIC and TLS related relocations.
372 (elf_arc_check_relocs): Likewise.
373 (elf_arc_adjust_dynamic_symbol, elf_arc_finish_dynamic_symbol,
374 (elf_arc_finish_dynamic_sections): Likewise
375 (arc_create_dynamic_sections): Modified conditions to create
376 dynamic sections.
377 (ADD_SYMBOL_REF_SEC_AND_RELOC): New macro.
378 (plt_do_relocs_for_symbol, relocate_plt_for_symbol)
379 (relocate_plt_for_entry): Changed to support new way to define PLT
380 related code.
381 (add_symbol_to_plt): Likewise.
382 (arc_elf_link_hash_table_create): New function.
383
384 2016-01-18 Nick Clifton <nickc@redhat.com>
385
386 PR ld/19440
387 * coff-rs6000.c (_bfd_xcoff_swap_sym_in): Sign extend external
388 section number into internal section number.
389 * coff64-rs6000.c (_bfd_xcoff64_swap_sym_in): Likewise.
390 * coffswap.h (coff_swap_sym_in): Likewise.
391 * peXXigen.c (_bfd_XXi_swap_sym_in): Likewise.
392 * coffcode.h (_coff_bigobj_swap_sym_in): Make sure that internal
393 section number field is big enough to hold the external value.
394
395 2016-01-17 Alan Modra <amodra@gmail.com>
396
397 * configure: Regenerate.
398
399 2016-01-12 Yury Usishchev <y.usishchev@samsung.com>
400
401 * elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind
402 when address in first unwind entry does not match start of
403 section.
404
405 2016-01-08 Richard Sandiford <richard.sandiford@arm.com>
406 Jiong Wang <jiong.wang@arm.com>
407
408 PR ld/19368
409 * elf32-arm.c (elf32_arm_reloc_type_class): Map R_ARM_IRELATIVE to
410 reloc_class_ifunc.
411
412 2016-01-06 Andrew Burgess <andrew.burgess@embecosm.com>
413
414 * elf32-arc.c (reloc_type_to_name): Change ARC_RELOC_HOWTO to
415 place 'R_' before the reloc name returned.
416 (elf_arc_howto_table): Change ARC_RELOC_HOWTO to place 'R_' before
417 the relocation string.
418
419 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
420
421 * elfxx-mips.c (mips_elf_merge_obj_abiflags): New function,
422 factored out from...
423 (_bfd_mips_elf_merge_private_bfd_data): ... here.
424
425 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
426
427 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Move
428 attribute check after ELF file header flag check.
429
430 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
431
432 * elfxx-mips.c (mips_elf_merge_obj_attributes): Propagate the
433 return status from `_bfd_elf_merge_object_attributes'.
434
435 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
436
437 * elfxx-mips.c (mips_elf_merge_obj_e_flags): New function,
438 factored out from...
439 (_bfd_mips_elf_merge_private_bfd_data): ... here.
440
441 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
442
443 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Fold the
444 handling of input MIPS ABI flags together.
445
446 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
447
448 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Suppress
449 attribute checks for null input.
450
451 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
452
453 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Use local
454 pointers to target data.
455
456 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
457
458 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct
459 an FP ABI warning.
460
461 2016-01-01 Alan Modra <amodra@gmail.com>
462
463 Update year range in copyright notice of all files.
464
465 For older changes see ChangeLog-2015 and doc/ChangeLog-0415
466 \f
467 Copyright (C) 2016 Free Software Foundation, Inc.
468
469 Copying and distribution of this file, with or without modification,
470 are permitted in any medium without royalty provided the copyright
471 notice and this notice are preserved.
472
473 Local Variables:
474 mode: change-log
475 left-margin: 8
476 fill-column: 74
477 version-control: never
478 End:
This page took 0.226925 seconds and 4 git commands to generate.