Alan Modra 1be5d8d3bb PowerPC PLT speculative execution barriers
Spectre variant 2 mitigation for PowerPC and PowerPC64.

bfd/
	* elf32-ppc.c (GLINK_ENTRY_SIZE): Handle speculation barrier.
	(CRSETEQ, BEQCTRM): Define.
	(is_nonpic_glink_stub): Don't check bctr.
	(ppc_elf_link_hash_table_create): Init new ppc_elf_params field.
	(ppc_elf_relax_section): Size speculation barrier.
	(output_bctr): New function.
	(write_glink_stub): Use output_bctr.
	(ppc_elf_relocate_section): Use output_bctr for long branch stub.
	(ppc_elf_finish_dynamic_symbol): Likewise.
	(ppc_elf_finish_dynamic_sections): Use output_bctr.
	* elf32-ppc.h (struct ppc_elf_params): Add speculate_indirect_jumps.
	* elf64-ppc.c (CRSETEQ, BEQCTRM, BEQCTRLM): Define.
	(GLINK_PLTRESOLVE_SIZE): Size speculation barrier.
	(size_global_entry_stubs): Handle speculation barrier sizing.
	(plt_stub_size): Likewise.
	(output_bctr): New function.
	(build_plt_stub, build_tls_get_addr_stub): Output speculation
	barrier.
	(ppc_build_one_stub): Likewise for ppc_stub_plt_branch.
	(ppc_size_one_stub): Size speculation barrier in ppc_stub_plt_branch.
	(build_global_entry_stubs): Output speculation barrier.
	(ppc64_elf_build_stubs): Likewise in __glink_PLTresolve stub.
	* elf64-ppc.h (struct ppc64_elf_params): Add speculate_indirect_jumps.
gold/
	* options.h (speculate_indirect_jumps): New option.
	* powerpc.cc (beqctrm, beqctrlm, crseteq): New insn constants.
	(output_bctr): New function.
	(Stub_table::plt_call_size): Add space for speculation barrier.
	(Stub_table::branch_stub_size): Likewise.
	(Output_data_glink::pltresolve_size): Likewise.
	(Stub_table::do_write): Output speculation barriers.
ld/
	* emultempl/ppc32elf.em (params): Init new field.
	(OPTION_SPECULATE_INDIRECT_JUMPS): Define.
	(OPTION_NO_SPECULATE_INDIRECT_JUMPS): Define.
	(PARSE_AND_LIST_LONGOPTS): Handle new options.
	(PARSE_AND_LIST_ARGS_CASES): Likewise.
	(PARSE_AND_LIST_OPTIONS): Likewise.
	* emultempl/ppc64elf.em (params): Init new field.
	(OPTION_SPECULATE_INDIRECT_JUMPS): Define.
	(OPTION_NO_SPECULATE_INDIRECT_JUMPS): Define.
	(PARSE_AND_LIST_LONGOPTS): Handle --speculate-indirect-jumps.
	(PARSE_AND_LIST_OPTIONS): Likewise.
	(PARSE_AND_LIST_ARGS_CASES): Likewise.
	* ld.texinfo (--no-plt-thread-safe): Correct itemx.
	(--speculate-indirect-jumps): Document.
	* testsuite/ld-powerpc/elfv2exe.d,
	* testsuite/ld-powerpc/elfv2so.d,
	* testsuite/ld-powerpc/relbrlt.d,
	* testsuite/ld-powerpc/powerpc.exp: Disable plt alignment and
	speculation barriers on various tests.
