aboutsummaryrefslogtreecommitdiffstats
path: root/main/musl/0004-fix-FLT_ROUNDS-regression-in-C-applications.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/musl/0004-fix-FLT_ROUNDS-regression-in-C-applications.patch')
-rw-r--r--main/musl/0004-fix-FLT_ROUNDS-regression-in-C-applications.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/main/musl/0004-fix-FLT_ROUNDS-regression-in-C-applications.patch b/main/musl/0004-fix-FLT_ROUNDS-regression-in-C-applications.patch
new file mode 100644
index 0000000000..0410b076b9
--- /dev/null
+++ b/main/musl/0004-fix-FLT_ROUNDS-regression-in-C-applications.patch
@@ -0,0 +1,42 @@
+From 11d1e2e2ded07673411ba872c1e3d0096dc79439 Mon Sep 17 00:00:00 2001
+From: Rich Felker <dalias@aerifal.cx>
+Date: Mon, 23 Mar 2015 11:26:51 -0400
+Subject: [PATCH] fix FLT_ROUNDS regression in C++ applications
+
+commit 559de8f5f06da9022cbba70e22e14a710eb74513 redefined FLT_ROUNDS
+to use an external function that can report the actual current
+rounding mode, rather than always reporting round-to-nearest. however,
+float.h did not include 'extern "C"' wrapping for C++, so C++ programs
+using FLT_ROUNDS ended up with an unresolved reference to a
+name-mangled C++ function __flt_rounds.
+---
+ include/float.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/include/float.h b/include/float.h
+index c6429d3..713aadb 100644
+--- a/include/float.h
++++ b/include/float.h
+@@ -1,6 +1,10 @@
+ #ifndef _FLOAT_H
+ #define _FLOAT_H
+
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ int __flt_rounds(void);
+ #define FLT_ROUNDS (__flt_rounds())
+
+@@ -41,4 +45,8 @@ int __flt_rounds(void);
+
+ #include <bits/float.h>
+
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+--
+2.3.3
+