diff mbox series

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

Message ID D9D26858-7279-4B17-8491-D79C74F9F502@sandoe.co.uk
State New
Headers show
Series [Darwin,PPC,committed] Allow the user to override the use of hard float in kexts. | expand

Commit Message

Iain Sandoe June 27, 2019, 7:16 p.m. UTC
The default for the kernel is soft-float, however a user writing a kernel
extension might want to make use of hard float.  This change makes
" -mkernel -mhard-float " work as expected.

tested on powerpc-darwin9
applied to mainline
thanks
Iain

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.
diff mbox series

Patch

diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index fbff6bd..5e80673 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -3430,7 +3430,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