]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Darwin, ppc, backport fix for codegen in kexts.
authorIain Sandoe <iain@sandoe.co.uk>
Sat, 3 Aug 2019 19:49:43 +0000 (19:49 +0000)
committerIain Sandoe <iains@gcc.gnu.org>
Sat, 3 Aug 2019 19:49:43 +0000 (19:49 +0000)
This honours the users choice of float ABI in kexts.

2019-08-03  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: r274045

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 6bf6118c514c93d6c40e987c41fb62f46bfde0b4..f930c8b7a617865325c14f07f1dbed042b617ae7 100644 (file)
@@ -1,3 +1,11 @@
+2019-08-03  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-08-03  Iain Sandoe  <iain@sandoe.co.uk>
 
        Backport from mainline
index 68322bb2216cdf6e6683ab2a3636cb46499e8336..0442b091781dd2e6c5ee6aa9b96334df597b8c42 100644 (file)
@@ -3651,7 +3651,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