1 2020-12-15 Vivek Das Mohapatra <vivek@collabora.com>
3 Implement -z unique / -z nounique options.
4 * layout.cc (Layout::finish_dynamic_section): Set DF_GNU_1_UNIQUE.
5 * options.h (class General_options): Handle -z unique, -z nounique.
7 2020-12-13 Cary Coutant <ccoutant@gmail.com>
11 * testsuite/Makefile.am (incremental_copy_test): Re-enable for GCC 9+.
12 (incremental_comdat_test_1): Likewise.
13 * testsuite/Makefile.in: Regenerate.
15 2020-12-13 Cary Coutant <ccoutant@gmail.com>
18 * object.cc (Sized_relobj_file::layout_gnu_property_section): Ignore
19 Gnu properties during incremental links.
21 2020-12-13 Cary Coutant <ccoutant@gmail.com>
24 * layout.cc (Layout::init_fixed_output_section): Mask out flags that
25 should be ignored when matching sections.
27 2020-12-07 Alan Modra <amodra@gmail.com>
29 * plugin.cc (Plugin_recorder::init): Replace strncpy with memcpy.
31 2020-12-03 Alan Modra <amodra@gmail.com>
33 * testsuite/Makefile.am (pr26936a.o): Pass -mx86-used-note=yes.
34 (pr26936b.o, pr26936c.o, pr26936d.o): Likewise.
35 * testsuite/Makefile.in: Regenerate.
37 2020-11-29 H.J. Lu <hongjiu.lu@intel.com>
40 * x86_64.cc (Output_data_plt_x86_64_ibt::tlsdesc_plt_entry): Add
42 (Output_data_plt_x86_64_ibt::do_fill_tlsdesc_entry): Adjusted.
44 2020-11-29 H.J. Lu <hongjiu.lu@intel.com>
47 * x86_64.cc (Target_x86_64<size>::Scan::local): Check
48 get_r_addend() == -4 for GOTPCRELX conversion.
49 (Target_x86_64<size>::Scan::global): Likewise.
50 (Target_x86_64<size>::Relocate::relocate): Likewise.
51 * testsuite/Makefile.am (check_DATA): Add
52 x86_64_mov_to_lea15.stdout and x86_64_mov_to_lea16.stdout.
53 (MOSTLYCLEANFILES): Add x86_64_mov_to_lea15 and
55 (x86_64_mov_to_lea9.o): New target.
56 (x86_64_mov_to_lea10.o): Likewise.
57 (x86_64_mov_to_lea15): Likewise.
58 (x86_64_mov_to_lea16): Likewise.
59 (x86_64_mov_to_lea15.stdout): Likewise.
60 (x86_64_mov_to_lea16.stdout): Likewise.
61 * testsuite/Makefile.in: Regenerated.
62 * testsuite/x86_64_mov_to_lea.sh: Updated.
63 * testsuite/x86_64_mov_to_lea5.s: New file.
65 2020-11-29 H.J. Lu <hongjiu.lu@intel.com>
68 * object.cc (Sized_relobj_file::map_to_kept_section): Get the
69 section index for linkonce section. Also check the single
71 * testsuite/Makefile.am (check_SCRIPTS): Add pr26936.sh.
72 (check_DATA): Add pr26936a.stdout and pr26936b.stdout.
73 (MOSTLYCLEANFILES): Add pr26936a and pr26936b.
74 (pr26936a.stdout): New target.
76 (pr26936b.stdout): Likewise.
78 (pr26936a.o): Likewise.
79 (pr26936b.o): Likewise.
80 (pr26936c.o): Likewise.
81 (pr26936d.o): Likewise.
82 * testsuite/Makefile.in: Regenerated.
83 * testsuite/pr26936.sh: New file.
84 * testsuite/pr26936a.s: Likewise.
85 * testsuite/pr26936b.s: Likewise.
86 * testsuite/pr26936c.s: Likewise.
87 * testsuite/pr26936d.s: Likewise.
89 2020-11-17 Alan Modra <amodra@gmail.com>
91 * powerpc.cc (Target_powerpc::no_tprel_opt_): Rename from tprel_opt_.
93 (Target_powerpc::tprel_opt): Test parameters->options().tls_optimize().
94 (Target_powerpc::set_tprel_opt): Delete.
95 (Target_powerpc::set_no_tprel_opt): New function. Update all uses
98 2020-11-16 Michael Hudson-Doyle <michael.hudson@canonical.com>
101 * powerpc.cc (Relocate::relocate): Do not include local entry
102 offset of target function when computing the address of a stub.
104 2020-11-08 H.J. Lu <hongjiu.lu@intel.com>
107 * plugin.cc (Plugin_manager::claim_file): Don't share Plugin_list
109 (Plugin_manager::all_symbols_read): Likewise.
110 (Plugin_manager::cleanup): Likewise.
112 2020-11-03 Alan Modra <amodra@gmail.com>
114 * powerpc.cc (Target_powerpc::tocsave_loc): Return a pointer.
115 (Target_powerpc::Relocate::relocate): Avoid -Wdangling-gsl error.
117 2020-11-03 Nick Gasson <nick.gasson@arm.com>
120 * fileread.cc (File_read::open): Ensure file_counts_lock is
122 * testsuite/Makefile.am (check_PROGRAMS): Add a test that passes
124 * testsuite/Makefile.in: Regenerate.
126 2020-10-30 H.J. Lu <hongjiu.lu@intel.com>
128 * testsuite/gnu_property_test.sh: Updated.
130 2020-10-22 H.J. Lu <hongjiu.lu@intel.com>
132 * Makefile.am (bootstrap-test): Skip for LTO build.
133 (bootstrap-test-r): Likewise.
135 2020-10-13 H.J. Lu <hongjiu.lu@intel.com>
138 * configure.ac: Check for GCC 9 or later and for -fcf-protection.
139 * configure: Regenerated.
140 * testsuite/Makefile.am (check_PROGRAMS): Skip incremental_test_2,
141 incremental_test_3, incremental_test_4, incremental_test_5,
142 incremental_copy_test, incremental_common_test_1 and
143 incremental_comdat_test_1 for -fcf-protection. Also Skip
144 incremental_copy_test and incremental_comdat_test_1 for GCC 9 or
146 * testsuite/Makefile.in: Regenerated.
148 2020-10-13 H.J. Lu <hongjiu.lu@intel.com>
151 * testsuite/Makefile.am (justsyms_lib): Pass
152 -T $(srcdir)/justsyms_lib.t to gold.
153 * testsuite/Makefile.in: Regenerated.
154 * testsuite/justsyms_lib.t: New file.
155 * testsuite/script_test_10.t: Discard .note.gnu.property section.
157 2020-10-13 H.J. Lu <hongjiu.lu@intel.com>
159 * x86_64.cc (Target_x86_64::Target_x86_64): Initialize
160 feature_2_used_, feature_2_needed_ and object_feature_2_used_.
161 (Target_x86_64::feature_2_used_): New data member.
162 (Target_x86_64::feature_2_needed_): Likewise.
163 (Target_x86_64::object_isa_1_used_): Likewise.
164 (Target_x86_64::record_gnu_property): Support
165 GNU_PROPERTY_X86_COMPAT_ISA_1_USED,
166 GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED,
167 GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED,
168 GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED,
169 GNU_PROPERTY_X86_FEATURE_2_USED and
170 GNU_PROPERTY_X86_FEATURE_2_NEEDED.
171 (Target_x86_64::merge_gnu_properties): Merge FEATURE_2_USED bits.
172 Initialize object_feature_2_used_.
173 (Target_x86_64::do_finalize_gnu_properties): Support
174 GNU_PROPERTY_X86_FEATURE_2_USED and
175 GNU_PROPERTY_X86_FEATURE_2_NEEDED.
176 * testsuite/gnu_property_a.S (GNU_PROPERTY_X86_ISA_1_USED): Set
178 (GNU_PROPERTY_X86_ISA_1_NEEDED): Set to 0xc0008002.
179 * testsuite/gnu_property_b.S (GNU_PROPERTY_X86_ISA_1_USED): Set
181 (GNU_PROPERTY_X86_ISA_1_NEEDED): Set to 0xc0008002.
182 * testsuite/gnu_property_c.S (GNU_PROPERTY_X86_ISA_1_USED): Set
184 (GNU_PROPERTY_X86_ISA_1_NEEDED): Set to 0xc0008002.
185 * testsuite/gnu_property_test.sh: Updated.
187 2020-10-13 H.J. Lu <hongjiu.lu@intel.com>
191 * layout.cc (Layout::attach_allocated_section_to_segment): Place
192 a note section in a PT_NOTE segment with the same alignment. Set
193 the alignment of the PT_NOTE segment from the alignment of the
195 (Layout::create_note): Align the NT_GNU_PROPERTY_TYPE_0 note to 8
196 bytes for 64-bit ELF.
197 (Layout::segment_precedes): Place segments with larger alignments
199 * output.cc (Output_segment::Output_segment): Initialize align_.
200 * output.h (Output_segment): Add align, set_align and align_.
201 * testsuite/Makefile.am (gnu_property_test.stdout): Pass -lhSWn
203 (gnu_property_test): Pass --build-id to ld.
204 * testsuite/Makefile.in: Regenerated.
205 * testsuite/gnu_property_test.sh (check_alignment): New.
206 Use check_alignment to check the NT_GNU_PROPERTY_TYPE_0 note
207 alignment. Verify that there are 2 PT_NOTE segments.
209 2020-10-13 H.J. Lu <hongjiu.lu@intel.com>
212 * x86_64.cc (Scan::local_reloc_may_be_function_pointer): Remove
213 check for shared library.
214 (Scan::global_reloc_may_be_function_pointer): Remove check for
215 shared library and symbol visibility.
216 * testsuite/icf_safe_so_test.cc (bar_static): New function.
217 (main): Take function address of bar_static and use it.
218 * testsuite/icf_safe_so_test.sh (arch_specific_safe_fold): Also
219 check fold on x86-64. Check bar_static isn't folded.
221 2020-10-13 H.J. Lu <hongjiu.lu@intel.com>
223 * icf.cc (Icf::find_identical_sections): Skip zero-sized sections.
225 2020-10-09 Alan Modra <amodra@gmail.com>
227 * powerpc.cc (Powerpc_relobj::do_relocate_sections): Don't do
228 local entry offset optimisation for lplt_section.
229 (Target_powerpc::Branch_info::make_stub): Don't add local
230 entry offset to long branch dest passed to
231 add_long_branch_entry. Do pass st_other bits.
232 (Stub_table::Branch_stub_ent): Add "other_" field.
233 (Stub_table::add_long_branch_entry): Add "other" param, and
235 (Stub_table::branch_stub_size): Adjust long branch offset.
236 (Stub_table::do_write): Likewise.
237 (Target_powerpc::Relocate::relocate): Likewise.
239 2020-10-09 Alan Modra <amodra@gmail.com>
241 * powerpc.cc (is_got_reloc): New function.
242 (Target_powerpc::Relocate::relocate): Use it here, exclude GOT
243 relocs when looking for stubs.
245 2020-10-08 H.J. Lu <hongjiu.lu@intel.com>
247 * testsuite/split_i386.sh: Updated for --split-stack-adjust-size
249 * testsuite/split_x86_64.sh: Likewise.
251 2020-10-08 Alan Modra <amodra@gmail.com>
253 * options.h (split_stack_adjust_size): Default to 0x100000.
255 2020-09-26 Alan Modra <amodra@gmail.com>
257 * powerpc.cc (Target_powerpc): Rename power10_stubs_ to
259 (Target_powerpc::set_power10_relocs): New accessor.
260 (Target_powerpc::set_power10_stubs): Delete.
261 (Target_powerpc::power10_stubs): Adjust.
262 (Target_powerpc::has_localentry0): New accessor.
263 (ld_0_11): New constant.
264 (glink_eh_frame_fde_64v1, glink_eh_frame_fde_64v2): Adjust.
265 (glink_eh_frame_fde_64v2_localentry0): New.
266 (Output_data_glink::pltresolve_size): Update.
267 (Output_data_glink::add_eh_frame): Use localentry0 version eh_frame.
268 (Output_data_glink::do_write): Move r2 save to start of ELFv2 stub
269 and only emit for has_localentry0. Don't use r2 in the stub.
270 (Target_powerpc::Scan::local, global): Adjust for
271 set_power10_relocs renaming.
272 (Target_powerpc::scan_relocs): Warn and reset plt_localentry0_.
274 2020-09-24 Alan Modra <amodra@gmail.com>
276 * powerpc.cc (Target_powerpc::Relocate::relocate): Don't skip
277 first insn of __tls_get_addr_opt stub.
279 2020-08-24 Alan Modra <amodra@gmail.com>
281 * powerpc.cc (Target_powerpc): Add tprel_opt_ and accessors.
282 (Target_powerpc::Scan::local): Sanity check tprel high relocs.
283 (Target_powerpc::Scan::global): Likewise.
284 (Target_powerpc::Relocate::relocate): Control tprel optimisation
285 with tprel_opt_ and enable for 32-bit.
287 2020-08-12 Nick Clifton <nickc@redhat.com>
289 * po/sr.po: Updated Serbian translation.
291 2020-07-27 Alan Modra <amodra@gmail.com>
293 * options.h (DEFINE_enum): Add optional_arg__ param, adjust
295 (General_options): Add --power10-stubs and --no-power10-stubs.
296 * options.cc (General_options::parse_no_power10_stubs): New.
297 (General_options::finalize): Handle --power10-stubs.
298 * powerpc.cc (set_power10_stubs): Don't set when --power10-stubs=no.
299 (power10_stubs_auto): New.
300 (struct Plt_stub_ent): Add toc_ and tocoff_. Don't use a bitfield
302 (struct Branch_stub_ent): Add toc_and tocoff_. Use bitfields for
303 iter_, notoc_ and save_res_.
304 (add_plt_call_entry): Set toc_. Adjust resizing conditions for
305 --power10-stubs=auto.
306 (add_long_branch_entry): Set toc_.
307 (add_eh_frame, define_stub_syms): No longer use const_iterators
308 for plt and long branch stub iteration.
309 (build_tls_opt_head, build_tls_opt_tail): Change parameters and
310 return value. Move tests for __tls_get_addr to callers.
311 (plt_call_size): Handle --power10-stubs=auto.
312 (branch_stub_size): Likewise.
313 (Stub_table::do_write): Likewise.
314 (relocate): Likewise.
316 2020-07-19 H.J. Lu <hongjiu.lu@intel.com>
318 * testsuite/bnd_ifunc_1.sh: Updated.
319 * testsuite/bnd_plt_1.sh: Likewise.
320 * testsuite/split_x32.sh: Likewise.
321 * testsuite/split_x86_64.sh: Likewise.
322 * testsuite/x86_64_indirect_call_to_direct.sh: Likewise.
324 2020-07-08 Nick Clifton <nickc@redhat.com>
326 * testsuite/script_test_7.sh: Adjust expected address of the .bss
328 * testsuite/script_test_9.sh: Do not expect the .init section to
329 immediately follow the .text section in the mapping of sections to
332 2020-07-07 Nick Clifton <nickc@redhat.com>
334 * target-reloc.h: (Default_comdat_behaviour:get): Ignore discarded
335 relocs that refer to the .gnu.build.attributes section.
337 2020-07-06 Nick Clifton <nickc@redhat.com>
339 * po/fr.po: Updated French translation.
340 * po/uk.po: Updated Ukranian translation.
342 2020-07-04 Nick Clifton <nickc@redhat.com>
344 Binutils 2.35 branch created.
346 2020-07-03 Alan Modra <amodra@gmail.com>
349 * testsuite/Makefile.am (file_in_many_sections.stdout): Add -W
351 * testsuite/Makefile.in: Regenerate.
353 2020-06-26 Nick Alcock <nick.alcock@oracle.com>
355 * configure.ac: Check for bswap_16, bswap_32, and bswap_64 decls.
356 * configure: Regenerated.
357 * config.h.in: Likewise.
359 2020-06-24 Nick Clifton <nickc@redhat.com>
361 * target-reloc.h (issue_discarded_error): Initialise the
364 2020-06-23 Roland McGrath <mcgrathr@google.com>
367 * options.h (class General_options): Add --dependency-file option.
368 * fileread.cc (File_read::files_read): New static variable.
369 (File_read::open): Add the file to the files_read list.
370 (File_read::record_file_read): New static member function.
371 (File_read::write_dependency_file): New static member function.
372 * fileread.h (class File_read): Declare them.
373 * layout.cc (Layout::read_layout_from_file): Call record_file_read.
374 (Close_task_runner::run): Call write_dependency_file if
375 --dependency-file was passed.
377 2020-06-18 Fangrui Song <i@maskray.me>
380 * layout.cc (Layout::finish_dynamic_section): Set DF_1_PIE.
382 2020-06-16 Alan Modra <amodra@gmail.com>
384 * testsuite/discard_locals_test.c: Replace uses of asm with __asm__.
385 * testsuite/discard_locals_relocatable_test.c: Likewise.
387 2020-06-16 Alan Modra <amodra@gmail.com>
389 * testsuite/Makefile.am (export_dynamic_plugin.o): Use CXXCOMPILE.
390 (plugin_test_wrap_symbols_1.o): Likewise.
391 (plugin_test_wrap_symbols_2.o): Likewise.
392 * testsuite/Makefile.in: Regenerate.
394 2020-06-15 Roland McGrath <mcgrathr@google.com>
396 Implement -z start-stop-visibility=... option.
397 * options.h (class General_options): Handle -z start-stop-visibility=.
398 (General_options::start_stop_visibility_enum): New public method.
399 (General_options::set_start_stop_visibility_enum): New private method.
400 (General_options::start_stop_visibility_enum_): New private member.
401 * options.cc (General_options::General_options): Add initializer.
402 (General_options::finalize): Set this->start_stop_visibility_enum_
404 * layout.cc (Layout::define_section_symbols): Use option setting.
406 2020-06-06 Alan Modra <amodra@gmail.com>
408 * powerpc.cc: Update throughout for reloc renaming.
410 2020-05-22 Alan Modra <amodra@gmail.com>
413 * powerpc.cc (merge_object_attributes): Replace name param with
414 obj param. Update callers. Don't init FP attributes from shared
415 libraries, and do not emit an error if they don't match.
417 2020-05-15 Nikita Ermakov <coffe92@gmail.com>
419 * powerpc.cc (do_gc_mark_symbol): Don't segfault on plugin symbols.
421 2020-05-14 Nick Clifton <nickc@redhat.com>
423 * po/sr.po: New Serbian translation.
425 2020-05-11 Alan Modra <amodra@gmail.com>
427 * powerpc.cc: Rename powerxx to power10 throughout.
429 2020-05-02 H.J. Lu <hongjiu.lu@intel.com>
432 * testsuite/Makefile.am (COMMON_TEST_C_CFLAGS): New.
433 (common_test_1.o): New rule.
434 (common_test_2.o): Likewise.
435 (common_test_3.o): Likewise.
436 (plugin_common_test_1.o): Likewise.
437 (plugin_common_test_2.o): Likewise.
438 (common_test_1_v1.o): Likewise.
439 (common_test_1_v2.o): Likewise.
440 (common_test_2_pic.o): Compile with $(COMMON_TEST_C_CFLAGS).
441 (common_test_3_pic.o): Likewise.
442 * testsuite/Makefile.in: Regenerated.
444 2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
447 * x86_64.cc (Target_x86_64<size>::Relocate::tls_desc_gd_to_ie):
448 For x32, relax "rex leal foo@tlsdesc(%rip), %reg" to
449 "rex movl foo@gottpoff(%rip), %eax" and relax ""call *(%eax)"
451 (Target_x86_64<size>::Relocate::tls_desc_gd_to_le): For x32,
452 relax "rex leal foo@tlsdesc(%rip), %reg" to
453 "rex movl foo@tpoff, %eax" and relax "call *foo@tlscall(%eax)"
455 * testsuite/Makefile.am (tls_test_gnu2.o): Depend on
457 (tls_test_file2_gnu2.o): Likewise.
458 (tls_test_c_gnu2.o): Likewise.
459 * testsuite/Makefile.in: Regenerated.
461 2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
464 * x86_64.cc (Target_x86_64<size>::Relocate::tls_desc_gd_to_ie):
465 Properly check r8 - r15 in "lea foo@TLSDESC(%rip), %reg".
466 (Target_x86_64<size>::Relocate::tls_desc_gd_to_le): Properly
467 relax r8 - r15 in "lea foo@TLSDESC(%rip), %reg".
468 * testsuite/Makefile.am (check_SCRIPTS): Add x86_64_gd_to_le.sh.
469 (check_DATA): Add x86_64_gd_to_le.stdout.
470 (MOSTLYCLEANFILES): Add x86_64_gd_to_le.
471 (x86_64_gd_to_le.o): New target.
472 (x86_64_gd_to_le): Likewise.
473 (x86_64_gd_to_le.stdout): Likewise.
474 * testsuite/Makefile.in: Regenerated.
475 * testsuite/x86_64_gd_to_le.s: New file.
476 * testsuite/x86_64_gd_to_le.sh: Likewise.
478 2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
480 * testsuite/odr_violation2.cc (Ordering::operator()): Make
481 expression even more complex.
483 2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
485 * testsuite/ver_test_pr16504.sh: Updated.
487 2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
490 * x86_64.cc (Output_data_plt_x86_64_bnd::do_write): Increment
491 plt_offset after setting the reserved TLSDESC PLT entry.
492 (Output_data_plt_x86_64_ibt<size>::do_write): Likewise.
494 2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
497 * x86_64.cc (Output_data_plt_x86_64_bnd::do_address_for_local):
498 Handle local IFUNC symbol.
499 (Output_data_plt_x86_64_ibt::do_address_for_local): Likewise.
501 2020-03-19 Fangrui Song <maskray@google.com>
503 * options.h (General_options): Add --no-rosegment option.
505 2020-02-24 Nick Clifton <nickc@redhat.com>
507 * po/fr.po: Update French translation.
509 2020-01-20 Nick Clifton <nickc@redhat.com>
511 * po/uk.po: Updated Ukranian translation.
513 2020-01-18 Nick Clifton <nickc@redhat.com>
515 * configure: Regenerate.
516 * po/gold.pot: Regenerate.
518 2020-01-18 Nick Clifton <nickc@redhat.com>
520 Binutils 2.34 branch created.
522 2020-01-01 Alan Modra <amodra@gmail.com>
524 Update year range in copyright notice of all files.
526 For older changes see ChangeLog-2019
528 Copyright (C) 2020 Free Software Foundation, Inc.
530 Copying and distribution of this file, with or without modification,
531 are permitted in any medium without royalty provided the copyright
532 notice and this notice are preserved.
538 version-control: never