Remove use of <fpu_control.h> in minisat
authorClifford Wolf <clifford@clifford.at>
Mon, 27 Mar 2017 12:32:43 +0000 (14:32 +0200)
committerClifford Wolf <clifford@clifford.at>
Mon, 27 Mar 2017 12:32:43 +0000 (14:32 +0200)
libs/minisat/00_PATCH_no_fpu_control.patch [new file with mode: 0644]
libs/minisat/00_UPDATE.sh
libs/minisat/System.cc
libs/minisat/System.h

diff --git a/libs/minisat/00_PATCH_no_fpu_control.patch b/libs/minisat/00_PATCH_no_fpu_control.patch
new file mode 100644 (file)
index 0000000..6c754b1
--- /dev/null
@@ -0,0 +1,43 @@
+--- System.cc
++++ System.cc
+@@ -97,17 +97,6 @@ double Minisat::memUsedPeak(bool) { return 0; }
+ #endif
+-void Minisat::setX86FPUPrecision()
+-{
+-#if defined(__linux__) && defined(_FPU_EXTENDED) && defined(_FPU_DOUBLE) && defined(_FPU_GETCW)
+-    // Only correct FPU precision on Linux architectures that needs and supports it:
+-    fpu_control_t oldcw, newcw;
+-    _FPU_GETCW(oldcw); newcw = (oldcw & ~_FPU_EXTENDED) | _FPU_DOUBLE; _FPU_SETCW(newcw);
+-    printf("WARNING: for repeatability, setting FPU to use double precision\n");
+-#endif
+-}
+-
+-
+ #if !defined(_MSC_VER) && !defined(__MINGW32__)
+ void Minisat::limitMemory(uint64_t max_mem_mb)
+ {
+--- System.h
++++ System.h
+@@ -21,10 +21,6 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA
+ #ifndef Minisat_System_h
+ #define Minisat_System_h
+-#if defined(__linux__)
+-#include <fpu_control.h>
+-#endif
+-
+ #include "IntTypes.h"
+ //-------------------------------------------------------------------------------------------------
+@@ -36,9 +32,6 @@ static inline double cpuTime(void); // CPU-time in seconds.
+ extern double memUsed();            // Memory in mega bytes (returns 0 for unsupported architectures).
+ extern double memUsedPeak(bool strictlyPeak = false); // Peak-memory in mega bytes (returns 0 for unsupported architectures).
+-extern void   setX86FPUPrecision(); // Make sure double's are represented with the same precision
+-                                    // in memory and registers.
+-
+ extern void   limitMemory(uint64_t max_mem_mb); // Set a limit on total memory usage. The exact
+                                                 // semantics varies depending on architecture.
index 96a34ec9350f852a3d9ee226ac9b856c4a3be595..eb278c3078ec39dc5c547762c5836b6b761e0edb 100644 (file)
@@ -14,4 +14,5 @@ sed -i -e '1 i #define __STDC_FORMAT_MACROS' *.cc
 
 patch -p0 < 00_PATCH_mkLit_default_arg.patch
 patch -p0 < 00_PATCH_remove_zlib.patch
+patch -p0 < 00_PATCH_no_fpu_control.patch
 
index febe3b40ff97835f47c744eaac28dd83f021bf7d..ceef4292bda2736b20d3b8c7f1d2f390ecfb7d72 100644 (file)
@@ -97,17 +97,6 @@ double Minisat::memUsedPeak(bool) { return 0; }
 #endif
 
 
-void Minisat::setX86FPUPrecision()
-{
-#if defined(__linux__) && defined(_FPU_EXTENDED) && defined(_FPU_DOUBLE) && defined(_FPU_GETCW)
-    // Only correct FPU precision on Linux architectures that needs and supports it:
-    fpu_control_t oldcw, newcw;
-    _FPU_GETCW(oldcw); newcw = (oldcw & ~_FPU_EXTENDED) | _FPU_DOUBLE; _FPU_SETCW(newcw);
-    printf("WARNING: for repeatability, setting FPU to use double precision\n");
-#endif
-}
-
-
 #if !defined(_MSC_VER) && !defined(__MINGW32__)
 void Minisat::limitMemory(uint64_t max_mem_mb)
 {
index ee92a6e08afb2f584c202d1b8155748784c80032..cd9d020c73677f33e337a4324f3f4ebb0ade1077 100644 (file)
@@ -21,10 +21,6 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA
 #ifndef Minisat_System_h
 #define Minisat_System_h
 
-#if defined(__linux__)
-#include <fpu_control.h>
-#endif
-
 #include "IntTypes.h"
 
 //-------------------------------------------------------------------------------------------------
@@ -36,9 +32,6 @@ static inline double cpuTime(void); // CPU-time in seconds.
 extern double memUsed();            // Memory in mega bytes (returns 0 for unsupported architectures).
 extern double memUsedPeak(bool strictlyPeak = false); // Peak-memory in mega bytes (returns 0 for unsupported architectures).
 
-extern void   setX86FPUPrecision(); // Make sure double's are represented with the same precision
-                                    // in memory and registers.
-
 extern void   limitMemory(uint64_t max_mem_mb); // Set a limit on total memory usage. The exact
                                                 // semantics varies depending on architecture.