diff --git a/extern/libmv/ChangeLog b/extern/libmv/ChangeLog index 66688c347aa..c34ea066172 100644 --- a/extern/libmv/ChangeLog +++ b/extern/libmv/ChangeLog @@ -1,3 +1,14 @@ +commit 0a69fadadc5aacbd339f839ac5bd12c3571278b1 +Author: Sergey Sharybin +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 Date: Thu Jan 2 15:12:18 2014 +0600 @@ -674,13 +685,3 @@ Author: Sergey Sharybin Date: Thu Apr 4 02:59:58 2013 +0600 Suppress strict compiler warnings in glags/glog libraries - -commit 307f3449c3dc47ed0082a22c88f9ab42114c2a0f -Author: Sergey Sharybin -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 :) diff --git a/extern/libmv/libmv/numeric/numeric.h b/extern/libmv/libmv/numeric/numeric.h index 81705c4b370..55d4c7d4651 100644 --- a/extern/libmv/libmv/numeric/numeric.h +++ b/extern/libmv/libmv/numeric/numeric.h @@ -33,23 +33,26 @@ #include #include -#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 { diff --git a/extern/libmv/libmv/tracking/brute_region_tracker.cc b/extern/libmv/libmv/tracking/brute_region_tracker.cc index 01279a04347..234aaa6ed00 100644 --- a/extern/libmv/libmv/tracking/brute_region_tracker.cc +++ b/extern/libmv/libmv/tracking/brute_region_tracker.cc @@ -24,7 +24,7 @@ #include #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)) {