[Darwin, PPC] Allow the user to override the use of hard float in kexts.

The default for the kernel is soft-float, however a user writing a kernel
extension might want to make use of hard float. This aligns GCC with the
system tools and makes ' -mkernel -mhard-float ' work as expected.

gcc/

2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>

	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
	user-specified float mode choice for kernel mode code.

From-SVN: r277718
This commit is contained in:
Iain Sandoe 2019-11-01 20:11:12 +00:00 committed by Iain Sandoe
parent bf5d24ca9f
commit 8cb850187d
2 changed files with 12 additions and 1 deletions

View File

@ -1,3 +1,11 @@
2019-11-01 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline
2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
* config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
user-specified float mode choice for kernel mode code.
2019-11-01 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline

View File

@ -3846,7 +3846,10 @@ darwin_rs6000_override_options (void)
if (flag_mkernel)
{
rs6000_default_long_calls = 1;
rs6000_isa_flags |= OPTION_MASK_SOFT_FLOAT;
/* Allow a kext author to do -mkernel -mhard-float. */
if (! (rs6000_isa_flags_explicit & OPTION_MASK_SOFT_FLOAT))
rs6000_isa_flags |= OPTION_MASK_SOFT_FLOAT;
}
/* Make -m64 imply -maltivec. Darwin's 64-bit ABI includes