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 --- 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 #endif +#include #include "defines.h" @@ -59,9 +60,11 @@ template<> inline double abs(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 x) { return fabsl(x); } - +#endif template struct Accumulator { typedef T Type; };