diff options
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.patch | 42 |
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 + |