You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.6 KiB
116 lines
3.6 KiB
From 70cc96407302cf0fd4eee2b6a401253ed50fe4df Mon Sep 17 00:00:00 2001
|
|
From: Michael Orlitzky <michael@orlitzky.com>
|
|
Date: Sun, 20 Sep 2020 11:16:06 -0400
|
|
Subject: [PATCH 1/1] autotools: use system tomsfastmath if possible.
|
|
|
|
---
|
|
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 8e0e810f8..773787e49 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -104,6 +104,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])
|
|
@@ -376,6 +377,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 ae655cfec..240fa23f8 100644
|
|
--- a/libclamav/Makefile.am
|
|
+++ b/libclamav/Makefile.am
|
|
@@ -588,8 +588,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\
|
|
@@ -671,6 +673,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
|
|
|
|
.PHONY2: version.h.tmp
|
|
version.c: version.h
|
|
diff --git a/libclamav/bignum.h b/libclamav/bignum.h
|
|
index 8fdc956bb..56dfa957e 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 87423421d..6370221ff 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 000000000..2a821a14d
|
|
--- /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
|
|
--
|
|
2.26.2
|
|
|