Fix compilation error on NetBSD
authorSergey Sharybin <sergey.vfx@gmail.com>
Thu, 9 Jan 2014 10:03:02 +0000 (16:03 +0600)
committerSergey Sharybin <sergey.vfx@gmail.com>
Thu, 9 Jan 2014 10:03:02 +0000 (16:03 +0600)
Original patch is by Jeorg Sonnenberger, thanks!

extern/libmv/ChangeLog
extern/libmv/libmv/numeric/numeric.h
extern/libmv/libmv/tracking/brute_region_tracker.cc

index 66688c347aa92c6e76f767d20adc98ab4dc99fc2..c34ea0661721d9d445084a666f0983487934f812 100644 (file)
@@ -1,3 +1,14 @@
+commit 0a69fadadc5aacbd339f839ac5bd12c3571278b1
+Author: Sergey Sharybin <sergey.vfx@gmail.com>
+Date:   Thu Jan 9 15:50:11 2014 +0600
+
+    Fix compilation error on NetBSD
+    
+    - NetBSD doesn't provide sincos(3) in libm, so don't try to use it
+    - Use posix_memalign on NetBSD
+    
+    Original patch is by Jeorg Sonnenberger to Blender patch tracker, thanks!
+
 commit b0df3e291e6c85f791658be04334efafc41989f5
 Author: Sergey Sharybin <sergey.vfx@gmail.com>
 Date:   Thu Jan 2 15:12:18 2014 +0600
@@ -674,13 +685,3 @@ Author: Sergey Sharybin <sergey.vfx@gmail.com>
 Date:   Thu Apr 4 02:59:58 2013 +0600
 
     Suppress strict compiler warnings in glags/glog libraries
-
-commit 307f3449c3dc47ed0082a22c88f9ab42114c2a0f
-Author: Sergey Sharybin <sergey.vfx@gmail.com>
-Date:   Thu Apr 4 01:20:18 2013 +0600
-
-    Lint cleanup, mostly white space and line width.
-    
-    Also moved own includes to the top of files.
-    
-    Should be no functional changes :)
index 81705c4b3706326f9409ba0a54ce0464b75b8abb..55d4c7d46510531b409cc9c730779188af18d2fe 100644 (file)
 #include <Eigen/QR>
 #include <Eigen/SVD>
 
-#if (defined(_WIN32) || defined(__APPLE__) || defined(__FreeBSD__)) && !defined(__MINGW64__)
-  static void sincos(double x, double *sinx, double *cosx) {
-    *sinx = sin(x);
-    *cosx = cos(x);
-  }
-#endif  // _WIN32 || __APPLE__
+#if !defined(__MINGW64__)
+#  if defined(_WIN32) || defined(__APPLE__) || \
+      defined(__FreeBSD__) || defined(__NetBSD__)
+static void sincos(double x, double *sinx, double *cosx) {
+  *sinx = sin(x);
+  *cosx = cos(x);
+}
+#  endif
+#endif  // !__MINGW64__
 
 #if (defined(WIN32) || defined(WIN64)) && !defined(__MINGW32__)
-  inline long lround(double d) {
-    return (long)(d>0 ? d+0.5 : ceil(d-0.5));
-  }
-#if _MSC_VER < 1800
-  inline int round(double d) {
-    return (d>0) ? int(d+0.5) : int(d-0.5);
-  }
-#endif
-  typedef unsigned int uint;
+inline long lround(double d) {
+  return (long)(d>0 ? d+0.5 : ceil(d-0.5));
+}
+#  if _MSC_VER < 1800
+inline int round(double d) {
+  return (d>0) ? int(d+0.5) : int(d-0.5);
+}
+#  endif  // _MSC_VER < 1800
+typedef unsigned int uint;
 #endif  // _WIN32
 
 namespace libmv {
index 01279a04347bb3697b74bb11a8da8746d9fc4c18..234aaa6ed00b645b37a289525654dddc9dc6cbb8 100644 (file)
@@ -24,7 +24,7 @@
 #include <emmintrin.h>
 #endif
 
-#if !defined(__APPLE__) && !defined(__FreeBSD__)
+#if !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__NetBSD__)
 // Needed for memalign on Linux and _aligned_alloc on Windows.
 #ifdef FREE_WINDOWS
 /* make sure _aligned_malloc is included */
@@ -60,7 +60,7 @@ void *aligned_malloc(int size, int alignment) {
   // they work natively with SSE types with no further work.
   CHECK_EQ(alignment, 16);
   return malloc(size);
-#elif __FreeBSD__
+#elif defined(__FreeBSD__) || defined(__NetBSD__)
   void *result;
 
   if (posix_memalign(&result, alignment, size)) {