12017-12-15 Alan Modra <amodra@gmail.com> 2 3 PR 22602 4 * powerpc.cc (Target_powerpc::Branch_info::mark_pltcall): Resolve 5 forwards before replacing __tls_get_addr. 6 (Target_powerpc::Branch_info::make_stub): Likewise. 7 82017-12-11 Stephen Crane <sjc@immunant.com> 9 10 * plugin.cc (Plugin::load): Include hooks for register_new_input 11 in transfer vector. 12 (Plugin::new_input): New function. 13 (register_new_input): New function. 14 (Plugin_manager::claim_file): Call Plugin::new_input if in 15 replacement phase. 16 * plugin.h (Plugin::set_new_input_handler): New function. 17 * testsuite/plugin_new_section_layout.c: New plugin to test 18 new_input plugin API. 19 * testsuite/plugin_final_layout.sh: Add new input test. 20 * testsuite/Makefile.am (plugin_layout_new_file): New test case. 21 * testsuite/Makefile.in: Regenerate. 22 232017-12-02 Vladimir Kondratyev <vladimir@kondratyev.su> 24 Cary Coutant <ccoutant@gmail.com> 25 26 PR gold/22540 27 * output.cc (gold_fallocate): Trivial return for len == 0. 28 Add fallback options when posix_fallocate and fallocate return 29 not-supported errors. 30 312017-12-01 Cary Coutant <ccoutant@gmail.com> 32 33 PR gold/21090 34 * incremental.cc (Sized_relobj_incr::do_relocate): Fix comment. 35 * options.cc (General_options::finalize): Disallow -pie with 36 incremental linking. 37 * x86_64.cc (Target_x86_64::Scan::local): Don't do mov-to-lea 38 or callq-to-direct optimizations for incremental links. 39 (Target_x86_64::Scan::global): Likewise. 40 (Target_x86_64::Relocate::relocate): Likewise. 41 * testsuite/Makefile.am (incremental_test): Force -no-pie. 42 (incremental_test_2): Likewise. 43 (incremental_test_3): Likewise. 44 (incremental_test_4): Likewise. 45 (incremental_test_5): Likewise. 46 (incremental_test_6): Likewise. 47 (incremental_copy_test): Likewise. 48 (incremental_common_test_1): Likewise. 49 (incremental_comdat_test_1): Likewise. 50 * testsuite/Makefile.in: Regenerate. 51 522017-12-01 Cary Coutant <ccoutant@gmail.com> 53 54 PR gold/21841 55 * testsuite/debug_msg.sh: Adjust expected line numbers. 56 * testsuite/odr_violation2.cc (DummyFunction): New function. 57 582017-12-01 Cary Coutant <ccoutant@gmail.com> 59 60 PR gold/22309 61 * testsuite/Makefile.am (two_file_test_1_v1_ndebug.o): Compile with 62 no EH information. 63 (two_file_test_1_ndebug.o): Likewise. 64 * testsuite/Makefile.in: Regenerate. 65 * testsuite/two_file_test_1.cc: Touch to force recompilation with new 66 flags. 67 * testsuite/two_file_test_1_v1.cc: Likewise. 68 692017-12-01 Cary Coutant <ccoutant@gmail.com> 70 71 PR gold/22042 72 * options.h (-fuse-ld): Use NULL instead of empty string. 73 742017-12-01 Benjamin Peterson <bp@benjamin.pe> 75 76 PR gold/22406 77 * gold.cc (queue_initial_tasks) Check for number of real input files. 78 * options.cc (Command_line::process) Check for unterminated --start-lib 79 options. 80 * testsuite/Makefile.am: Add new test script. 81 * testsuite/Makefile.in: Regenerate. 82 * testsuite/check_empty_command_lines.sh: New test script. 83 842017-11-17 Stephen Crane <sjc@immunant.com> 85 86 PR gold/22448 87 * symtab.cc (Symbol_table::add_from_object): Only rescan for 88 undefined symbols in regular, not dynamic, objects. 89 902017-11-30 Peter Smith <peter.smith@linaro.org> 91 92 PR gold/20765 93 * aarch64.cc (Aarch64_relobj::update_erratum_address): New method. 94 (AArch64_relobj::scan_errata): Update addresses in stub table after 95 relaxation pass. 96 972017-11-30 Peter Smith <peter.smith@linaro.org> 98 Cary Coutant <ccoutant@gmail.com> 99 100 PR gold/20765 101 * aarch64.cc (Erratum_stub::invalidate_erratum_stub): Use erratum_insn_ 102 instead of relobj_ to invalidate the stub. 103 (Erratum_stub::is_invalidated_erratum_stub): Likewise. 104 1052017-11-30 Peter Smith <peter.smith@linaro.org> 106 107 PR gold/22233 108 * aarch64.cc (AArch64_relobj::fix_errata_and_relocate_erratum_stubs): 109 Fix calculation of stub address. 110 1112017-11-29 Stefan Stroe <stroestefan@gmail.com> 112 113 * po/Make-in (datadir): Define as @datadir@. 114 (localedir): Define as @localedir@. 115 (gnulocaledir, gettextsrcdir): Use @datarootdir@. 116 1172017-11-28 Cary Coutant <ccoutant@gmail.com> 118 119 * resolve.cc (Symbol_table::resolve): Allow multiply-defined absolute 120 symbols when they have the same value. 121 1222017-11-28 Cary Coutant <ccoutant@gmail.com> 123 124 * object.h (class Sized_relobj_file): Remove discarded_eh_frame_shndx_. 125 * object.cc (Sized_relobj_file::Sized_relobj_file): Likewise. 126 (Sized_relobj_file::layout_eh_frame_section): Likewise. 127 (Sized_relobj_file::do_count_local_symbols): Check for optimized 128 .eh_frame section by other means. 129 (Sized_relobj_file::compute_final_local_value_internal): Likewise. 130 1312017-11-28 H.J. Lu <hongjiu.lu@intel.com> 132 133 * testsuite/pr22266_a.c: Add a newline at end of file. 134 1352017-11-27 Cary Coutant <ccoutant@gmail.com> 136 137 PR gold/19291 138 PR gold/22266 139 * object.cc (Sized_relobj_file::compute_final_local_value_internal): 140 Revert changes from 2017-11-08 patch. Adjust symbol value in 141 relocatable links for non-section symbols. 142 (Sized_relobj_file::compute_final_local_value): Revert changes from 143 2017-11-08 patch. 144 (Sized_relobj_file::do_finalize_local_symbols): Likewise. 145 (Sized_relobj_file::write_local_symbols): Revert changes from 146 2015-11-25 patch. 147 * object.h (Sized_relobj_file::compute_final_local_value_internal): 148 Revert changes from 2017-11-08 patch. 149 * powerpc.cc (Target_powerpc::relocate_relocs): Adjust addend for 150 relocatable links. 151 * target-reloc.h (relocate_relocs): Adjust addend for relocatable links. 152 * testsuite/pr22266_a.c (hello): New function. 153 * testsuite/pr22266_main.c (main): Add test for merge sections. 154 * testsuite/pr22266_script.t: Add rule for .rodata. 155 1562017-11-19 Ian Lance Taylor <iant@google.com> 157 Cary Coutant <ccoutant@gmail.com> 158 159 * dwarf_reader.h (class Dwarf_info_reader): Add ref_addr_size 160 method. 161 * dwarf_reader.cc (Dwarf_die::read_attributes): Use ref_addr_size 162 for DW_FORM_ref_addr_size. 163 (Dwarf_die::skip_attributes): Likewise. 164 1652017-11-08 H.J. Lu <hongjiu.lu@intel.com> 166 167 PR gold/22291 168 * layout.cc (Layout::define_section_symbols): Use STV_PROTECTED 169 for __start and __stop symbols. 170 * symtab.cc (Symbol_table::define_special_symbol): Add an 171 argument, visibility. Ignore definition and reference from 172 a dynamic object, depending on visibility. 173 (Symbol_table::do_define_in_output_data): Pass visibility to 174 define_special_symbol. 175 (Symbol_table::do_define_in_output_segment): Likewise. 176 (Symbol_table::do_define_as_constant): Likewise. 177 (Symbol_table::add_undefined_symbol_from_command_line): Pass 178 STV_DEFAULT to define_special_symbol. 179 * symtab.h (Symbol_table::define_special_symbol): Add an 180 argument, visibility. 181 1822017-11-08 James Clarke <jrtc27@jrtc27.com> 183 184 PR gold/22266 185 * object.cc (Sized_relobj_file::compute_final_local_value_internal): 186 Drop relocatable parameter and stop adjusting output value based on 187 it. 188 (Sized_relobj_file::compute_final_local_value): Stop passing 189 relocatable to compute_final_local_value_internal. 190 (Sized_relobj_file::do_finalize_local_symbols): Ditto. 191 * object.h (Sized_relobj_file::compute_final_local_value_internal): 192 Drop relocatable parameter. 193 1942017-11-08 Kyle Butt <iteratee@google.com> 195 196 * object.cc (do_find_special_sections): Fix a thinko with memmem return 197 values and check for != NULL rather than == 0. 198 1992017-11-07 Alan Modra <amodra@gmail.com> 200 201 * system.h (textdomain, bindtextdomain): Use safer "do nothing". 202 (ngettext, dngettext, dcngettext): Define when !ENABLE_NLS. 203 2042017-10-25 Alan Modra <amodra@gmail.com> 205 206 * symtab.cc (Symbol_table::add_from_relobj): Match "__gnu_lto_slim" 207 optionally prefixed with "_". 208 2092017-10-20 Sriraman Tallam <tmsriram@google.com> 210 211 * options.h (-z,text_unlikely_segment): New option. 212 * layout.cc (Layout::layout): Create new output section 213 for .text.unlikely sections with the new option. 214 (Layout::segment_precedes): Check for the new option 215 when segment flags match. 216 * testsuite/text_unlikely_segment.cc: New test source. 217 * testsuite/text_unlikely_segment.sh: New test script. 218 * testsuite/Makefile.am (text_unlikely_segment): New test. 219 * testsuite/Makefile.in: Regenerate. 220 2212017-10-19 Umesh Kalappa <ukalappa@cisco.com> 222 223 * arm.cc (Stub::do_fixed_endian_write):Far call stubs support for arm 224 in the be8 mode. 225 * testsuite/Makefile.am: New test cases. 226 * testsuite/Makefile.in: Regenerate. 227 * testsuite/arm_farcall_arm_arm_be8.sh: New script for arm to arm far 228 call stubs. 229 * testsuite/arm_farcall_thumb_thumb_be8.sh: New script for thumb to 230 thumb far call stubs. 231 2322017-10-18 Kyle Butt <iteratee@google.com> 233 Alan Modra <amodra@gmail.com> 234 235 * powerpc.cc (Target_powerpc::Scan::local): Correct dst_off 236 calculation for TOC16 relocs. 237 (Target_powerpc::Scan::global): Likewise. 238 2392017-09-26 Cary Coutant <ccoutant@gmail.com> 240 241 PR gold/22213 242 * sparc.cc (Target_sparc): Fix incorrect register mask. 243 2442017-09-22 Jim Wilson <jim.wilson@linaro.org> 245 246 * aarch64.cc (Target_aarch64::aarch64_info): Set 247 is_default_stack_executable to false. 248 2492017-09-22 Alan Modra <amodra@gmail.com> 250 251 * resolve.cc (clone): Fix got_offset_list test. 252 2532017-09-22 Alan Modra <amodra@gmail.com> 254 255 * powerpc.cc (Target_powerpc<64,*>::powerpc_info): Set 256 is_default_stack_executable false. 257 2582017-09-20 Teresa Johnson <tejohnson@google.com> 259 260 * plugin.cc (is_visible_from_outside): Check for export dynamic symbol 261 option and list. 262 * testsuite/Makefile.am (plugin_test_12): New test. 263 * testsuite/Makefile.in: Regenerate. 264 * testsuite/export_dynamic_plugin.cc: New test source. 265 * testsuite/plugin_test_12.sh: New test script. 266 2672017-09-20 Alan Modra <amodra@gmail.com> 268 269 * powerpc.cc (Target_powerpc::Branch_info::make_stub): Put 270 stubs for ppc32 non-branch relocs in first stub table. 271 (Target_powerpc::Relocate::relocate): Resolve similarly. 272 2732017-09-19 Alan Modra <amodra@gmail.com> 274 275 * options.h (stub-group-multi): Default to true. Add 276 --no-stub-group-multi. 277 2782017-08-30 Alan Modra <amodra@gmail.com> 279 280 * powerpc.cc (Target_powerpc::Relocate::relocate): Nop addis on 281 TPREL16_HA, and convert insn on TPREL16_LO and TPREL16_LO_DS 282 relocs to use r2/r13 when addis would add zero. 283 2842017-08-29 Alan Modra <amodra@gmail.com> 285 286 * options.h (tls_get_addr_optimize): New option. 287 * symtab.h (Symbol::clear_in_reg, clone): New functions. 288 (Sized_symbol::clone): New function. 289 (Symbol_table::clone): New function. 290 * resolve.cc (Symbol::clone, Sized_symbol::clone): New functions. 291 * powerpc.cc (Target_powerpc::has_tls_get_addr_opt_, 292 tls_get_addr_, tls_get_addr_opt_): New vars. 293 (Target_powerpc::tls_get_addr_opt, tls_get_addr, 294 is_tls_get_addr_opt, replace_tls_get_addr, 295 set_has_tls_get_addr_opt, stk_linker): New functions. 296 (Target_powerpc::Track_tls::maybe_skip_tls_get_addr_call): Add 297 target param. Update callers. Compare symbols rather than names. 298 (Target_powerpc::do_define_standard_symbols): Init tls_get_addr_ 299 and tls_get_addr_opt_. 300 (Target_powerpc::Branch_info::mark_pltcall): Translate tls_get_addr 301 sym to tls_get_addr_opt. 302 (Target_powerpc::Branch_info::make_stub): Likewise. 303 (Stub_table::define_stub_syms): Likewise. 304 (Target_powerpc::Scan::global): Likewise. 305 (Target_powerpc::Relocate::relocate): Likewise. 306 (add_3_12_2, add_3_12_13, bctrl, beqlr, cmpdi_11_0, cmpwi_11_0, 307 ld_11_1, ld_11_3, ld_12_3, lwz_11_3, lwz_12_3, mr_0_3, mr_3_0, 308 mtlr_11, std_11_1): New constants. 309 (Stub_table::eh_frame_added_): Delete. 310 (Stub_table::tls_get_addr_opt_bctrl_, plt_fde_len_, plt_fde_): New vars. 311 (Stub_table::init_plt_fde): New functions. 312 (Stub_table::add_eh_frame, replace_eh_frame): Move definition out 313 of line. Init and use plt_fde_. 314 (Stub_table::plt_call_size): Return size for tls_get_addr stub. 315 Extract alignment code to.. 316 (Stub_table::plt_call_align): ..this new function. Adjust all callers. 317 (Stub_table::add_plt_call_entry): Set has_tls_get_addr_opt and 318 tls_get_addr_opt_bctrl, and align after that. 319 (Stub_table::do_write): Write out tls_get_addr stub. 320 (Target_powerpc::do_finalize_sections): Emit DT_PPC_OPT 321 PPC_OPT_TLS/PPC64_OPT_TLS bit. 322 (Target_powerpc::Relocate::relocate): Don't check for or modify 323 nop following bl for tls_get_addr stub. 324 3252017-08-29 Alan Modra <amodra@gmail.com> 326 327 * symtab.h (Symbol): Split u_ into u1_ and u2_. Adjust accessors 328 to suit. Move plt_offset_ before got_offsets_. 329 * symtab.cc (Symbol::init_fields): Adjust for union change. 330 (Symbol::init_base_output_data): Likewise. 331 (Symbol::init_base_output_segment): Likewise. 332 (Symbol::allocate_base_common): Likewise. 333 (Symbol::output_section): Likewise. 334 (Symbol::set_output_section): Likewise. 335 (Symbol::set_output_segment): Likewise. 336 * resolve.cc (Symbol::override_base): Likewise. 337 (Symbol::override_base_with_special): Likewise. 338 3392017-08-28 Igor Kudrin <ikudrin@accesssoftek.com> 340 341 * aarch64.cc (Target_aarch64::Relocate::relocate_tls): 342 Make got_tlsdesc_offset signed and fix its calculation. 343 * testsuite/Makefile.am (aarch64_tlsdesc): New test. 344 * testsuite/Makefile.in: Regenerate. 345 * testsuite/aarch64_tlsdesc.s: New test source file. 346 * testsuite/aarch64_tlsdesc.sh: New test script. 347 * testsuite/aarch64_tlsdesc.t: New test linker script. 348 3492017-08-28 Alan Modra <amodra@gmail.com> 350 351 PR 21847 352 * powerpc.cc (Target_powerpc::is_elfv2_localentry0): Test 353 non_zero_localentry. 354 (Target_powerpc::resolve): New function. 355 (powerpc_info): Set has_resolve for 64-bit. 356 * target.h (Sized_target::resolve): Return bool. 357 * resolve.cc (Symbol_table::resolve): Continue with normal 358 processing when target resolve returns false. 359 * symtab.h (Symbol::non_zero_localentry, set_non_zero_localentry): 360 New accessors. 361 (Symbol::non_zero_localentry_): New flag bit. 362 * symtab.cc (Symbol::init_fields): Init non_zero_localentry_. 363 3642017-08-08 Romain Geissler <romain.geissler@gmail.com> 365 Alan Modra <amodra@gmail.com> 366 367 * configure.ac: Add --enable-default-hash-style option. 368 * options.h (hash_style): Use DEFAULT_HASH_STYLE as default value. 369 * configure: Regenerate. 370 * config.in: Regenerate. 371 3722017-08-03 James Clarke <jrtc27@jrtc27.com> 373 374 * options.h (General_options): Set a non-NULL second help string 375 argument for relax to allow --no-relax. 376 3772017-08-01 Alan Modra <amodra@gmail.com> 378 379 * ehframe.cc (Fde::operator==): New. 380 (Cie::remove_fde, Eh_frame::remove_ehframe_for_plt): New. 381 * ehframe.h (Fde::operator==): Declare. 382 (Cie::remove_fde, Eh_frame::remove_ehframe_for_plt): Likewise. 383 * layout.cc (Layout::remove_eh_frame_for_plt): New. 384 * layout.h (Layout::remove_eh_frame_for_plt): Declare. 385 * powerpc.cc (Target_powerpc::do_relax): Remove old eh_frame FDEs. 386 (Stub_table::add_eh_frame): Delete eh_frame_added_ condition. 387 Don't add eh_frame for empty stub section. 388 (Stub_table::remove_eh_frame): New. 389 3902017-07-31 Alan Modra <amodra@gmail.com> 391 392 * options.h (no_tls_optimize): New powerpc option. 393 * powerpc.cc (Target_powerpc::abiversion, set_abiversion): Formatting. 394 (Target_powerpc::stk_toc): Formatting, fix comment. 395 (Target_powerpc::Track_tls::tls_get_addr_state): Rename from 396 tls_get_addr. 397 (Target_powerpc::optimize_tls_gd, optimize_tls_ld, optimize_tls_ie): 398 Return TLSOPT_NONE when !tls_optimize. 399 (Target_powerpc::add_global_pair_with_rel): Check 400 for existing reloc before reserving. 401 (Target_powerpc::add_local_tls_pair): Likewise. 402 4032017-07-31 Alan Modra <amodra@gmail.com> 404 405 PR 21847 406 * powerpc.cc (Target_powerpc::scan_relocs): Warn on --plt-localentry 407 without ld.so checks. 408 4092017-07-29 Alan Modra <amodra@gmail.com> 410 411 PR 21847 412 * powerpc.cc (Target_powerpc::scan_relocs): Default to 413 --no-plt-localentry. 414 4152017-07-28 H.J. Lu <hongjiu.lu@intel.com> 416 417 PR gold/21857 418 * compressed_output.cc (Output_compressed_section::set_final_data_size): 419 Call put_ch_reserved to clear the reserved field for 64-bit ELF. 420 4212017-07-26 H.J. Lu <hongjiu.lu@intel.com> 422 423 * mips.cc (Mips_relocate_functions): Add "llu" suffix to 424 0x800080008000. 425 4262017-07-23 Alan Modra <amodra@gmail.com> 427 428 * powerpc.cc (glink_eh_frame_fde_64v2): Correct advance to 429 restore of LR. 430 (glink_eh_frame_fde_64v1): Advance to restore of LR at latest 431 possible insn. 432 4332017-07-18 Nick Clifton <nickc@redhat.com> 434 435 PR 21775 436 * aarch64.cc: Fix spelling typos. 437 * arm.cc: Likewise. 438 * layout.cc: Likewise. 439 * powerpc.cc: Likewise. 440 * x86_64.cc: Likewise. 441 4422017-07-12 Alan Modra <amodra@gmail.com> 443 444 * po/es.po: Update from translationproject.org/latest/gold/. 445 * po/fi.po: Likewise. 446 * po/fr.po: Likewise. 447 * po/id.po: Likewise. 448 * po/it.po: Likewise. 449 * po/vi.po: Likewise. 450 * po/zh_CN.po: Likewise. 451 * po/ja.po: New file from translationproject.org. 452 * po/sv.po: Likewise. 453 * po/uk.po: Likewise. 454 4552017-07-06 Han Shen <shenhan@google.com> 456 457 PR gold/21491 458 * aarch64.cc (Erratum_stub::invalidate_erratum_stub): New method. 459 (Erratum_stub::is_invalidated_erratum_stub): New method. 460 (Stub_table::relocate_reloc_stub): Renamed from "relocate_stub". 461 (Stub_table::relocate_reloc_stubs): Renamed from "relocate_stubs". 462 (Stub_table::relocate_erratum_stub): New method. 463 (AArch64_relobj::fix_errata_and_relocate_erratum_stubs): Renamed from 464 "fix_errata". 465 (Target_aarch64::relocate_reloc_stub): Renamed from "relocate_stub". 466 4672017-06-23 Alan Modra <amodra@gmail.com> 468 469 * options.h (General_options): Add plt_localentry. 470 * powerpc.cc (Target_powerpc::st_other): New function. 471 (Target_powerpc::plt_localentry0_, plt_localentry0_init_, 472 has_localentry0_): New vars. 473 (Target_powerpc::plt_localentry0, set_has_localentry0, 474 is_elfv2_localentry0): New functions. 475 (Target_powerpc::Branch_info::mark_pltcall): Don't set tocsave or 476 return true for localentry:0 calls. 477 (Stub_table::Plt_stub_ent::localentry0_): New var. 478 (Stub_table::add_plt_call_entry): Set localentry0_ and has_localentry0_. 479 Don't set r2save_ for localentry:0 calls. 480 (Output_data_glink::do_write): Save r2 in __glink_PLTresolve for elfv2. 481 (Target_powerpc::scan_relocs): Default plt_localentry0_. 482 (Target_powerpc::do_finalize_sections): Set DT_PPC64_OPT. 483 (Target_powerpc::Relocate::relocate): Don't require nop following 484 calls for localentry:0 plt calls, and don't change nop. 485 4862017-06-23 Alan Modra <amodra@gmail.com> 487 488 * powerpc.cc (Target_powerpc::tocsave_loc_): New var. 489 (Target_powerpc::mark_pltcall, add_tocsave, tocsave_loc): New functions. 490 (Target_powerpc::Branch_info::tocsave_): New var. 491 (Target_powerpc::Branch_info::mark_pltcall): New function. 492 (Target_powerpc::Branch_info::make_stub): Pass tocsave_ to 493 add_plt_call_entry. 494 (Stub_table::Plt_stub_ent): Make public. Add r2save_. 495 (Stub_table::add_plt_call_entry): Add bool tocsave_ param. Set 496 r2save_. 497 (Stub_table::find_plt_call_entry): Return Plt_stub_ent*. Adjust 498 use throughout. 499 (Stub_table::do_write): Conditionally output r2 save in plt stubs. 500 (Target_powerpc::Scan::local): Handle R_PPC64_TOCSAVE. 501 (Target_powerpc::Scan::global): Likewise. 502 (Target_powerpc::Relocate::relocate): Skip r2 save in plt call stub 503 with tocsave reloc. Replace header tocsave nop with r2 save. 504 * symtab.h (struct Symbol_location_hash): Make public. 505 5062017-06-21 Alan Modra <amodra@gmail.com> 507 508 * powerpc.cc (Plt_stub_key): Rename from Plt_stub_ent. Remove indx_. 509 (Plt_stub_key_hash): Rename from Plt_stub_ent_hash. 510 (struct Plt_stub_ent): New. 511 (Plt_stub_entries): Map from Plt_stub_key to Plt_stub_ent. Adjust 512 use throughout file. 513 5142017-06-20 Eric Christopher <echristo@gmail.com> 515 516 * aarch64.cc (scan_reloc_for_stub): Use plt_address_for_global to 517 calculate the symbol value. 518 (scan_reloc_section_for_stubs): Allow stubs to be created for 519 section symbols. 520 (maybe_apply_stub): Handle creating stubs for weak symbols to 521 match the code in scan_reloc_for_stub. 522 5232017-06-20 James Clarke <jrtc27@jrtc27.com> 524 525 * powerpc.cc (Stub_table::define_stub_syms): Always include object's 526 uniq_ value. 527 5282017-06-15 Eric Christopher <echristo@gmail.com> 529 530 * aarch64.cc: Fix a few typos and grammar-os. 531 5322017-06-15 Jiong Wang <jiong.wang@arm.com> 533 534 * aarch64.cc (Insn_utilities::is_mrs_tpidr_el0): New method. 535 (AArch64_relobj<size, big_endian>::try_fix_erratum_843419_optimized): 536 Return ture for some TLS relaxed sequences. 537 5382017-06-07 Eric Christopher <echristo@gmail.com> 539 540 * aarch64.cc (maybe_apply_stub): Add debug logging for looking 541 up stubs to undefined symbols and early return rather than 542 fail to look them up. 543 (scan_reloc_for_stub): Add debug logging for no stub creation 544 for undefined symbols. 545 5462017-05-23 Alan Modra <amodra@gmail.com> 547 548 PR 21503 549 * options.h: Add --emit-stub-syms option. 550 * powerpc.cc (object_id): New. 551 (Powerpc_relobj): Add uniq_ and accessor. Sort variables for 552 better packing. 553 (Powerpc_dynobj): Sort variables for better packing. 554 (Target_powerpc::define_local): New function. 555 (Target_powerpc::group_sections): Pass stub table size to 556 Stub_table constructor. 557 (Target_powerpc::do_relax): Define stub and glink symbols. 558 (Stub_table): Add uniq_ variable, and id param to constructor. 559 (Stub_table::Plt_stub_ent): Add indx_ variable. 560 (Stub_table::Branch_stub_entries): Move typedef earlier. 561 (Stub_table::branch_stub_size): Replace "to" parameter with a 562 Branch_stub_entries iterator. 563 (Stub_table::add_long_branch_entry): Adjust to suit. 564 (Stub_table::add_plt_call_entry): Set indx_. 565 (Stub_table::define_stub_syms): New function. 566 5672017-05-15 Eric Christopher <echristo@gmail.com> 568 569 * layout.cc (Layout::segment_precedes): Add a case for testing 570 pointer equality when determining which segment precedes 571 another. 572 5732017-05-13 James Clarke <jrtc27@jrtc27.com> 574 575 PR gold/21444 576 * gold.cc (Target_sparc::Relocate::relocate_tls): Local 577 variables are final for position-independent executables. This 578 has to be consistent with Target_sparc::Scan::local otherwise 579 they will disagree as to whether local-exec is used. 580 5812017-05-12 Igor Kudrin <ikudrin@accesssoftek.com> 582 583 PR gold/21430 584 * aarch64.cc 585 (AArch64_relobj::convert_input_section_to_relaxed_section): 586 Set the section offset to -1ULL. 587 (Target_aarch64::relocate_section): Adjust the view in case 588 of a relaxed input section. 589 * testsuite/Makefile.am (pr21430): New test. 590 * testsuite/Makefile.in: Regenerate 591 * testsuite/pr21430.s: New test source file. 592 * testsuite/pr21430.sh: New test script. 593 5942017-04-27 Alan Modra <amodra@gmail.com> 595 596 * testsuite/plugin_section_order.c (onload): Add missing break. 597 5982017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> 599 600 * mips.cc (Mips_got_entry::hash()): Shift addend to reduce 601 possibility of collisions. 602 (Mips_got_entry::equals): Fix case for GOT_TLS_LDM 603 entries. 604 6052017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> 606 607 * mips.cc (Mips_relobj::merge_processor_specific_data_): New data 608 member. 609 (Mips_relobj::merge_processor_specific_data): New method. 610 (Mips_relobj::do_read_symbols): Set merge_processor_specific_data_ 611 to false, only if the input file is a binary or if object has no 612 contents except the section name string table and an empty symbol 613 table with the undefined symbol. 614 (Target_mips::do_finalize_sections): Refactor. Skip empty object files 615 for merging processor-specific data. 616 6172017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> 618 619 * mips.cc (Target_mips::Relocate::calculated_value_): New data 620 member. 621 (Target_mips::Relocate::calculate_only_): Likewise. 622 (Target_mips::Relocate::relocate): Handle multiple consecutive 623 relocations with the same offset. 624 6252017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> 626 627 * mips.cc (Target_mips::Relocate::relocate): Remove redundant 628 checks for relocatable link. 629 (Mips_relocate_functions::reljalr): Likewise. 630 6312017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> 632 633 * mips.cc (class Mips_output_section_options): New class. 634 (Target_mips::do_make_output_section): New method. 635 6362017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> 637 638 * mips.cc (Mips_relocate_functions::rel26): Don't print relocation 639 overflow error message. 640 (Target_mips::relocate_special_relocatable): Improve relocation 641 overflow error message. 642 (Target_mips::Relocate::relocate): Likewise. 643 6442017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> 645 646 * mips.cc (symbol_refs_local): Return false if a symbol 647 is from a dynamic object. 648 (Target_mips::got_section): Make _GLOBAL_OFFSET_TABLE_ STV_HIDDEN. 649 (Target_mips::set_gp): Refactor. Make _gp STT_NOTYPE and 650 STB_LOCAL. 651 (Target_mips::do_finalize_sections): Set _gp after all the checks 652 for creating .got are done. 653 (Target_mips::Scan::global): Remove unused code. 654 6552017-02-22 Alan Modra <amodra@gmail.com> 656 657 * powerpc.cc (Target_powerpc::make_iplt_section): Check that 658 output_section exists before attempting add_output_section_data. 659 (Target_powerpc::make_brlt_section): Likewise. 660 6612017-02-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> 662 663 * mips.cc (Target_mips::Scan::get_reference_flags): Remove 664 gold_unreachable from default case. 665 6662017-02-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> 667 668 PR gold/21111 669 * mips.cc (Mips_relocate_functions::relhigher): New method. 670 (Mips_relocate_functions::relhighest): Likewise. 671 (mips_get_size_for_reloc): Add support for relocs: R_MIPS_HIGHER and 672 R_MIPS_HIGHEST. 673 (Target_mips::Scan::local): Add support for relocs: R_MIPS_HIGHER, 674 R_MIPS_HIGHEST, R_MICROMIPS_HIGHER and R_MICROMIPS_HIGHEST. 675 (Target_mips::Scan::global): Likewise. 676 (Target_mips::Scan::get_reference_flags): Likewise. 677 (Target_mips::Relocate::relocate): Call static methods for resolving 678 HIGHER and HIGHEST relocations. 679 6802017-02-03 Rahul Chaudhry <rahulchaudhry@google.com> 681 682 * x86_64.cc (Target_x86_64::do_can_check_for_function_pointers): 683 Return true even when building pie binaries. 684 (Target_x86_64::possible_function_pointer_reloc): Check opcode 685 for R_X86_64_PC32 relocations. 686 (Target_x86_64::local_reloc_may_be_function_pointer): Pass 687 extra arguments to local_reloc_may_be_function_pointer. 688 (Target_x86_64::global_reloc_may_be_function_pointer): Likewise. 689 * gc.h (gc_process_relocs): Add check for STT_FUNC. 690 * testsuite/Makefile.am (icf_safe_pie_test): New test case. 691 * testsuite/Makefile.in: Regenerate. 692 * testsuite/icf_safe_pie_test.sh: New shell script. 693 6942017-02-03 Alan Modra <amodra@gmail.com> 695 696 * powerpc.cc (Powerpc_relobj::make_toc_relative): Don't crash 697 when no .toc section exists. 698 6992017-01-31 Cary Coutant <ccoutant@gmail.com> 700 701 PR gold/21090 702 * x86_64.cc (Target_x86_64::can_convert_mov_to_lea): Add check 703 for predefined symbol. 704 (Target_x86_64::Relocate::relocate): Fix formatting. 705 7062017-01-23 Rahul Chaudhry <rahulchaudhry@google.com> 707 708 * testsuite/icf_safe_so_test.sh: Use "set -e". 709 * testsuite/icf_safe_test.sh: Likewise. 710 * testsuite/icf_test.sh: Likewise. 711 7122017-01-23 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> 713 714 * mips.cc (Mips_output_data_plt::rel_plt): Remove const from return 715 type. 716 (Target_mips::make_plt_entry): Make the sh_info field of .rel.plt 717 point to .plt. 718 7192017-01-23 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> 720 721 PR gold/21054 722 * mips.cc (Mips_got_info::record_global_got_symbol): Don't add symbol 723 to the dynamic symbol table if it is forced to local visibility. 724 (Target_mips::do_finalize_sections): Don't add __RLD_MAP symbol to the 725 dynamic symbol table if it is forced to local visibility. 726 7272017-01-20 Nick Clifton <nickc@redhat.com> 728 729 * aarch64.cc (Stub_template_repertoire): Change ST_E_835769_INSNS 730 from a pointer to an array. 731 7322017-01-13 H.J. Lu <hongjiu.lu@intel.com> 733 734 PR gold/21040 735 * powerpc.cc (Powerpc_relobj<size, big_endian>::make_toc_relative): 736 Cast 0x80008000 to uint64_t. 737 7382017-01-12 Cary Coutant <ccoutant@gmail.com> 739 740 * object.cc (Sized_relobj_file): Fix byte counts for calls to memmem. 741 7422017-01-11 Cary Coutant <ccoutant@gmail.com> 743 744 PR gold/21040 745 * x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry): 746 Remove unnecessary 'typename' keyword. 747 (Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise. 748 (Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise. 749 (Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise. 750 (Output_data_plt_x86_64_bnd::do_write): Likewise. 751 7522017-01-11 Cary Coutant <ccoutant@gmail.com> 753 754 PR gold/21040 755 * x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry): 756 Remove unnecessary 'typename' keyword. 757 (Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise. 758 (Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise. 759 (Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise. 760 * testsuite/copy_test_relro_1.cc (p, b, c, q): Add separate extern 761 declarations. 762 7632017-01-11 Cary Coutant <ccoutant@gmail.com> 764 765 PR gold/21039 766 * testsuite/script_test_13.sh: Adjust patterns to work for i386. 767 * testsuite/script_test_15a.sh: Likewise. 768 * testsuite/script_test_15b.sh: Likewise. 769 * testsuite/script_test_15c.sh: Likewise. 770 7712017-01-11 Alan Modra <amodra@gmail.com> 772 773 * powerpc.cc (class Powerpc_copy_relocs): New. 774 (Powerpc_copy_relocs::emit): New function. 775 (Powerpc_relobj::relatoc_, toc_, no_toc_opt_): New variables. 776 (Powerpc_relobj::toc_shndx, set_no_toc_opt, no_toc_opt): New inlines. 777 (Powerpc_relobj::do_relocate_sections): New function. 778 (Powerpc_relobj::make_toc_relative): Likewise. 779 (Powerpc_relobj::do_find_special_sections): Stash away .rela.toc 780 and .toc too. 781 (ok_lo_toc_insn): Move earlier, and handle more insns. 782 (Target_powerpc::Scan::local): If optimizing toc accesses, set 783 no_toc_opt for entries we can't edit. Check insn validity. 784 Emit "toc optimization is not supported" warning, downgraded 785 from error. 786 (Target_powerpc::Scan::global): Likewise. 787 (Target_powerpc::Relocate::relocate): Edit TOC indirect code 788 to TOC relative. Don't emit "toc optimization is not supported" 789 error here. 790 7912017-01-10 Cary Coutant <ccoutant@gmail.com> 792 793 * aarch64.cc (AArch64_relobj::do_relocate_sections): Call 794 Sized_relobj_file::relocate_section_range(). 795 * arm.cc (Arm_relobj::do_relocate_sections): Likewise. 796 * object.h (Sized_relobj_file::relocate_section_range): New method. 797 * reloc.cc (Sized_relobj_file::do_relocate_sections): Move 798 implementation... 799 (Sized_relobj_file::relocate_section_range): ...to new method. 800 8012017-01-10 Alan Modra <amodra@gmail.com> 802 803 * testsuite/ver_test_8.sh: Accept .TOC. in lieu of 804 _GLOBAL_OFFSET_TABLE_. Allow zero count. 805 * testsuite/copy_test_relro_1.cc (c, q): New vars. 806 * testsuite/copy_test_relro.cc: Rewrite to test read-only 807 status of variables directly. Reference new vars in 808 read-only data. 809 8102017-01-10 Alan Modra <amodra@gmail.com> 811 812 * options.h: Add --secure-plt option. 813 * powerpc.cc (Target_powerpc::Scan::local): Detect and error 814 on -fPIC -mbss-plt code. 815 (Target_powerpc::Scan::global): Likewise. 816 8172017-01-09 Alan Modra <amodra@gmail.com> 818 819 * powerpc.cc (Target_powerpc::make_plt_section): Point sh_info of 820 ".rela.plt" at ".plt". 821 8222017-01-07 Alan Modra <amodra@gmail.com> 823 824 * powerpc.cc: Use shorter equivalent elfcpp typedef for 825 Reltype and reloc_size throughout. 826 (Target_powerpc::symval_for_branch): Exclude dynamic symbols. 827 (Target_powerpc::Scan::local): Use local var r_sym. 828 (Target_powerpc::Scan::global: Likewise. 829 (Target_powerpc::Relocate::relocate): Delete shadowing r_sym. 830 8312017-01-02 Alan Modra <amodra@gmail.com> 832 833 Update year range in copyright notice of all files. 834 835For older changes see ChangeLog-2016 836 837Copyright (C) 2017 Free Software Foundation, Inc. 838 839Copying and distribution of this file, with or without modification, 840are permitted in any medium without royalty provided the copyright 841notice and this notice are preserved. 842 843Local Variables: 844mode: change-log 845left-margin: 8 846fill-column: 74 847version-control: never 848End: 849