This file is missing a .fpu directive and was relying on the compiler
driver passing through a -mfpu= command line option.  When the FPU is
auto, that will not be passed through correctly, so set something
suitable within the file itself.

libgcc:
         * config/arm/cmse_nonsecure_call.S: Explicitly set the FPU.
---
 libgcc/config/arm/cmse_nonsecure_call.S | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/libgcc/config/arm/cmse_nonsecure_call.S b/libgcc/config/arm/cmse_nonsecure_call.S
index 653ad14..9b7dbb4 100644
--- a/libgcc/config/arm/cmse_nonsecure_call.S
+++ b/libgcc/config/arm/cmse_nonsecure_call.S
@@ -24,6 +24,14 @@
    <http://www.gnu.org/licenses/>.  */
 
 .syntax unified
+#ifdef __ARM_PCS_VFP
+# if __ARM_FP & 0x8
+	.fpu fpv5-d16
+# else
+	.fpu fpv4-sp-d16
+# endif
+#endif
+
 .thumb
 .global __gnu_cmse_nonsecure_call
 __gnu_cmse_nonsecure_call:

Reply via email to