2018-01-17 18:52:57 +10:30
..
2017-02-28 11:59:47 +10:30
2009-03-14 09:16:01 +00:00
2009-03-14 09:16:01 +00:00
2009-03-14 09:16:01 +00:00
2009-03-14 09:32:56 +00:00
2009-03-14 09:16:01 +00:00
2009-03-14 09:15:34 +00:00
2009-03-14 09:15:34 +00:00
2009-03-14 09:32:56 +00:00
2009-03-14 09:15:34 +00:00
2009-03-14 09:15:34 +00:00
ld/
2009-03-14 09:14:30 +00:00
ld/
2009-03-14 09:14:30 +00:00
ld/
2009-03-14 09:14:30 +00:00
ld/
2009-03-14 09:14:30 +00:00
ld/
2009-03-14 09:14:30 +00:00
ld/
2009-03-14 09:14:30 +00:00
2009-03-14 09:35:46 +00:00
2009-03-14 09:35:46 +00:00
2009-03-14 09:35:46 +00:00
2009-03-14 09:35:46 +00:00
2009-04-16 23:07:00 +00:00
2009-04-16 23:07:00 +00:00
2009-03-14 09:35:06 +00:00
2009-03-14 09:35:06 +00:00
2009-03-14 09:35:06 +00:00
2009-04-01 20:09:03 +00:00
2009-03-14 09:35:06 +00:00
2009-03-14 09:17:32 +00:00
2009-03-14 09:17:32 +00:00
2009-03-14 09:17:32 +00:00
2009-03-14 09:17:32 +00:00
2009-03-14 09:17:32 +00:00
2009-03-14 09:17:32 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-06-02 18:51:34 +00:00
2009-06-02 18:51:34 +00:00
2009-06-02 18:51:34 +00:00
2009-06-02 18:51:34 +00:00
2009-06-02 18:51:34 +00:00
2009-06-02 18:51:34 +00:00
2009-03-14 09:32:33 +00:00
2009-03-14 09:32:33 +00:00
2009-03-14 09:32:33 +00:00
2009-03-14 09:32:33 +00:00
2009-03-14 09:32:33 +00:00
2009-03-14 09:32:33 +00:00
2009-03-14 09:33:39 +00:00
2009-03-14 09:33:39 +00:00
2009-03-14 09:33:39 +00:00
2009-03-14 09:33:39 +00:00
2009-03-14 09:33:39 +00:00
2009-03-14 09:33:39 +00:00
2009-03-14 09:33:39 +00:00
2009-03-14 09:33:39 +00:00
2009-03-14 09:33:39 +00:00
2009-03-14 09:33:39 +00:00
2010-01-23 12:05:33 +00:00
2010-01-23 12:05:33 +00:00
2010-01-23 12:05:33 +00:00
2009-04-01 19:27:38 +00:00
2009-04-01 19:27:38 +00:00
2009-03-14 09:18:22 +00:00
2009-03-14 09:18:22 +00:00
2009-03-14 09:18:22 +00:00
2009-03-14 09:18:22 +00:00
2009-03-14 09:18:22 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:35:06 +00:00
2009-03-14 09:35:06 +00:00
2009-03-14 09:35:06 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2009-03-14 09:34:27 +00:00
2017-11-07 17:01:16 +10:30
2017-11-07 17:01:16 +10:30
2017-11-07 17:01:16 +10:30
2017-11-07 17:01:16 +10:30
2016-06-07 22:04:38 +09:30
2010-04-01 10:02:28 +00:00
2010-02-08 07:09:39 +00:00
2016-06-07 22:04:38 +09:30
2007-06-30 00:03:40 +00:00
2007-06-30 00:03:40 +00:00
2007-06-30 00:03:40 +00:00
2007-06-30 00:03:40 +00:00
2007-06-30 00:03:40 +00:00
2016-09-26 18:04:57 +09:30
2016-09-26 18:04:57 +09:30
2016-09-26 18:04:57 +09:30
2016-09-26 18:04:57 +09:30
2016-09-26 18:04:57 +09:30
2007-06-30 00:03:40 +00:00
2016-09-26 18:04:57 +09:30
2007-06-30 00:03:40 +00:00
2016-09-26 18:04:57 +09:30
2016-09-26 18:04:57 +09:30
2016-09-26 18:04:57 +09:30
2016-09-26 18:04:57 +09:30
2016-09-26 18:04:57 +09:30
2008-10-10 20:55:36 +00:00
2008-10-10 20:55:36 +00:00
2008-10-10 20:55:36 +00:00
2008-10-10 20:55:36 +00:00
2015-04-23 09:49:19 +09:30
2014-03-05 19:57:39 +10:30
2014-03-05 19:57:39 +10:30
2015-04-23 09:49:19 +09:30
2014-03-05 19:57:39 +10:30
2013-10-30 13:44:10 +10:30
2009-09-21 11:51:02 +00:00
2012-11-23 03:28:13 +00:00
2006-10-24 13:29:37 +00:00
2010-07-06 09:29:47 +00:00
2018-01-17 18:51:04 +10:30
2005-04-19 05:44:55 +00:00
2015-08-27 23:21:21 +09:30
2005-05-20 21:57:12 +00:00
2017-08-30 20:43:31 +09:30
2015-04-23 09:49:19 +09:30
2017-08-30 20:43:31 +09:30
2018-01-17 18:51:04 +10:30
2018-01-17 18:51:04 +10:30
2018-01-17 18:51:04 +10:30
2018-01-17 18:51:04 +10:30
2017-01-24 12:15:54 +10:30
2018-01-17 18:51:04 +10:30
2018-01-17 18:51:04 +10:30
2015-04-23 09:49:19 +09:30
2018-01-17 18:51:04 +10:30
2009-09-21 11:51:02 +00:00
2009-09-21 11:51:02 +00:00
2011-03-23 15:25:06 +00:00
2011-03-23 15:25:06 +00:00
2017-07-14 22:51:01 +09:30
2017-07-14 22:51:01 +09:30
2012-11-23 03:28:13 +00:00
2011-03-23 15:25:06 +00:00
2017-07-14 22:51:01 +09:30
2017-07-14 22:51:01 +09:30
2012-11-23 03:28:13 +00:00
2011-03-23 15:25:06 +00:00
2017-07-14 22:51:01 +09:30
2017-07-14 22:51:01 +09:30
2011-03-23 15:25:06 +00:00
2012-11-23 03:28:13 +00:00
2017-07-14 22:51:01 +09:30
2011-03-23 15:25:06 +00:00
2018-01-17 18:51:04 +10:30
2017-07-14 22:51:01 +09:30
2017-11-07 17:01:16 +10:30
2018-01-17 18:51:04 +10:30
2015-04-23 09:49:19 +09:30
2017-11-07 17:01:16 +10:30
2015-04-23 09:49:19 +09:30
2018-01-17 18:51:04 +10:30
2015-04-23 09:49:19 +09:30
2017-11-07 17:01:16 +10:30
2015-01-28 18:30:54 +10:30
2015-04-23 09:49:19 +09:30
2015-04-23 09:49:19 +09:30
2015-04-23 09:49:19 +09:30
2015-04-23 09:49:19 +09:30
2011-09-30 05:11:04 +00:00
2015-04-23 09:49:19 +09:30
2017-06-21 22:45:15 +09:30
2017-06-21 22:45:15 +09:30
2017-06-21 22:45:15 +09:30
2017-06-21 22:45:15 +09:30
2017-06-21 22:45:15 +09:30
2017-06-21 22:45:15 +09:30
2017-06-21 22:45:15 +09:30
2015-01-28 18:30:54 +10:30
2015-01-28 18:30:54 +10:30
2017-11-07 17:01:16 +10:30
2017-11-07 17:01:16 +10:30
2017-11-07 17:01:16 +10:30
2012-05-14 19:45:30 +00:00
2012-05-14 19:45:30 +00:00
2016-08-31 14:05:44 +09:30
2012-05-14 19:45:30 +00:00
2012-05-14 19:45:30 +00:00
2012-05-14 19:45:30 +00:00
2012-05-14 19:45:30 +00:00
2012-05-14 19:45:30 +00:00
2012-05-14 19:45:30 +00:00
2012-05-14 19:45:30 +00:00
2012-05-14 19:45:30 +00:00
2012-05-14 19:45:30 +00:00
2012-05-14 19:45:30 +00:00
2012-05-14 19:45:30 +00:00
2014-03-14 15:01:53 +10:30
2006-03-02 08:50:04 +00:00
2007-05-15 12:22:34 +00:00
ld/
2006-03-03 09:32:01 +00:00
2006-03-02 15:16:27 +00:00
2006-03-02 08:50:04 +00:00
ld/
2006-03-03 09:32:01 +00:00
ld/
2006-03-03 09:32:01 +00:00
2014-12-04 17:37:58 +10:30
2014-12-04 17:37:58 +10:30