summaryrefslogtreecommitdiff
path: root/graphics/vigra/patches/patch-include-vigra-mathutil.hxx
blob: 8d9cee59978237fde8e6c992f4428be98bbec6b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$NetBSD: patch-include-vigra-mathutil.hxx,v 1.4 2014/05/18 11:31:09 adam Exp $

* missing abs(signed long long) in old GCC.
* Fix ambiguous math functions for DragonFly.

--- include/vigra/mathutil.hxx.orig	2013-11-18 16:48:16.000000000 +0000
+++ include/vigra/mathutil.hxx
@@ -153,7 +153,7 @@ VIGRA_DEFINE_UNSIGNED_ABS(unsigned long 
 VIGRA_DEFINE_MISSING_ABS(signed char)
 VIGRA_DEFINE_MISSING_ABS(signed short)
 
-#if defined(_MSC_VER) && _MSC_VER < 1600
+#if defined(_MSC_VER) && _MSC_VER < 1600 || defined(__GNUC__) && (__GNUC__ < 4 || __GNUC__ == 4 && __GNUC_MINOR__ < 2)
 VIGRA_DEFINE_MISSING_ABS(signed long long)
 #endif
 
@@ -637,7 +637,12 @@ VIGRA_DEFINE_NORM(int)
 VIGRA_DEFINE_NORM(unsigned int)
 VIGRA_DEFINE_NORM(long)
 VIGRA_DEFINE_NORM(unsigned long)
+#if defined(__DragonFly__)
+inline NormTraits<long long>::SquaredNormType squaredNorm(long long t) { return sq((long int) t); }
+inline NormTraits<long long>::NormType norm(long long t) { return abs((long int) t); }
+#else
 VIGRA_DEFINE_NORM(long long)
+#endif
 VIGRA_DEFINE_NORM(unsigned long long)
 VIGRA_DEFINE_NORM(float)
 VIGRA_DEFINE_NORM(double)