summaryrefslogtreecommitdiff
path: root/package/opencv/opencv-uclibc-optional-long-double-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/opencv/opencv-uclibc-optional-long-double-support.patch')
-rw-r--r--package/opencv/opencv-uclibc-optional-long-double-support.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/package/opencv/opencv-uclibc-optional-long-double-support.patch b/package/opencv/opencv-uclibc-optional-long-double-support.patch
new file mode 100644
index 000000000..b319849fb
--- /dev/null
+++ b/package/opencv/opencv-uclibc-optional-long-double-support.patch
@@ -0,0 +1,40 @@
+Upstream: https://code.ros.org/trac/opencv/ticket/1515
+
+[PATCH] Fix compile issue in flann module on uClibc without long double support
+
+uClibc configured without UCLIBC_HAS_LONG_DOUBLE_MATH (because of user
+choice or simply that the arch doesn't provide long doubles) doesn't
+provide fabsl(), breaking the build in the flann module.
+
+Work around it by not providing the long double template specialization.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ modules/flann/include/opencv2/flann/dist.h | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+Index: opencv-2.3.1a/modules/flann/include/opencv2/flann/dist.h
+===================================================================
+--- opencv-2.3.1a.orig/modules/flann/include/opencv2/flann/dist.h
++++ opencv-2.3.1a/modules/flann/include/opencv2/flann/dist.h
+@@ -40,6 +40,7 @@
+ #else
+ #include <stdint.h>
+ #endif
++#include <features.h>
+
+ #include "defines.h"
+
+@@ -59,9 +60,11 @@
+ template<>
+ inline double abs<double>(double x) { return fabs(x); }
+
++/* uClibc configured without long double math doesn't provide fabsl */
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LONG_DOUBLE_MATH__))
+ template<>
+ inline long double abs<long double>(long double x) { return fabsl(x); }
+-
++#endif
+
+ template<typename T>
+ struct Accumulator { typedef T Type; };