From: Iain Sandoe Date: Fri, 1 Nov 2019 20:11:12 +0000 (+0000) Subject: [Darwin, PPC] Allow the user to override the use of hard float in kexts. X-Git-Tag: releases/gcc-7.5.0~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8cb850187df47bc81c0d2a9057eb7da91d0a638a;p=thirdparty%2Fgcc.git [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 Backport from mainline 2019-06-27 Iain Sandoe * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour user-specified float mode choice for kernel mode code. From-SVN: r277718 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index feea93ebc4f1..6e35c6c7f193 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2019-11-01 Iain Sandoe + + Backport from mainline + 2019-06-27 Iain Sandoe + + * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour + user-specified float mode choice for kernel mode code. + 2019-11-01 Iain Sandoe Backport from mainline diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index dae2600ca77e..93d7c7148624 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -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