)]}' { "commit": "f19c3684a6db145f57048bff5485fec6e3dd0f76", "tree": "f9a488503e22d7ecae390a551b5bbadddd0ec52a", "parents": [ "a19da04b3c3a01699aaf7a59b03f5f008355b23d" ], "author": { "name": "Alan Modra", "email": "amodra@gmail.com", "time": "Sat Oct 09 10:03:21 2021 +1030" }, "committer": { "name": "Alan Modra", "email": "amodra@gmail.com", "time": "Thu Oct 14 13:08:46 2021 +1030" }, "message": "[GOLD] Two GOT sections for PowerPC64\n\nSplit .got into two piece, one with the header and entries for small\nmodel got entries, the other with entries for medium/large model got\nentries. The idea is to better support mixed pcrel/non-pcrel code\nwhere non-pcrel small-model .toc entries need to be within 32k of the\ntoc pointer.\n\n\t* target.h (Target::tls_offset_for_local): Add got param.\n\t(Target::tls_offset_for_global): Likewise.\n\t(Target::do_tls_offset_for_local, do_tls_offset_for_global): Likewise.\n\t* output.h (Output_data_got::Got_entry::write): Add got param.\n\t* output.cc (Output_data_got::Got_entry::write): Likewise, pass to\n\ttls_offset_for_local/global calls.\n\t(Output_data_got::do_write): Adjust to suit.\n\t* s390.cc (Target_s390::do_tls_offset_for_local): Likewise.\n\t(Target_s390::do_tls_offset_for_global): Likewise.\n\t* powerpc.cc (enum Got_type): Extend with small types, move from\n\tclass Target_powerpc.\n\t(Target_powerpc::biggot_): New.\n\t(Traget_powerpc::do_tls_offset_for_local, do_tls_offset_for_global,\n\tgot_size, got_section, got_base_offset): Handle biggot_.\n\t(Target_powerpc::do_define_standard_symbols): Adjust.\n\t(Target_powerpc::make_plt_section, do_finalize_sections): Likewise.\n\t(Output_data_got_powerpc::Output_data_got_powerpc): Only make\n\t64-bit header for small got section.\n\t(Output_data_got_powerpc::g_o_t): Only return a result for small\n\tgot section.\n\t(Output_data_got_powerpc::write): Only write small got section\n\theader.\n\t(Target_powerpc::Scan::local, global): Select small/big Got_type\n\tand section to suit reloc.\n\t(Target_powerpc::Relocate::relocate): Similarly.\n\t(Sort_toc_sections): Rewrite.\n", "tree_diff": [ { "type": "modify", "old_id": "7ad8750aa3621e439913f39a7e283d5dc48af1bb", "old_mode": 33188, "old_path": "gold/output.cc", "new_id": "f2890c87f8ccaa7f5c15bdde8e98a6ec10e5fa20", "new_mode": 33188, "new_path": "gold/output.cc" }, { "type": "modify", "old_id": "bf4b54eb8bc2dcb6f8e415299e5e3c3313e87a69", "old_mode": 33188, "old_path": "gold/output.h", "new_id": "9f1ed6cc5679b12177e64f1618883f4fadf1eccc", "new_mode": 33188, "new_path": "gold/output.h" }, { "type": "modify", "old_id": "2d6d34e21e4dbf05f199abb9da435987592fddf0", "old_mode": 33188, "old_path": "gold/powerpc.cc", "new_id": "d10b11e003b1bce6cb3307b7854da1027e0d4523", "new_mode": 33188, "new_path": "gold/powerpc.cc" }, { "type": "modify", "old_id": "3095320524f676bbd43873a2ba2819ecbc80e96a", "old_mode": 33188, "old_path": "gold/s390.cc", "new_id": "a515f801c58846b7e6e61fd96e7d03733494d823", "new_mode": 33188, "new_path": "gold/s390.cc" }, { "type": "modify", "old_id": "4fce9fdf2c7ac1fe6ba89917a088b9a9c98588e7", "old_mode": 33188, "old_path": "gold/target.h", "new_id": "b9a27d5a0d29ca36354e5971e99ccbdc584fe4df", "new_mode": 33188, "new_path": "gold/target.h" } ] }