1 2017-02-22 Alan Modra <amodra (a] gmail.com> 2 3 Apply from master 4 * powerpc.cc (Target_powerpc::make_iplt_section): Check that 5 output_section exists before attempting add_output_section_data. 6 (Target_powerpc::make_brlt_section): Likewise. 7 8 2017-02-03 Alan Modra <amodra (a] gmail.com> 9 * powerpc.cc (Powerpc_relobj::make_toc_relative): Don't crash 10 when no .toc section exists. 11 12 2017-01-13 H.J. Lu <hongjiu.lu (a] intel.com> 13 PR gold/21040 14 * powerpc.cc (Powerpc_relobj<size, big_endian>::make_toc_relative): 15 Cast 0x80008000 to uint64_t. 16 17 2017-01-11 Alan Modra <amodra (a] gmail.com> 18 * powerpc.cc (class Powerpc_copy_relocs): New. 19 (Powerpc_copy_relocs::emit): New function. 20 (Powerpc_relobj::relatoc_, toc_, no_toc_opt_): New variables. 21 (Powerpc_relobj::toc_shndx, set_no_toc_opt, no_toc_opt): New inlines. 22 (Powerpc_relobj::do_relocate_sections): New function. 23 (Powerpc_relobj::make_toc_relative): Likewise. 24 (Powerpc_relobj::do_find_special_sections): Stash away .rela.toc 25 and .toc too. 26 (ok_lo_toc_insn): Move earlier, and handle more insns. 27 (Target_powerpc::Scan::local): If optimizing toc accesses, set 28 no_toc_opt for entries we can't edit. Check insn validity. 29 Emit "toc optimization is not supported" warning, downgraded 30 from error. 31 (Target_powerpc::Scan::global): Likewise. 32 (Target_powerpc::Relocate::relocate): Edit TOC indirect code 33 to TOC relative. Don't emit "toc optimization is not supported" 34 error here. 35 36 2017-01-10 Cary Coutant <ccoutant (a] gmail.com> 37 * aarch64.cc (AArch64_relobj::do_relocate_sections): Call 38 Sized_relobj_file::relocate_section_range(). 39 * arm.cc (Arm_relobj::do_relocate_sections): Likewise. 40 * object.h (Sized_relobj_file::relocate_section_range): New method. 41 * reloc.cc (Sized_relobj_file::do_relocate_sections): Move 42 implementation... 43 (Sized_relobj_file::relocate_section_range): ...to new method. 44 45 2017-01-10 Alan Modra <amodra (a] gmail.com> 46 * options.h: Add --secure-plt option. 47 * powerpc.cc (Target_powerpc::Scan::local): Detect and error 48 on -fPIC -mbss-plt code. 49 (Target_powerpc::Scan::global): Likewise. 50 51 2017-01-09 Alan Modra <amodra (a] gmail.com> 52 * powerpc.cc (Target_powerpc::make_plt_section): Point sh_info of 53 ".rela.plt" at ".plt". 54 55 2017-01-07 Alan Modra <amodra (a] gmail.com> 56 * powerpc.cc: Use shorter equivalent elfcpp typedef for 57 Reltype and reloc_size throughout. 58 (Target_powerpc::symval_for_branch): Exclude dynamic symbols. 59 (Target_powerpc::Scan::local): Use local var r_sym. 60 (Target_powerpc::Scan::global: Likewise. 61 (Target_powerpc::Relocate::relocate): Delete shadowing r_sym. 62 63 2016-12-08 Alan Modra <amodra (a] gmail.com> 64 * powerpc.cc (Powerpc_relobj::stub_table): Return NULL rather 65 then asserting. 66 67 2016-12-08 Alan Modra <amodra (a] gmail.com> 68 * options.h (--stub-group-multi): Fix typo. 69 70 2016-12-07 Alan Modra <amodra (a] gmail.com> 71 * options.h (--stub-group-multi): New PowerPC option. 72 * powerpc.cc (Stub_control): Add multi_os_ var and param 73 to constructor. Sort start_ var later. Comment State. 74 (Stub_control::can_add_to_stub_group): Heed multi_os_. 75 (Target_powerpc::group_sections): Update. 76 77 2016-12-07 Alan Modra <amodra (a] gmail.com> 78 PR gold/20878 79 * powerpc.cc (Stub_control): Replace stubs_always_before_branch_ 80 with stubs_always_after_branch_, group_end_addr_ with 81 group_start_addr_. 82 (Stub_control::can_add_to_stub_group): Rewrite to suit scanning 83 sections by increasing address. 84 (Target_powerpc::group_sections): Scan that way. Delete corner 85 case. 86 * options.h (--stub-group-size): Update help string. 87 88 2016-12-07 Alan Modra <amodra (a] gmail.com> 89 * powerpc.cc (Stub_table_owner): Provide constructor. 90 (Powerpc_relobj::set_stub_table): Resize fill with -1. 91 (Target_powerpc::Branch_info::make_stub): Provide target debug 92 output on returning false. 93 94 2016-12-01 Cary Coutant <ccoutant (a] gmail.com> 95 PR gold/20807 96 * aarch64.cc (Target_aarch64::scan_reloc_section_for_stubs): Handle 97 section symbols correctly. 98 * arm.cc (Target_arm): Likewise. 99 * powerpc.cc (Target_powerpc): Likewise. 100 101 2016-08-31 Alan Modra <amodra (a] gmail.com> 102 * powerpc.cc (class Stub_control): Delete stub14_group_size_ 103 and has14_. Add group_size_. 104 (Stub_control::can_add_to_stub_group): Adjust to suit. Print 105 debug info when switching to adding sections before stubs. 106 107 2016-08-31 Alan Modra <amodra (a] gmail.com> 108 * debug.h (DEBUG_TARGET): New. 109 (DEBUG_ALL): Add DEBUG_TARGET. 110 (gold_debug): Delete FORMAT param. 111 * powerpc.cc (Stub_control::can_add_to_stub_group): Print debug ourput. 112 113 2016-08-30 Alan Modra <amodra (a] gmail.com> 114 PR 20523 115 * powerpc.cc (class Stub_control): Add has14_. Comment owner_. 116 (Stub_control::can_add_to_stub_group): Correct grouping of 117 sections containing 14-bit external branches. When returning 118 false, set state_ to reflect the fact that we have one section 119 for the next group. Rewrite most of function for clarity. 120 Add and expand comments. 121 (Target_powerpc::do_relax): Print stub group size retry in hex. 122 123 2016-08-26 Han Shen <shenhan (a] google.com> 124 PR gold/20529 - relaxing loop never ends. 125 * powerpc.cc (Stub_table::min_size_threshold_): New member to 126 limit size. 127 (Stub_table::set_min_size_threshold): New member function. 128 (Stub_table::set_address_and_size): Add code to only allow size 129 increase. 130 (Target_powerpc::do_relax): Add code to record last size. 131 132 2016-09-26 Cary Coutant <ccoutant (a] gmail.com> 133 134 PR gold/20238 135 * symtab.cc (Symbol_table::define_default_version): Check that 136 unversioned symbol is defined. 137 138 2016-08-23 Roland McGrath <roland (a] hack.frob.com> 139 140 * options.h (General_options): Grok -z stack-size. 141 * output.h (Output_segment::set_size): New method. 142 * layout.cc (Layout::create_executable_stack_info): Renamed to ... 143 (Layout::create_stack_segment): ... this. Always create the 144 segment if -z stack-size was used. 145 (Layout::set_segment_offsets): Don't call ->set_offset on the 146 PT_GNU_STACK segment. 147 148 2016-08-17 Cary Coutant <ccoutant (a] gmail.com> 149 150 * i386.cc (Target_i386): Reset skip_call_tls_get_addr_ after printing 151 error message. 152 * testsuite/Makefile.am (pr20216a): Add missing dependencies. 153 (pr20308a): Add -Bgcctestdir/ to compile rules. 154 * testsuite/Makefile.in: Regenerate. 155 156 2016-08-12 Roland McGrath <roland (a] hack.frob.com> 157 158 PR gold/20462 159 * script-sections.cc (Script_sections::release_segments): 160 Reset this->segments_created_. 161 162 2016-08-12 Roland McGrath <roland (a] hack.frob.com> 163 164 * yyscript.y (HIDDEN): New %token. 165 (assignment): Handle HIDDEN(string = expr) syntax. 166 * script.cc (script_keyword_parsecodes): Add HIDDEN. 167 168 2016-08-10 Cary Coutant <ccoutant (a] gmail.com> 169 170 PR gold/20216 171 * x86_64.cc (Target_x86_64::Relocate::relocate): Add check for 172 R_X86_64_GOTPCREL. Reset skip_call_tls_get_addr_ after printing 173 error message. 174 * testsuite/Makefile.am (pr20216_gd.o): Add -Bgcctestdir/. 175 (pr20216_ld.o): Likewise. 176 * testsuite/Makefile.in: Regenerate. 177 178 2016-08-10 James Clarke <jrtc27 (a] jrtc27.com> 179 180 PR gold/20443 181 * symtab.cc (Symbol_table::add_from_relobj): Handle NULL symbols, 182 which will be present for STT_SPARC_REGISTER. 183 (Symbol_table::add_from_pluginobj): Likewise. 184 (Symbol_table::add_from_dynobj): Likewise. 185 (Symbol_table::add_from_incrobj): Removed dead code. 186 187 2016-08-10 James Clarke <jrtc27 (a] jrtc27.com> 188 189 PR gold/20442 190 * sparc.cc (Target_sparc::Relocate::relocate): R_SPARC_GOTDATA_OP_LOX10 191 should fall back on R_SPARC_GOT10, not R_SPARC_GOT13. 192 193 2016-08-10 James Clarke <jrtc27 (a] jrtc27.com> 194 195 PR gold/20441 196 * sparc.cc (Target_sparc::Scan::check_non_pic): Allow R_SPARC_32 on 197 sparc64. 198 199 2016-06-29 Cary Coutant <ccoutant (a] gmail.com> 200 201 PR gold/20310 202 * testsuite/dynamic_list.sh: Remove check for _ZdlPv. 203 204 2016-06-29 Cary Coutant <ccoutant (a] gmail.com> 205 206 * testsuite/Makefile.am (MOSTLYCLEANFILES): Add eh_test_2. 207 * testsuite/Makefile.in: Regenerate. 208 209 2016-06-30 Alan Modra <amodra (a] gmail.com> 210 211 * testsuite/Makefile.am (memory_test, memory_test_2): Pass 212 -Wl,-z to gcc, not plain -z. 213 * testsuite/Makefile.in: Regenerate. 214 215 2016-06-29 H.J. Lu <hongjiu.lu (a] intel.com> 216 217 PR gold/20308 218 * i386.cc (Target_i386::Relocate::relocate): Allow 219 R_386_GOT32X relocation against ___tls_get_addr. 220 (Target_i386::Relocate::tls_gd_to_ie): Support indirect 221 call to __tls_get_addr. 222 (Target_i386::Relocate::tls_gd_to_le): Likewise. 223 (Target_i386::Relocate::tls_ld_to_le): Likewise. 224 * testsuite/Makefile.am (check_PROGRAMS): Add pr20308a_test, 225 pr20308b_test, pr20308c_test, pr20308d_test, pr20308e_test. 226 (pr20308a_test_SOURCES): New. 227 (pr20308a_test_DEPENDENCIES): Likewise. 228 (pr20308a_test_CFLAGS): Likewise. 229 (pr20308a_test_LDFLAGS): Likewise. 230 (pr20308a_test_LDADD): Likewise. 231 (pr20308b_test_SOURCES): Likewise. 232 (pr20308b_test_DEPENDENCIES): Likewise. 233 (pr20308b_test_CFLAGS): Likewise. 234 (pr20308b_test_LDFLAGS): Likewise. 235 (pr20308b_test_LDADD): Likewise. 236 (pr20308c_test_SOURCES): Likewise. 237 (pr20308c_test_DEPENDENCIES): Likewise. 238 (pr20308c_test_CFLAGS): Likewise. 239 (pr20308c_test_LDFLAGS): Likewise. 240 (pr20308c_test_LDADD): Likewise. 241 (pr20308d_test_SOURCES): Likewise. 242 (pr20308d_test_DEPENDENCIES): Likewise. 243 (pr20308d_test_CFLAGS): Likewise. 244 (pr20308d_test_LDFLAGS): Likewise. 245 (pr20308d_test_LDADD): Likewise. 246 (pr20308e_test_SOURCES): Likewise. 247 (pr20308e_test_DEPENDENCIES): Likewise. 248 (pr20308e_test_CFLAGS): Likewise. 249 (pr20308e_test_LDFLAGS): Likewise. 250 (pr20308e_test_LDADD): Likewise. 251 (pr20308a.so): Likewise. 252 (pr20308b.so): Likewise. 253 (pr20308_gd.o): Likewise. 254 (pr20308_ld.o): Likewise. 255 (MOSTLYCLEANFILES): Add pr20308a.so pr20308b.so. 256 * testsuite/Makefile.in: Regenerated. 257 * testsuite/pr20308_def.c: New file. 258 * testsuite/pr20308_gd.S: Likewise. 259 * testsuite/pr20308_ld.S: Likewise. 260 * testsuite/pr20308_main.c: Likewise. 261 262 2016-06-29 H.J. Lu <hongjiu.lu (a] intel.com> 263 264 PR gold/20216 265 * configure.ac (DEFAULT_TARGET_X86_64_OR_X32): New 266 AM_CONDITIONAL. 267 * configure: Regenerated. 268 * x86_64.cc (Target_x86_64<size>::Relocate::relocate): Allow 269 R_X86_64_GOTPCRELX relocation against __tls_get_addr. 270 (Target_x86_64<size>::Relocate::tls_gd_to_ie): Support indirect 271 call to __tls_get_addr. 272 (Target_x86_64<size>::Relocate::tls_gd_to_le): Likewise. 273 (Target_x86_64<size>::Relocate::tls_ld_to_le): Likewise. 274 * testsuite/Makefile.am (check_PROGRAMS): Add pr20216a_test, 275 pr20216b_test, pr20216c_test, pr20216d_test, pr20216e_test. 276 (pr20216a_test_SOURCES): New. 277 (pr20216a_test_DEPENDENCIES): Likewise. 278 (pr20216a_test_CFLAGS): Likewise. 279 (pr20216a_test_LDFLAGS): Likewise. 280 (pr20216a_test_LDADD): Likewise. 281 (pr20216b_test_SOURCES): Likewise. 282 (pr20216b_test_DEPENDENCIES): Likewise. 283 (pr20216b_test_CFLAGS): Likewise. 284 (pr20216b_test_LDFLAGS): Likewise. 285 (pr20216b_test_LDADD): Likewise. 286 (pr20216c_test_SOURCES): Likewise. 287 (pr20216c_test_DEPENDENCIES): Likewise. 288 (pr20216c_test_CFLAGS): Likewise. 289 (pr20216c_test_LDFLAGS): Likewise. 290 (pr20216c_test_LDADD): Likewise. 291 (pr20216d_test_SOURCES): Likewise. 292 (pr20216d_test_DEPENDENCIES): Likewise. 293 (pr20216d_test_CFLAGS): Likewise. 294 (pr20216d_test_LDFLAGS): Likewise. 295 (pr20216d_test_LDADD): Likewise. 296 (pr20216e_test_SOURCES): Likewise. 297 (pr20216e_test_DEPENDENCIES): Likewise. 298 (pr20216e_test_CFLAGS): Likewise. 299 (pr20216e_test_LDFLAGS): Likewise. 300 (pr20216e_test_LDADD): Likewise. 301 (pr20216a.so): Likewise. 302 (pr20216b.so): Likewise. 303 (pr20216_gd.o): Likewise. 304 (pr20216_ld.o): Likewise. 305 (MOSTLYCLEANFILES): Add pr20216a.so pr20216b.so. 306 * testsuite/Makefile.in: Regenerated. 307 * testsuite/pr20216_def.c: New file. 308 * testsuite/pr20216_gd.S: Likewise. 309 * testsuite/pr20216_ld.S: Likewise. 310 * testsuite/pr20216_main.c: Likewise. 311 312 2016-06-29 Alan Modra <amodra (a] gmail.com> 313 314 * script_test_12.t: Delete .plt, specify 64k page size. 315 * script_test_12i.t: Likewise. 316 317 2016-06-29 Alan Modra <amodra (a] gmail.com> 318 319 * testsuite/plugin_layout_with_alignment.c: Explicitly align all 320 variables. 321 322 2016-06-29 Alan Modra <amodra (a] gmail.com> 323 324 * testsuite/Makefile.am (copy_test_protected): Disable for powerpc. 325 * testsuite/Makefile.in: Regenerate. 326 327 2016-06-28 Igor Kudrin <ikudrin (a] accesssoftek.com> 328 329 * aarch64-reloc.def (NONE): New relocation. 330 * aarch64.cc (Target_aarch64::Scan::local): Handle R_AARCH64_NONE. 331 (Target_aarch64::Scan::global): Likewise. 332 * testsuite/Makefile.am (aarch64_reloc_none): New test. 333 * testsuite/Makefile.in: Regenerate. 334 * testsuite/aarch64_reloc_none.s: New test source file. 335 * testsuite/aarch64_reloc_none.sh: New test script. 336 337 2016-06-28 Sriraman Tallam <tmsriram (a] google.com> 338 339 * x86_64.cc (Lazy_view): New class. 340 (can_convert_mov_to_lea): Templatize function. Make the function 341 check for appropriate relocation types and use the view parameter 342 to get section contents. 343 (can_convert_callq_to_direct): New function. 344 (Target_x86_64<size>::Scan::global): Refactor. 345 (Target_x86_64<size>::Relocate::relocate): Refactor. Change any indirect 346 call via GOT that can be converted. 347 * testsuite/Makefile.am (x86_64_indirect_call_to_direct.sh): New test. 348 * testsuite/Makefile.in: Regenerate. 349 * testsuite/x86_64_indirect_call_to_direct1.s: New file. 350 * testsuite/x86_64_indirect_jump_to_direct1.s: New file. 351 352 2016-06-28 Igor Kudrin <ikudrin (a] accesssoftek.com> 353 354 * aarch64.cc (Target_aarch64::Scan::local): Move the call to got_section 355 from the top level to the places of its use. 356 357 2016-06-28 Igor Kudrin <ikudrin (a] accesssoftek.com> 358 359 PR gold/18098 360 * script-c.h (Sort_wildcard): Add SORT_WILDCARD_BY_INIT_PRIORITY. 361 * script-sections.cc (Input_section_sorter::get_init_priority): New method. 362 (Input_section_sorter::operator()): Handle SORT_WILDCARD_BY_INIT_PRIORITY. 363 (Output_section_element_input::print): Likewise. 364 * script.cc (script_keyword_parsecodes): Add entry SORT_BY_INIT_PRIORITY. 365 * yyscript.y (SORT_BY_INIT_PRIORITY): New token. 366 (wildcard_section): Handle SORT_BY_INIT_PRIORITY. 367 368 * testsuite/Makefile.am (script_test_14): New test. 369 * testsuite/Makefile.in: Regenerate. 370 * testsuite/script_test_14.s: New test source file. 371 * testsuite/script_test_14.sh: New test script. 372 * testsuite/script_test_14.t: New test linker script. 373 374 2016-06-28 James Clarke <jrtc27 (a] jrtc27.com> 375 376 * sparc.cc (Target_sparc::Scan::local): Don't convert R_SPARC_32 377 to R_SPARC_RELATIVE if class is ELFCLASS64. 378 (Target_sparc::Scan::global): Likewise. 379 380 2016-06-23 Cary Coutant <ccoutant (a] gmail.com> 381 Igor Kudrin <ikudrin (a] accesssoftek.com> 382 383 PR gold/15370 384 * script-sections.cc 385 (Output_section_element_input::set_section_addresses): Keep bin_count 386 separate from input_pattern_count. 387 * testsuite/script_test_12.t: Add another section .x4. 388 * testsuite/script_test_12i.t: Likewise. 389 * testsuite/script_test_12a.c: Likewise. 390 * testsuite/script_test_12b.c: Likewise. 391 392 2016-06-23 Igor Kudrin <ikudrin (a] accesssoftek.com> 393 394 * gold-threads.cc (impl_threads::Lock_impl_threads): Fix typos. 395 396 2016-06-22 H.J. Lu <hongjiu.lu (a] intel.com> 397 398 PR ld/20283 399 * NEWS: Mention --enable-relro. 400 * configure.ac: Add --enable-relro. 401 (DEFAULT_LD_Z_RELRO): New. Set by --enable-relro and default 402 to 1. 403 * config.in: Regenerated. 404 * configure: Likewise. 405 * options.h (General_options::relro): Default to 406 DEFAULT_LD_Z_RELRO. 407 408 2016-06-20 Cary Coutant <ccoutant (a] gmail.com> 409 410 * NEWS: Add new features in 1.12. 411 * version.cc (version_string): Bump to 1.12. 412 413 2016-06-20 H.J. Lu <hongjiu.lu (a] intel.com> 414 415 PR gold/20245 416 * i386.cc (Target_i386::first_plt_entry_offset): Return 0 if 417 plt_ is NULL. 418 (Target_i386::plt_entry_size): Likewise. 419 (Target_x86_64<size>::first_plt_entry_offset): Likewise. 420 (Target_x86_64<size>::plt_entry_size): Likewise. 421 422 2016-06-20 Vladimir Radosavljevic <Vladimir.Radosavljevic (a] imgtec.com> 423 424 * mips.cc (Target_mips::Target_mips): Initialize rld_map_. 425 (Target_mips::rld_map_): New data member. 426 (Target_mips::do_finalize_sections): Add support for 427 DT_MIPS_RLD_MAP and DT_MIPS_RLD_MAP_REL dynamic tags, 428 .rld_map section, and __RLD_MAP symbol. 429 (Target_mips::do_dynamic_tag_custom_value): Add support for 430 DT_MIPS_RLD_MAP_REL dynamic tag. 431 * output.cc (Output_data_dynamic::get_entry_offset): New method 432 definition. 433 * output.h (Output_data_dynamic::get_entry_offset): New method 434 declaration. 435 436 2016-06-20 Vladimir Radosavljevic <Vladimir.Radosavljevic (a] imgtec.com> 437 438 * mips.cc (Mips_relocate_functions::relpc16): Add unaligned check. 439 440 2016-06-20 Vladimir Radosavljevic <Vladimir.Radosavljevic (a] imgtec.com> 441 442 * mips.cc (relocation_needs_la25_stub): Add support for relocs: 443 R_MIPS_PC21_S2 and R_MIPS_PC26_S2. 444 (hi16_reloc): Add support for R_MIPS_PCHI16 relocation. 445 (is_matching_lo16_reloc): Likewise. 446 (lo16_reloc): Add support for R_MIPS_PCLO16 relocation. 447 (Mips_output_data_plt::plt_entry_r6): New static data member for 448 R6 PLT entry. 449 (Target_mips::is_output_r6): New method. 450 (Target_mips::Mips_mach): Add new enum constants. 451 (Mips_relocate_functions::Status): Likewise. 452 (Mips_relocate_functions::pchi16_relocs): New static data member. 453 (Mips_relocate_functions::relpc21): New method. 454 (Mips_relocate_functions::relpc26): Likewise. 455 (Mips_relocate_functions::relpc18): Likewise. 456 (Mips_relocate_functions::relpc19): Likewise. 457 (Mips_relocate_functions::relpchi16): Likewise. 458 (Mips_relocate_functions::do_relpchi16): Likewise. 459 (Mips_relocate_functions::relpclo16): Likewise. 460 (Mips_output_data_plt::do_write): Add support for Mips r6 plt 461 entry. 462 (Target_mips::mips_32bit_flags): Add E_MIPS_ARCH_32R6 support. 463 (Target_mips::elf_mips_mach): Add E_MIPS_ARCH_32R6 and 464 E_MIPS_ARCH_64R6 support. 465 (Target_mips::update_abiflags_isa): Likewise. 466 (mips_get_size_for_reloc): Add support for relocs: R_MIPS_PCHI16, 467 R_MIPS_PCLO16, R_MIPS_PC21_S2, R_MIPS_PC26_S2, R_MIPS_PC18_S3 and 468 R_MIPS_PC19_S2. 469 (Target_mips::Scan::local): Add support for relocs: R_MIPS_PCHI16 470 and R_MIPS_PCLO16. 471 (Target_mips::Scan::global): Add support for relocs: 472 R_MIPS_PC21_S2 and R_MIPS_PC26_S2. 473 (Target_mips::Relocate::relocate): Call functions for resolving 474 Mips32r6 and Mips64r6 relocations, and print error message for 475 STATUS_PCREL_UNALIGNED. 476 (Target_mips::Scan::get_reference_flags): Add support for relocs: 477 R_MIPS_PCHI16, R_MIPS_PCLO16, R_MIPS_PC21_S2, R_MIPS_PC26_S2, 478 R_MIPS_PC18_S3 and R_MIPS_PC19_S2. 479 (Target_mips::elf_mips_mach_name): Add E_MIPS_ARCH_32R6 and 480 E_MIPS_ARCH_64R6 support. 481 482 2016-06-13 H.J. Lu <hongjiu.lu (a] intel.com> 483 484 PR gold/20246 485 * testsuite/script_test_2.t: Add .got.plt after .got. 486 487 2016-06-10 Vladimir Radosavljevic <Vladimir.Radosavljevic (a] imgtec.com> 488 489 * mips.cc (struct Mips_abiflags): New struct. 490 (Mips_relobj::Mips_relobj): Initialize attributes_section_data_ 491 and abiflags_. 492 (Mips_relobj::~Mips_relobj): Delete object pointed by 493 attributes_section_data_. 494 (Mips_relobj::abiflags): New method. 495 (Mips_relobj::attributes_section_data): Likewise. 496 (Mips_relobj::attributes_section_data_): New data member. 497 (Mips_relobj::abiflags_): Likewise. 498 (class Mips_output_section_abiflags): New class. 499 (Target_mips::Target_mips): Initialize attributes_section_data_, 500 abiflags_ and has_abiflags_section_. 501 (Target_mips::do_should_include_section): Don't emit input 502 .MIPS.abiflags sections to output .MIPS.abiflags. 503 (Target_mips::Mips_mach): Add new enum constants. 504 (Target_mips::mips_isa_ext_mach): New method. 505 (Target_mips::mips_isa_ext): Likewise. 506 (Target_mips::update_abiflags_isa): Likewise. 507 (Target_mips::infer_abiflags): Likewise. 508 (Target_mips::create_abiflags): Likewise. 509 (Target_mips::fp_abi_string): Likewise. 510 (Target_mips::select_fp_abi): Likewise. 511 (Target_mips::merge_obj_attributes): Likewise. 512 (Target_mips::merge_obj_abiflags): Likewise. 513 (Target_mips::level_rev): Likewise. 514 (Target_mips::merge_obj_e_flags): Rename from 515 merge_processor_specific_flags. Remove dyn_obj argument, 516 call update_abiflags_isa when needed, compare NaN encodings and 517 compare FP64 state. 518 (Target_mips::add_machine_extensions): Add two machine extensions 519 and fix one. 520 (Target_mips::attributes_section_data_): New data member. 521 (Target_mips::abiflags_): Likewise. 522 (Target_mips::has_abiflags_section_): Likewise. 523 (Mips_relobj::do_read_symbols): Read .gnu.attributes and 524 .MIPS.abiflags sections if they exists. 525 (Target_mips::elf_mips_mach): Add E_MIPS_MACH_5900 and 526 E_MIPS_MACH_OCTEON3 support. 527 (Target_mips::do_adjust_elf_header): Setup EI_ABIVERSION flag. 528 (Target_mips::do_finalize_sections): Merge .gnu.attributes and 529 .MIPS.abiflags sections from input. Create these sections if 530 needed. 531 (Target_mips::elf_mips_mach_name): Add E_MIPS_MACH_5900 and 532 E_MIPS_MACH_OCTEON3 support, and change strings for 533 E_MIPS_MACH_LS2E, E_MIPS_MACH_LS2F and E_MIPS_MACH_LS3A just 534 to match bfd. 535 536 2016-06-10 Vladimir Radosavljevic <Vladimir.Radosavljevic (a] imgtec.com> 537 538 * mips.cc (Mips_relobj::Mips_relobj): Initialize 539 has_reginfo_section_. 540 (Mips_relobj::has_reginfo_section_): New data member. 541 (Mips_relobj::has_reginfo_section): New method. 542 (class Mips_output_section_reginfo): Change base class to 543 Output_section_data, and set masks of the output .reginfo section 544 in constructor. 545 (Mips_output_section_reginfo::as_mips_output_section_reginfo): 546 Remove. 547 (Mips_output_section_reginfo::set_masks): Likewise. 548 (Mips_output_section_reginfo::set_final_data_size): Likewise. 549 (Mips_output_section_reginfo::do_print_to_mapfile): New method. 550 (Target_mips::do_make_output_section): Remove. 551 (Mips_relobj::do_read_symbols): Set has_reginfo_section_ to true 552 if the object contains a .reginfo section. 553 (Target_mips::do_finalize_sections): Create a .reginfo output 554 section if needed. 555 556 2016-06-09 Artemiy Volkov <artemiyv (a] acm.org> 557 558 * mips.cc (Mips_output_data_got::do_write): Add missing template 559 args via typedef. 560 561 2016-05-30 Marcin Kocielnicki <koriakin (a] 0x04.net> 562 563 PR/19960 564 * s390.cc (Target_s390::ss_code_st_r14): Removed. 565 (Target_s390::ss_code_l_r14): Removed. 566 (Target_s390::ss_code_ear): Removed. 567 (Target_s390::ss_code_c): Removed. 568 (Target_s390::ss_match_st_r14): New function. 569 (Target_s390::ss_match_l_r14): New function. 570 (Target_s390::ss_match_mcount): Call ss_match_{l,st}_r14 instead 571 of matching code directly. 572 (Target_s390::ss_match_ear): New function. 573 (Target_s390::ss_match_c): New function. 574 (Target_s390::do_calls_non_split): Call ss_match_{ear,c} instead 575 of matching code directly. 576 577 2016-05-19 Cary Coutant <ccoutant (a] gmail.com> 578 579 PR gold/19823 580 * copy-relocs.cc (Copy_relocs::make_copy_reloc): Add object 581 parameter; check for protected symbol. 582 * copy-relocs.h (Copy_relocs::make_copy_reloc): Add object parameter. 583 * mips.cc (Mips_copy_relocs): Adjust call to make_copy_reloc. 584 * symtab.cc (Symbol::init_fields): Initialize is_protected_. 585 (Symbol_table::add_from_dynobj): Mark protected symbols. 586 * symtab.h (Symbol::is_protected): New method. 587 (Symbol::set_is_protected): New method. 588 (Symbol::is_protected_): New data member. 589 590 * testsuite/Makefile.am (copy_test_protected): New test. 591 * testsuite/Makefile.in: Regenerate. 592 * testsuite/copy_test.cc (main): Add legal reference to protected 593 symbol. 594 * testsuite/copy_test_v1.cc (main): Likewise. 595 * testsuite/copy_test_2.cc (ip): Add protected symbol. 596 * testsuite/copy_test_protected.cc: New test source file. 597 * testsuite/copy_test_protected.sh: New test script. 598 599 2016-05-19 Vladimir Radosavljevic <vladimir.radosavljevic (a] imgtec.com> 600 601 * mips.cc (Mips_got_entry::Mips_got_entry): Remove object argument 602 for global got symbols, and set addend to 0. 603 (Mips_got_entry::hash): Change hash algorithm. 604 (Mips_got_entry::equals): Refactor. 605 (Mips_got_entry::object): Return input object for local got symbols 606 from union d. 607 (Mips_got_entry::addend): Change return of the relocation addend. 608 (Mips_got_entry::addend_): Move from union d. 609 (Mips_got_entry::object_): Move into union d. 610 (class Mips_symbol_hash): New class. 611 (Mips_got_info::Global_got_entry_set): New type. 612 (Mips_got_info::global_got_symbols): Change return type to 613 Global_got_entry_set. 614 (Mips_got_info::global_got_symbols_): Change type to 615 Global_got_entry_set. 616 (Mips_symbol::hash): New method. 617 (Mips_output_data_la25_stub::symbols_): Change type to std::vector. 618 (Mips_output_data_mips_stubs::Mips_stubs_entry_set): New type. 619 (Mips_output_data_mips_stubs::symbols_): Change type to 620 Mips_stubs_entry_set. 621 (Mips_got_info::record_global_got_symbol): Don't pass object 622 argument when creating global got symbol. 623 (Mips_got_info::record_got_entry): Remove find before inserting 624 got entries. 625 (Mips_got_info::add_reloc_only_entries): Change type of iterator 626 to Global_got_entry_set. 627 (Mips_got_info::count_got_symbols): Likewise. 628 (Mips_output_data_la25_stub::create_la25_stub): Use push_back 629 for adding entries to symbols_. 630 (Mips_output_data_la25_stub::do_write): Change type of iterator 631 to std::vector. 632 (Mips_output_data_mips_stubs::set_lazy_stub_offsets): Change type 633 of iterator to Mips_stubs_entry_set. 634 (Mips_output_data_mips_stubs::set_needs_dynsym_value): Likewise. 635 (Mips_output_data_mips_stubs::do_write): Likewise. 636 637 2016-05-06 Han Shen <shenhan (a] google.com> 638 639 PR gold/19987. 640 641 * aarch64-reloc.def: New relocation type. 642 * aarch64.cc (AArch64_relocate_functions::Page): Changed to public. 643 (Target_aarch64::Scan::local): Add R_AARCH64_LD64_GOTPAGE_LO15. 644 (Target_aarch64::Scan::global): Add R_AARCH64_LD64_GOTPAGE_LO15. 645 (Target_aarch64::Relocate::relocate): Implement R_AARCH64_LD64_GOTPAGE_LO15. 646 647 2016-04-28 Nick Clifton <nickc (a] redhat.com> 648 649 * po/zh_CN.po: Updated Chinese (simplified) translation. 650 651 2016-04-15 H.J. Lu <hongjiu.lu (a] intel.com> 652 653 * Makefile.in: Regenerated with automake 1.11.6. 654 * aclocal.m4: Likewise. 655 * testsuite/Makefile.in: Likewise. 656 657 2016-03-30 Cary Coutant <ccoutant (a] gmail.com> 658 659 PR gold/16979 660 * symtab.cc (Symbol_table::define_default_version): Check for case 661 where symbols are both in different shared objects. 662 663 2016-03-27 Cary Coutant <ccoutant (a] gmail.com> 664 665 PR gold/16111 666 * i386.cc (Target_i386): Add check for fully-resolved symbol for 667 R_386_GOTOFF. 668 669 2016-03-22 Nick Clifton <nickc (a] redhat.com> 670 671 * configure: Regenerate. 672 673 2016-03-21 Cary Coutant <ccoutant (a] gmail.com> 674 675 PR gold/19842 676 * errors.cc (Errors::undefined_symbol): Add info message when 677 symbol should have been provided by a plugin. 678 * target-reloc.h (issue_undefined_symbol_error): Check for 679 placeholder symbols defined in discarded sections. 680 * testsuite/Makefile.am (plugin_test_9b): New test case. 681 * testsuite/Makefile.in: Regenerate. 682 * testsuite/plugin_test_9b_elf.cc: New test source file. 683 * testsuite/plugin_test_9b_ir.cc: New test source file. 684 685 2016-03-20 Cary Coutant <ccoutant (a] gmail.com> 686 687 PR gold/19002 688 * ehframe.cc (Eh_frame::read_fde): Check for dropped functions. 689 * testsuite/Makefile.am (eh_test_2): New test. 690 * testsuite/Makefile.in: Regenerate. 691 * testsuite/eh_test_2.sh: New test script. 692 * testsuite/eh_test_a.cc (bar): Make it comdat. 693 * testsuite/eh_test_b.cc (bar): Add a duplicate copy. 694 695 2016-03-18 Vladimir Radosavljevic <vladimir.radosavljevic (a] imgtec.com> 696 697 * mips.cc (Mips_relobj::is_n64_): Remove. 698 (Target_mips::ei_class_): Likewise. 699 (Mips_relobj::is_newabi): Call methods. 700 (Mips_relobj::is_n64): Change checking for N64 ABI. 701 (Target_mips::is_output_n64): Likewise. 702 (Target_mips::merge_processor_specific_flags): Remove ei_class 703 argument, and remove comparing ei_class. 704 (Target_mips::do_adjust_elf_header): Remove setting EI_CLASS field 705 of the ELF header. 706 (Target_mips::do_finalize_sections): Don't pass ei_class argument 707 to merge_processor_specific_flags. 708 (Target_mips::elf_mips_abi_name): Remove ei_class argument, and 709 change checking for N64 ABI. 710 711 2016-03-17 Vladimir Radosavljevic <vladimir.radosavljevic (a] imgtec.com> 712 713 * mips.cc (enum Special_relocation_symbol): New enum type. 714 (is_readonly_section): New function. 715 (eh_reloc): Likewise. 716 (Mips_got_entry::is_section_symbol_): New member. 717 (Mips_got_entry::is_section_symbol): New method. 718 (Mips_got_info::record_local_got_symbol): Add is_section_symbol 719 argument. 720 (Mips_relobj::mips_elf_options_section_name): New method. 721 (Mips_output_data_got::record_local_got_symbol): Add 722 is_section_symbol argument, and pass it to 723 Mips_got_info::record_local_got_symbol. 724 (Mips_output_data_got::got_offset): Add addend argument, and pass 725 it to Relobj::local_got_offset. 726 (struct Mips_output_reloc_writer): New type. 727 (class Mips_output_data_reloc): New class. 728 (Mips_output_data_plt::Reloc_section): Change type to 729 Mips_output_data_reloc. 730 (Target_mips::Reloc_section): Likewise. 731 (Mips_reloc_types::get_r_addend): Remove unsigned from return type. 732 (Mips_classify_reloc::get_r_type2): New method. 733 (Mips_classify_reloc::get_r_type3): Likewise. 734 (Mips_classify_reloc::get_r_ssym): Likewise. 735 (Target_mips::Reloca_section): Remove. 736 (Relocate::should_apply_static_reloc): Rename from 737 should_apply_r_mips_32_reloc. 738 (Target_mips::copy_reloc): Replace Reltype parameter with r_type 739 and r_offset. 740 (Mips_relocate_functions::Valtype): New type. 741 (Mips_relocate_functions::Valtype64): New type. 742 (Mips_relocate_functions::check_overflow): New method. 743 (Mips_relocate_functions::mips_reloc_unshuffle): Move to public 744 interface. 745 (Mips_relocate_functions::mips_reloc_shuffle): Likewise. 746 (Mips_relocate_functions::rel16): Add support for resolving 747 relocations for Mips64. 748 (Mips_relocate_functions::rel32): Likewise. 749 (Mips_relocate_functions::reljalr): Likewise. 750 (Mips_relocate_functions::relpc32): Likewise. 751 (Mips_relocate_functions::rel26): Likewise. 752 (Mips_relocate_functions::relpc16): Likewise. 753 (Mips_relocate_functions::relmicromips_pc7_s1): Likewise. 754 (Mips_relocate_functions::relmicromips_pc10_s1): Likewise. 755 (Mips_relocate_functions::relmicromips_pc16_s1): Likewise. 756 (Mips_relocate_functions::do_relhi16): Likewise. 757 (Mips_relocate_functions::do_relgot16_local): Likewise. 758 (Mips_relocate_functions::rello16): Likewise. 759 (Mips_relocate_functions::relgot): Likewise. 760 (Mips_relocate_functions::relgotpage): Likewise. 761 (Mips_relocate_functions::relgotofst): Likewise. 762 (Mips_relocate_functions::relgot_hi16): Likewise. 763 (Mips_relocate_functions::relgot_lo16): Likewise. 764 (Mips_relocate_functions::relgprel): Likewise. 765 (Mips_relocate_functions::relgprel32): Likewise. 766 (Mips_relocate_functions::tlsrelhi16): Likewise. 767 (Mips_relocate_functions::tlsrello16): Likewise. 768 (Mips_relocate_functions::tlsrel32): Likewise. 769 (Mips_relocate_functions::relsub): Likewise. 770 (Mips_relocate_functions::releh): New method. 771 (Mips_relocate_functions::rel64): Likewise. 772 (Mips_got_info::record_local_got_symbol): Add is_section_symbol and 773 pass it to Mips_got_entry. 774 (Mips_got_info::add_local_entries): Pass addend argument 775 to code functions, and for STT_SECTION symbols call 776 add_symbolless_local_addend. 777 (Mips_got_info::add_tls_entries): Pass addend argument to code 778 functions. 779 (Mips_relobj::do_read_symbols): Read gp value that was used to 780 create object. 781 (Mips_output_data_plt::plt_entry): Remove opcode from l[wd] 782 instruction. Opcode for instruction will be selected later. 783 (Target_mips::gc_process_relocs): Add case for SHT_RELA. 784 (Target_mips::scan_relocatable_relocs): Likewise. 785 (Target_mips::emit_relocs_scan): Likewise. 786 (Target_mips::relocate_relocs): Likewise. 787 (Target_mips::do_finalize_sections): Skip objects for merging 788 processor specific flags in which all input sections will be 789 discarded. 790 (mips_get_size_for_reloc): Add case for R_MIPS_EH. 791 (Target_mips::Scan::get_reference_flags): Likewise. 792 (Target_mips::relocate_special_relocatable): Call rel26 method with 793 calculate_only and calculated_value arguments. 794 (Target_mips::Scan::local): Add case for R_MIPS_EH. Don't create a 795 dynamic relocation against a readonly sections, and pass 796 is_section_symbol to Mips_got_info::record_local_got_symbol. 797 (Target_mips::Scan::global): Add case for R_MIPS_EH. Don't create a 798 dynamic relocation against a readonly sections, and pass r_type 799 and r_offset to Target_mips::copy_reloc. 800 (Target_mips::Relocate::relocate): Add support for resolving 801 relocations for Mips64. 802 (Target_mips::mips_info): Add case for Mips64 default dynamic 803 linker name. 804 (Target_selector_mips): Correct emulation names. 805 806 2016-03-17 Vladimir Radosavljevic <vladimir.radosavljevic (a] imgtec.com> 807 808 * mips.cc (class Mips_output_data_la25_stub): Add 809 do_print_to_mapfile function. 810 811 2016-03-17 Vladimir Radosavljevic <vladimir.radosavljevic (a] imgtec.com> 812 813 * mips.cc (Mips_classify_reloc::put_r_info): Call 32bit version of 814 elf_r_info. 815 816 2016-03-09 H.J. Lu <hongjiu.lu (a] intel.com> 817 818 * testsuite/plugin_layout_with_alignment.cc: Renamed to .. 819 * testsuite/plugin_layout_with_alignment.c: This. 820 * testsuite/Makefile.am (plugin_layout_with_alignment.o): Updated. 821 (plugin_layout_with_alignment): Likewise. 822 * testsuite/Makefile.in: Regenerated. 823 824 2016-03-08 Cary Coutant <ccoutant (a] gmail.com> 825 826 PR 19751 827 * testsuite/Makefile.am (retain_symbols_file_test): Remove check 828 for constructor. 829 * testsuite/Makefile.in: Regenerate. 830 * testsuite/dynamic_list.sh: Likewise. 831 * testsuite/retain_symbols_file_test.sh: Likewise. 832 833 2016-03-08 Cary Coutant <ccoutant (a] gmail.com> 834 835 PR 19751 836 * arm.cc (Reloc_stub::Key::name): Add unused attribute. 837 * dirsearch.cc (Dir_caches::~Dir_caches): Likewise. 838 839 2016-03-08 Cary Coutant <ccoutant (a] gmail.com> 840 Vladimir Radosavljevic <vladimir.radosavljevic (a] imgtec.com> 841 842 * output.cc (Output_reloc_writer): New type. 843 (Output_data_reloc_base::do_write): Move implementation to template 844 in output.h and replace with invocation of template. 845 * output.h (Output_file): Move to top of file. 846 (Output_reloc::get_symbol_index): Move to public interface. 847 (Output_reloc::get_address): Likewise. 848 (Output_data_reloc_base::do_write_generic): New function template. 849 850 2016-03-04 Cary Coutant <ccoutant (a] gmail.com> 851 852 PR gold/19019 853 PR gold/19763 854 * symtab.cc: Instantiate Sized_symbol::init_constant and 855 Sized_symbol::init_undefined. 856 857 2016-03-03 Cary Coutant <ccoutant (a] gmail.com> 858 859 PR gold/19019 860 * layout.h (Layout::add_target_specific_dynamic_tag): New function. 861 * layout.cc (Layout::add_target_specific_dynamic_tag): New function. 862 * mips.cc (Target_mips::make_symbol): Adjust function signature. 863 * sparc.cc (Target_sparc::Target_sparc): Initialize register_syms_. 864 (Target_sparc::do_is_defined_by_abi): Remove test for 865 STT_SPARC_REGISTER. 866 (Target_sparc::Register_symbol): New struct type. 867 (Target_sparc::register_syms_): New data member. 868 (Target_sparc<64, true>::sparc_info): Set has_make_symbol to true. 869 (Target_sparc::make_symbol): New function. 870 (Target_sparc::do_finalize_sections): Add register symbols and new 871 dynamic table entries. 872 * symtab.h (Sized_symbol::init_undefined): Add value parameter. 873 (Symbol_table::add_target_global_symbol): New function. 874 (Symbol_table::target_symbols_): New data member. 875 * symtab.cc (Sized_symbol::init_undefined): Add value parameter. 876 (Symbol_table::Symbol_table): Initialize target_symbols_. 877 (Symbol_table::add_from_object): Pass additional parameters to 878 Target::make_symbol. 879 (Symbol_table::define_special_symbol): Likewise. 880 (Symbol_table::add_undefined_symbol_from_command_line): Pass 0 for 881 undefined symbol value. 882 (Symbol_table::set_dynsym_indexes): Process target-specific symbols. 883 (Symbol_table::sized_finalize): Likewise. 884 (Symbol_table::sized_write_globals): Likewise. 885 * target.h (Sized_target::make_symbol): Add name, st_type, object, 886 st_shndx, and value parameters. 887 888 2016-03-03 Rafael vila de Espndola <rafael.espindola (a] gmail.com> 889 890 * plugin.cc (do_should_include_member): Ignore LDPK_UNDEF and 891 LDPK_WEAKUNDEF symbols. 892 893 2016-03-03 Than McIntosh <thanm (a] google.com> 894 895 * plugin.cc (Plugin::load): Include hooks for get_input_section_size 896 and get_input_section_alignment in transfer vector. 897 (get_input_section_alignment): New function. 898 (get_input_section_size): New function. 899 * testsuite/Makefile.am: Add plugin_layout_with_alignment.sh test. 900 * testsuite/Makefile.in: [Regenerate.] 901 * testsuite/plugin_section_alignment.cc: New test file. 902 * testsuite/plugin_layout_with_alignment.cc: New test file. 903 * testsuite/plugin_layout_with_alignment.sh: New test file. 904 905 2016-03-03 Evgenii Stepanov <eugenis (a] google.com> 906 907 * plugin.h (Pluginobj::get_symbol_resolution_info): Add version 908 parameter. 909 * plugin.cc (get_symbols_v3): New function. 910 (Plugin::load): Add LDPT_GET_SYMBOLS_V3. 911 (Pluginobj::get_symbol_resolution_info): Return LDPS_NO_SYMS when using 912 new version. 913 914 2016-02-26 Egor Kochetov <egor.kochetov (a] intel.com> 915 Cary Coutant <ccoutant (a] gmail.com> 916 917 PR gold/19735 918 * ehframe.h (Cie::fde_encoding): New method. 919 * ehframe.cc (Eh_frame::read_fde): Discard FDEs for zero-length 920 address ranges. 921 922 2016-02-15 H.J. Lu <hongjiu.lu (a] intel.com> 923 924 * testsuite/Makefile.am (x86_64_mov_to_lea5.o): Pass 925 -mrelax-relocations=yes to $(TEST_AS). 926 (x86_64_mov_to_lea6.o): Likewise. 927 (x86_64_overflow_pc32.o): Remove duplicated target. 928 * testsuite/Makefile.in: Regenerated. 929 930 2016-02-15 Marcin Kocielnicki <koriakin (a] 0x04.net> 931 932 * s390.cc (Target_s390::match_view_u): New helper method. 933 (Target_s390::do_is_call_to_non_split): New method. 934 (Target_s390::ss_code_st_r14): New const. 935 (Target_s390::ss_code_l_r14): New const. 936 (Target_s390::ss_code_bras_8): New const. 937 (Target_s390::ss_code_l_basr): New const. 938 (Target_s390::ss_code_a_basr): New const. 939 (Target_s390::ss_code_ear): New const. 940 (Target_s390::ss_code_c): New const. 941 (Target_s390::ss_code_larl): New const. 942 (Target_s390::ss_code_brasl): New const. 943 (Target_s390::ss_code_jg): New const. 944 (Target_s390::ss_code_jgl): New const. 945 (Target_s390::ss_match_mcount): New helper method. 946 (Target_s390::ss_match_l): New helper method. 947 (Target_s390::ss_match_ahi): New helper method. 948 (Target_s390::ss_match_alfi): New helper method. 949 (Target_s390::ss_match_cr): New helper method. 950 (Target_s390::do_calls_non_split): New method. 951 * testsuite/Makefile.am: Added new tests. 952 * testsuite/Makefile.in: Regenerate. 953 * testsuite/split_s390.sh: New test. 954 * testsuite/split_s390_1_a1.s: New test. 955 * testsuite/split_s390_1_a2.s: New test. 956 * testsuite/split_s390_1_n1.s: New test. 957 * testsuite/split_s390_1_n2.s: New test. 958 * testsuite/split_s390_1_z1.s: New test. 959 * testsuite/split_s390_1_z2.s: New test. 960 * testsuite/split_s390_1_z3.s: New test. 961 * testsuite/split_s390_1_z4.s: New test. 962 * testsuite/split_s390_2_ns.s: New test. 963 * testsuite/split_s390_2_s.s: New test. 964 * testsuite/split_s390x_1_a1.s: New test. 965 * testsuite/split_s390x_1_a2.s: New test. 966 * testsuite/split_s390x_1_n1.s: New test. 967 * testsuite/split_s390x_1_n2.s: New test. 968 * testsuite/split_s390x_1_z1.s: New test. 969 * testsuite/split_s390x_1_z2.s: New test. 970 * testsuite/split_s390x_1_z3.s: New test. 971 * testsuite/split_s390x_1_z4.s: New test. 972 * testsuite/split_s390x_2_ns.s: New test. 973 * testsuite/split_s390x_2_s.s: New test. 974 975 2016-02-11 Rahul Chaudhry <rahulchaudhry (a] google.com> 976 977 * aarch64.cc (Target_aarch64::scan_erratum_843419_span): Remove 978 info message for every erratum 843419 found and fixed. 979 980 2016-02-07 Cary Coutant <ccoutant (a] gmail.com> 981 982 PR gold/18695 983 * x86_64.cc (Target_x86_64::Relocate::relocate): Add additional 984 information to relocation overflow errors. 985 986 2016-02-06 Cary Coutant <ccoutant (a] gmail.com> 987 988 PR gold/18695 989 * x86_64.cc (X86_64_relocate_functions::pcrela32_check): Fix x32 990 overflow checking when symbol value + addend < 0. 991 992 2016-02-06 Cary Coutant <ccoutant (a] gmail.com> 993 994 PR gold/19577 995 * reloc.h (Limits): New class. 996 (Bits::has_overflow32): Use min/max values from Limits. 997 (Bits::has_unsigned_overflow32): Likewise. 998 (Bits::has_signed_unsigned_overflow32): Likewise. 999 (Bits::has_overflow): Likewise. 1000 (Bits::has_unsigned_overflow): Likewise. 1001 (Bits::has_signed_unsigned_overflow64): Likewise. 1002 1003 2016-02-06 Cary Coutant <ccoutant (a] gmail.com> 1004 1005 PR gold/19567 1006 * reloc.h (Relocate_functions::Overflow_check): Add comments. 1007 * x86_64.cc (X86_64_relocate_functions): New class. 1008 (Target_x86_64::Relocate::relocate): Use the new class. 1009 * testsuite/Makefile.am (x86_64_overflow_pc32): Add -Tdata option. 1010 (x32_overflow_pc32): New test case. 1011 * testsuite/Makefile.in: Regenerate. 1012 * testsuite/x32_overflow_pc32.sh: New script. 1013 * testsuite/x86_64_overflow_pc32.s: Remove .space directive. 1014 1015 2016-02-06 Cary Coutant <ccoutant (a] gmail.com> 1016 1017 PR gold/19577 1018 * reloc.h (Bits::has_unsigned_overflow32): Fix static_cast. 1019 (Bits::has_unsigned_overflow): Remove unnecessary static_cast. 1020 1021 2016-02-06 Cary Coutant <ccoutant (a] gmail.com> 1022 1023 PR gold/19577 1024 * reloc.h (Bits::has_unsigned_overflow32): Fix unsigned/signed 1025 comparison. 1026 (Bits::has_unsigned_overflow): Likewise. 1027 1028 2016-02-06 Marcin Kocielnicki <koriakin (a] 0x04.net> 1029 1030 * i386.cc (Target_i386::is_call_to_non_split): Add view and view_size 1031 parameters. 1032 * reloc.cc (Sized_relobj_file::split_stack_adjust_reltype): Pass view 1033 and view_size to is_call_to_non_split. 1034 * target.cc (Target::is_call_to_non_split): Add view and view_size 1035 parameters. 1036 * target.h (class Target): Likewise. 1037 1038 2016-02-05 Sriraman Tallam <tmsriram (a] google.com> 1039 1040 * icf.cc (get_rel_addend): New function. 1041 (get_section_contents): Move merge section addend computation to a 1042 new function. Ignore negative values for SHT_REL and SHT_RELA addends. 1043 Fix bug to not read past the length of the section. 1044 1045 2016-02-05 Cary Coutant <ccoutant (a] gmail.com> 1046 Andrew Senkevich <andrew.senkevich (a] intel.com> 1047 1048 PR gold/18695 1049 * x86_64.cc (Target_x86_64::Relocate::relocate): Add overflow 1050 checking for R_X86_64_32, R_X86_64_32S, R_X86_64_PC32, and 1051 R_X86_64_PLT32. 1052 * testsuite/Makefile.am (x86_64_overflow_pc32): New test. 1053 * testsuite/x86_64_overflow_pc32.sh: New test script. 1054 * testsuite/x86_64_overflow_pc32.s: New source file. 1055 1056 2016-02-05 Cary Coutant <ccoutant (a] gmail.com> 1057 1058 PR gold/18695 1059 * reloc.h (Relocate_functions::Address): New typedef. 1060 (Relocate_functions::Addendtype): New typedef. 1061 (Relocate_functions::Overflow_check): New enum type. 1062 (Relocate_functions::Reloc_status): New enum type. 1063 (Relocate_functions::check_overflow): New function template. 1064 (Relocate_functions::rel): Add check parameter; check for overflow. 1065 (Relocate_functions::rel_unaligned): Likewise. 1066 (Relocate_functions::rela): Likewise. 1067 (Relocate_functions::pcrel): Likewise. 1068 (Relocate_functions::pcrel_unaligned): Likewise. 1069 (Relocate_functions::pcrela): Likewise. 1070 (Relocate_functions::rel8): Adjust parameter types. 1071 (Relocate_functions::rela8): Likewise. 1072 (Relocate_functions::pcrel8): Likewise. 1073 (Relocate_functions::pcrela8): Likewise. 1074 (Relocate_functions::rel16): Likewise. 1075 (Relocate_functions::rela168): Likewise. 1076 (Relocate_functions::pcrel16): Likewise. 1077 (Relocate_functions::pcrela16): Likewise. 1078 (Relocate_functions::rel32): Likewise. 1079 (Relocate_functions::rel32_unaligned): Likewise. 1080 (Relocate_functions::rela32): Likewise. 1081 (Relocate_functions::pcrel32): Likewise. 1082 (Relocate_functions::pcrel32_unaligned): Likewise. 1083 (Relocate_functions::pcrela32): Likewise. 1084 (Relocate_functions::rel8_check): New function. 1085 (Relocate_functions::rela8_check): New function. 1086 (Relocate_functions::pcrel8_check): New function. 1087 (Relocate_functions::pcrela8_check): New function. 1088 (Relocate_functions::rel16_check): New function. 1089 (Relocate_functions::rela168_check): New function. 1090 (Relocate_functions::pcrel16_check): New function. 1091 (Relocate_functions::pcrela16_check): New function. 1092 (Relocate_functions::rel32_check): New function. 1093 (Relocate_functions::rel32_unaligned_check): New function. 1094 (Relocate_functions::rela32_check): New function. 1095 (Relocate_functions::pcrel32_check): New function. 1096 (Relocate_functions::pcrel32_unaligned_check): New function. 1097 (Relocate_functions::pcrela32_check): New function. 1098 (Bits::has_unsigned_overflow32): New function. 1099 (Bits::has_unsigned_overflow): New function. 1100 * testsuite/Makefile.am (overflow_unittest): New test. 1101 * testsuite/Makefile.in: Regenerate. 1102 * testsuite/overflow_unittest.cc: New source file. 1103 1104 2016-02-04 Alan Modra <amodra (a] gmail.com> 1105 1106 * powerpc.cc (relocate): Adjust last patch for big-endian. 1107 1108 2016-02-02 Alan Modra <amodra (a] gmail.com> 1109 1110 * powerpc.cc (relocate): Further restrict ELFv2 entry optimization. 1111 1112 2016-01-15 Han Shen <shenhan (a] google.com> 1113 1114 PR gold/19472 - need pc-relative stubs. 1115 1116 * aarch64.cc (Reloc_stub::stub_type_for_reloc): Return PC-relative 1117 stub type for DSOs and pie executables. 1118 1119 2016-01-12 H.J. Lu <hongjiu.lu (a] intel.com> 1120 1121 * i386.cc (Target_i386::Classify_reloc::get_r_addend): Remove 1122 'typename'. 1123 1124 2016-01-12 Cary Coutant <ccoutant (a] gmail.com> 1125 1126 * arm.cc (Target_arm::Classify_reloc::get_r_addend): New method. 1127 * i386.cc (Target_i386::Classify_reloc::get_r_addend): New method. 1128 * mips.cc (Target_arm::Mips_classify_reloc::get_r_addend): (Both 1129 specializations) New method. 1130 1131 2016-01-11 Cary Coutant <ccoutant (a] gmail.com> 1132 1133 PR gold/19353 1134 * aarch64.cc (Target_aarch64::relocate_tls): Don't insist that 1135 we have a TLS segment for GD-to-IE optimization. 1136 * i386.cc (Target_i386::tls_gd_to_ie): Remove tls_segment parameter. 1137 Adjust all calls. 1138 (Target_i386::tls_desc_gd_to_ie): Likewise. 1139 (Target_i386::relocate_tls): Don't insist that we have a TLS segment 1140 for TLSDESC GD-to-IE optimizations. 1141 * x86_64.cc (Target_x86_64::tls_gd_to_ie): Remove tls_segment parameter. 1142 Adjust all calls. 1143 (Target_x86_64::tls_desc_gd_to_ie): Likewise. 1144 (Target_x86_64::relocate_tls): Don't insist that we have a TLS segment 1145 for TLSDESC GD-to-IE optimizations. 1146 1147 2016-01-11 Cary Coutant <ccoutant (a] gmail.com> 1148 1149 Refactor gold to enable support for MIPS-64 relocation format. 1150 1151 * gc.h (get_embedded_addend_size): Remove sh_type parameter. 1152 (gc_process_relocs): Remove sh_type template parameter. 1153 Use Classify_reloc to access r_sym, r_type, and r_addend fields. 1154 * object.h (Sized_relobj_file::split_stack_adjust): Add target 1155 parameter. 1156 (Sized_relobj_file::split_stack_adjust_reltype): Likewise. 1157 * reloc-types.h (Reloc_types::copy_reloc_addend): (SHT_REL and SHT_RELA 1158 specializations) Remove. 1159 * reloc.cc (Emit_relocs_strategy): Rename and move to target-reloc.h. 1160 (Sized_relobj_file::emit_relocs_scan): Call Target::emit_relocs_scan(). 1161 (Sized_relobj_file::emit_relocs_scan_reltype): Remove. 1162 (Sized_relobj_file::split_stack_adjust): Add target parameter. 1163 Adjust all callers. 1164 (Sized_relobj_file::split_stack_adjust_reltype): Likewise. Call 1165 Target::get_r_sym() to get r_sym field from relocations. 1166 (Track_relocs::next_symndx): Call Target::get_r_sym(). 1167 * target-reloc.h (scan_relocs): Remove sh_type template parameter; 1168 add Classify_reloc template parameter. Use for accessing r_sym and 1169 r_type. 1170 (relocate_section): Likewise. 1171 (Default_classify_reloc): New class (renamed and moved from reloc.cc). 1172 (Default_scan_relocatable_relocs): Remove sh_type template parameter. 1173 (Default_scan_relocatable_relocs::Reltype): New typedef. 1174 (Default_scan_relocatable_relocs::reloc_size): New const. 1175 (Default_scan_relocatable_relocs::sh_type): New const. 1176 (Default_scan_relocatable_relocs::get_r_sym): New method. 1177 (Default_scan_relocatable_relocs::get_r_type): New method. 1178 (Default_emit_relocs_strategy): New class. 1179 (scan_relocatable_relocs): Replace sh_type template parameter with 1180 Scan_relocatable_relocs class. Use it to access r_sym and r_type 1181 fields. 1182 (relocate_relocs): Replace sh_type template parameter with 1183 Classify_reloc class. Use it to access r_sym and r_type fields. 1184 * target.h (Target::is_call_to_non_split): Replace r_type parameter 1185 with pointer to relocation. Adjust all callers. 1186 (Target::do_is_call_to_non_split): Likewise. 1187 (Target::emit_relocs_scan): New virtual method. 1188 (Sized_target::get_r_sym): New virtual method. 1189 * target.cc (Target::do_is_call_to_non_split): Replace r_type parameter 1190 with pointer to relocation. 1191 1192 * aarch64.cc (Target_aarch64::emit_relocs_scan): New method. 1193 (Target_aarch64::Relocatable_size_for_reloc): Remove. 1194 (Target_aarch64::gc_process_relocs): Use Default_classify_reloc. 1195 (Target_aarch64::scan_relocs): Likewise. 1196 (Target_aarch64::relocate_section): Likewise. 1197 (Target_aarch64::Relocatable_size_for_reloc::get_size_for_reloc): 1198 Remove. 1199 (Target_aarch64::scan_relocatable_relocs): Use Default_classify_reloc. 1200 (Target_aarch64::relocate_relocs): Use Default_classify_reloc. 1201 * arm.cc (Target_arm::Arm_scan_relocatable_relocs): Remove sh_type 1202 template parameter. 1203 (Target_arm::emit_relocs_scan): New method. 1204 (Target_arm::Relocatable_size_for_reloc): Replace with... 1205 (Target_arm::Classify_reloc): ...this. 1206 (Target_arm::gc_process_relocs): Use Classify_reloc. 1207 (Target_arm::scan_relocs): Likewise. 1208 (Target_arm::relocate_section): Likewise. 1209 (Target_arm::scan_relocatable_relocs): Likewise. 1210 (Target_arm::relocate_relocs): Likewise. 1211 * i386.cc (Target_i386::emit_relocs_scan): New method. 1212 (Target_i386::Relocatable_size_for_reloc): Replace with... 1213 (Target_i386::Classify_reloc): ...this. 1214 (Target_i386::gc_process_relocs): Use Classify_reloc. 1215 (Target_i386::scan_relocs): Likewise. 1216 (Target_i386::relocate_section): Likewise. 1217 (Target_i386::scan_relocatable_relocs): Likewise. 1218 (Target_i386::relocate_relocs): Likewise. 1219 * mips.cc (Mips_scan_relocatable_relocs): Remove sh_type template 1220 parameter. 1221 (Mips_reloc_types): New class template. 1222 (Mips_classify_reloc): New class template. 1223 (Target_mips::Reltype): New typedef. 1224 (Target_mips::Relatype): New typedef. 1225 (Target_mips::emit_relocs_scan): New method. 1226 (Target_mips::get_r_sym): New method. 1227 (Target_mips::Relocatable_size_for_reloc): Replace with 1228 Mips_classify_reloc. 1229 (Target_mips::copy_reloc): Use Mips_classify_reloc. 1230 (Target_mips::gc_process_relocs): Likewise. 1231 (Target_mips::scan_relocs): Likewise. 1232 (Target_mips::relocate_section): Likewise. 1233 (Target_mips::scan_relocatable_relocs): Likewise. 1234 (Target_mips::relocate_relocs): Likewise. 1235 (mips_get_size_for_reloc): New function, factored out from 1236 Relocatable_size_for_reloc::get_size_for_reloc. 1237 (Target_mips::Scan::local): Use Mips_classify_reloc. 1238 (Target_mips::Scan::global): Likewise. 1239 (Target_mips::Relocate::relocate): Likewise. 1240 * powerpc.cc (Target_powerpc::emit_relocs_scan): New method. 1241 (Target_powerpc::Relocatable_size_for_reloc): Remove. 1242 (Target_powerpc::gc_process_relocs): Use Default_classify_reloc. 1243 (Target_powerpc::scan_relocs): Likewise. 1244 (Target_powerpc::relocate_section): Likewise. 1245 (Powerpc_scan_relocatable_reloc): Convert to class template. 1246 (Powerpc_scan_relocatable_reloc::Reltype): New typedef. 1247 (Powerpc_scan_relocatable_reloc::reloc_size): New const. 1248 (Powerpc_scan_relocatable_reloc::sh_type): New const. 1249 (Powerpc_scan_relocatable_reloc::get_r_sym): New method. 1250 (Powerpc_scan_relocatable_reloc::get_r_type): New method. 1251 (Target_powerpc::scan_relocatable_relocs): Use 1252 Powerpc_scan_relocatable_reloc. 1253 (Target_powerpc::relocate_relocs): Use Default_classify_reloc. 1254 * s390.cc (Target_s390::emit_relocs_scan): New method. 1255 (Target_s390::Relocatable_size_for_reloc): Remove. 1256 (Target_s390::gc_process_relocs): Use Default_classify_reloc. 1257 (Target_s390::scan_relocs): Likewise. 1258 (Target_s390::relocate_section): Likewise. 1259 (Target_s390::Relocatable_size_for_reloc::get_size_for_reloc): 1260 Remove. 1261 (Target_s390::scan_relocatable_relocs): Use Default_classify_reloc. 1262 (Target_s390::relocate_relocs): Use Default_classify_reloc. 1263 * sparc.cc (Target_sparc::emit_relocs_scan): New method. 1264 (Target_sparc::Relocatable_size_for_reloc): Remove. 1265 (Target_sparc::gc_process_relocs): Use Default_classify_reloc. 1266 (Target_sparc::scan_relocs): Likewise. 1267 (Target_sparc::relocate_section): Likewise. 1268 (Target_sparc::Relocatable_size_for_reloc::get_size_for_reloc): 1269 Remove. 1270 (Target_sparc::scan_relocatable_relocs): Use Default_classify_reloc. 1271 (Target_sparc::relocate_relocs): Use Default_classify_reloc. 1272 * tilegx.cc (Target_tilegx::emit_relocs_scan): New method. 1273 (Target_tilegx::Relocatable_size_for_reloc): Remove. 1274 (Target_tilegx::gc_process_relocs): Use Default_classify_reloc. 1275 (Target_tilegx::scan_relocs): Likewise. 1276 (Target_tilegx::relocate_section): Likewise. 1277 (Target_tilegx::Relocatable_size_for_reloc::get_size_for_reloc): 1278 Remove. 1279 (Target_tilegx::scan_relocatable_relocs): Use Default_classify_reloc. 1280 (Target_tilegx::relocate_relocs): Use Default_classify_reloc. 1281 * x86_64.cc (Target_x86_64::emit_relocs_scan): New method. 1282 (Target_x86_64::Relocatable_size_for_reloc): Remove. 1283 (Target_x86_64::gc_process_relocs): Use Default_classify_reloc. 1284 (Target_x86_64::scan_relocs): Likewise. 1285 (Target_x86_64::relocate_section): Likewise. 1286 (Target_x86_64::Relocatable_size_for_reloc::get_size_for_reloc): 1287 Remove. 1288 (Target_x86_64::scan_relocatable_relocs): Use Default_classify_reloc. 1289 (Target_x86_64::relocate_relocs): Use Default_classify_reloc. 1290 1291 * testsuite/testfile.cc (Target_test::emit_relocs_scan): New method. 1292 1293 2016-01-01 Alan Modra <amodra (a] gmail.com> 1294 1295 Update year range in copyright notice of all files. 1296 1297 For older changes see ChangeLog-0815 1298 1300 Copyright (C) 2016 Free Software Foundation, Inc. 1301 1302 Copying and distribution of this file, with or without modification, 1303 are permitted in any medium without royalty provided the copyright 1304 notice and this notice are preserved. 1305 1306 Local Variables: 1307 mode: change-log 1308 left-margin: 8 1309 fill-column: 74 1310 version-control: never 1311 End: 1312