From: Tobias Geerinckx-Rice Date: Sat, 03 Oct 2020 22:10:20 +0200 Subject: gnu: clamav: Add support for system tomsfastmath. Adjusted from the original for clamav 0.103.0: From 756ff89526b5ffaa7a4f49b1bbecf2ecbd6f85f9 Mon Sep 17 00:00:00 2001 From: Andreas Cadhalpun 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 -Naur a/configure.ac b/configure.ac --- a/configure.ac 1970-01-01 01:00:01.000000000 +0100 +++ b/configure.ac 2020-10-03 22:04:00.535448352 +0200 @@ -94,6 +94,7 @@ m4_include([m4/reorganization/libs/json.m4]) m4_include([m4/reorganization/libs/pcre.m4]) m4_include([m4/reorganization/libs/libmspack.m4]) +m4_include([m4/reorganization/libs/tomsfastmath.m4]) if test "x$use_internal_mspack" = "xno"; then mspack_msg="External, $LIBMSPACK_CFLAGS $LIBMSPACK_LIBS" @@ -361,6 +362,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: diff -Naur a/libclamav/bignum.h b/libclamav/bignum.h --- a/libclamav/bignum.h 1970-01-01 01:00:01.000000000 +0100 +++ b/libclamav/bignum.h 2020-10-03 22:04:00.535448352 +0200 @@ -1,9 +1,13 @@ #ifndef BIGNUM_H_ #define BIGNUM_H_ +#if HAVE_SYSTEM_TOMSFASTMATH +#include +#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 -Naur a/libclamav/Makefile.am b/libclamav/Makefile.am --- a/libclamav/Makefile.am 1970-01-01 01:00:01.000000000 +0100 +++ b/libclamav/Makefile.am 2020-10-03 22:06:42.705447754 +0200 @@ -588,8 +588,10 @@ 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 @@ 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 -Naur a/libclamav/xdp.c b/libclamav/xdp.c --- a/libclamav/xdp.c 1970-01-01 01:00:01.000000000 +0100 +++ b/libclamav/xdp.c 2020-10-03 22:04:00.535448352 +0200 @@ -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 -Naur a/m4/reorganization/libs/tomsfastmath.m4 b/m4/reorganization/libs/tomsfastmath.m4 --- a/m4/reorganization/libs/tomsfastmath.m4 1970-01-01 01:00:00.000000000 +0100 +++ b/m4/reorganization/libs/tomsfastmath.m4 2020-10-03 22:04:00.535448352 +0200 @@ -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 compressions (plural). Adjust accordingly. (render-narinfo, render-narinfo/cached): Likewise. (bake-narinfo+nar): Change #:compression to #:compressions. [compressed-nar-size]: New procedure. Call 'compress-nar' for each item returned by 'actual-compressions'. Create a narinfo for each compression. (effective-compression): New procedure. (make-request-handler): Change #:compression to #:compressions. Use 'effective-compression' to determine the applicable compression. (guix-publish): Adjust handling of '--compression'. Print a message for each compression that is enabled. * tests/publish.scm ("/*.narinfo"): Adjust to new narinfo field ordering. ("/*.narinfo with properly encoded '+' sign"): Likewise. ("/*.narinfo with lzip + gzip"): New test. ("with cache, lzip + gzip"): New test. * doc/guix.texi (Invoking guix publish): Document it. Ludovic Courtès 2019-05-27publish: Add support for lzip....* guix/scripts/publish.scm (show-help, %options): Support '-C METHOD' and '-C METHOD:LEVEL'. (default-compression): New procedure. (bake-narinfo+nar): Add lzip. (nar-response-port): Likewise. (string->compression-type): New procedure. (make-request-handler): Generalize /nar/gzip handler to handle /nar/lzip as well. * tests/publish.scm ("/nar/lzip/*"): New test. ("/*.narinfo with lzip compression"): New test. * doc/guix.texi (Invoking guix publish): Document it. (Requirements): Mention lzlib. Ludovic Courtès 2019-05-26publish: Maintain a hash-part-to-store-item mapping in cache....Fixes <https://bugs.gnu.org/33897>. * guix/scripts/publish.scm (hash-part-mapping-cache-file) (hash-part->path*): New procedures. * guix/scripts/publish.scm (render-narinfo/cached)[delete-entry]: Delete the 'hash-part-mapping-cache-file'. Use 'hash-part->path*' instead of 'hash-part->path'. * tests/publish.scm ("with cache, vanishing item"): New test. Ludovic Courtès