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