| 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; }; |