Package: clamav / 0.101.2+dfsg-1

add-support-for-system-tomsfastmath.patch Patch series | download
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
From f00b0d08179db47e34aeb5056116e8694a42a4b8 Mon Sep 17 00:00:00 2001
From: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Date: Wed, 11 Mar 2015 20:03:15 +0100
Subject: add support for system tomsfastmath

Patch-Name: add-support-for-system-tomsfastmath.patch
---
 configure.ac                           |  2 ++
 libclamav/Makefile.am                  | 10 ++++++++--
 libclamav/bignum.h                     |  6 +++++-
 libclamav/xdp.c                        |  2 +-
 m4/reorganization/libs/tomsfastmath.m4 | 12 ++++++++++++
 5 files changed, 28 insertions(+), 4 deletions(-)
 create mode 100644 m4/reorganization/libs/tomsfastmath.m4

diff --git a/configure.ac b/configure.ac
index 1a2431a..88ff4ff 100644
--- a/configure.ac
+++ b/configure.ac
@@ -96,6 +96,7 @@ m4_include([m4/reorganization/libs/libmspack.m4])
 if test "x$use_internal_mspack" = "xno"; then
     mspack_msg="External, $LIBMSPACK_CFLAGS $LIBMSPACK_LIBS"
 fi
+m4_include([m4/reorganization/libs/tomsfastmath.m4])
 
 AM_MAINTAINER_MODE
 m4_include([m4/reorganization/libs/libz.m4])
@@ -302,6 +303,7 @@ fi
 CL_MSG_STATUS([yara        ],[$enable_yara],[$enable_yara])
 CL_MSG_STATUS([fts         ],[yes],[$lfs_fts_msg])
 
+CL_MSG_STATUS([tomsfastmath],[yes],[$tomsfastmath_msg])
 
 # Yep, downgrading the compiler avoids the bug too:
 # 4.0.x, and 4.1.0 are the known buggy versions
diff --git a/libclamav/Makefile.am b/libclamav/Makefile.am
index 690d70b..fb58761 100644
--- a/libclamav/Makefile.am
+++ b/libclamav/Makefile.am
@@ -598,8 +598,10 @@ libclamav_la_SOURCES += yara_arena.c \
 	yara_clam.h
 endif
 
-libclamav_la_SOURCES += bignum.h\
-	bignum_fast.h\
+libclamav_la_SOURCES += bignum.h
+
+if !SYSTEM_TOMSFASTMATH
+libclamav_la_SOURCES += bignum_fast.h\
         tomsfastmath/addsub/fp_add.c\
         tomsfastmath/addsub/fp_add_d.c\
         tomsfastmath/addsub/fp_addmod.c\
@@ -681,6 +683,10 @@ libclamav_la_SOURCES += bignum.h\
         tomsfastmath/sqr/fp_sqr_comba_generic.c\
         tomsfastmath/sqr/fp_sqr_comba_small_set.c\
 	tomsfastmath/sqr/fp_sqrmod.c
+else
+libclamav_la_CFLAGS += $(TOMSFASTMATH_CFLAGS)
+libclamav_la_LIBADD += $(TOMSFASTMATH_LIBS)
+endif
 
 .PHONY: version.h.tmp
 version.c: version.h
diff --git a/libclamav/bignum.h b/libclamav/bignum.h
index 9acb17b..56967b1 100644
--- a/libclamav/bignum.h
+++ b/libclamav/bignum.h
@@ -1,9 +1,13 @@
 #ifndef BIGNUM_H_
 #define BIGNUM_H_
 
+#if HAVE_SYSTEM_TOMSFASTMATH
+#include <tfm.h>
+#else
 #define TFM_CHECK
-
 #include "bignum_fast.h"
+#endif
+
 typedef fp_int mp_int;
 #define mp_cmp fp_cmp
 #define mp_toradix_n(a,b,c,d) fp_toradix_n(a,b,c,d)
diff --git a/libclamav/xdp.c b/libclamav/xdp.c
index 8748b44..6e09ce4 100644
--- a/libclamav/xdp.c
+++ b/libclamav/xdp.c
@@ -52,7 +52,7 @@
 #include "scanners.h"
 #include "conv.h"
 #include "xdp.h"
-#include "bignum_fast.h"
+#include "bignum.h"
 #include "filetypes.h"
 
 static char *dump_xdp(cli_ctx *ctx, const char *start, size_t sz);
diff --git a/m4/reorganization/libs/tomsfastmath.m4 b/m4/reorganization/libs/tomsfastmath.m4
new file mode 100644
index 0000000..2a821a1
--- /dev/null
+++ b/m4/reorganization/libs/tomsfastmath.m4
@@ -0,0 +1,12 @@
+dnl Check for system tomsfastmath
+PKG_CHECK_MODULES([TOMSFASTMATH], [tomsfastmath], [have_system_tomsfastmath=yes], [have_system_tomsfastmath=no])
+
+AM_CONDITIONAL([SYSTEM_TOMSFASTMATH], [test "x$have_system_tomsfastmath" = "xyes"])
+
+if test "x$have_system_tomsfastmath" = "xyes"; then
+    AC_DEFINE([HAVE_SYSTEM_TOMSFASTMATH], [1], [link against system-wide tomsfastmath library])
+    tomsfastmath_msg="External, $TOMSFASTMATH_CFLAGS $TOMSFASTMATH_LIBS"
+else
+    AC_DEFINE([HAVE_SYSTEM_TOMSFASTMATH], [0], [don't link against system-wide tomsfastmath library])
+    tomsfastmath_msg="Internal"
+fi