# ### ########################################################################### # ### Definitions taken from CMakeLists.txt for tomsfastmath in ClamAV # ### https://github.com/Cisco-Talos/clamav/blob/main/libclamav/CMakeLists.txt # ### ########################################################################### # Enable overflow checks in TomsFastMath's fp_exptmod() function. add_definitions(-DTFM_CHECK) # Just enable ASM in in TomsFastMath's on x86-64 where we know it works. # on i686 we run out of registers with -fPIC, and on ia64 we miscompile. if(NOT CMAKE_COMPILER_IS_GNUCC OR NOT (CMAKE_SIZEOF_VOID_P EQUAL 8)) add_definitions(-DTFM_NO_ASM) endif() # ### ########################################################################### # ### SOURCES and HEADERS # ### ########################################################################### # to generate the source list cd to extern/tomsfastmath and execute: # `find -type f -name *.c | grep -v generators |sort | cut -c 3- | awk '{ print "\"../src/"$0"\""}' > sources.txt` # then copy/paste here as required. set ( TFM_SOURCE "../src/addsub/fp_add.c" "../src/addsub/fp_add_d.c" "../src/addsub/fp_addmod.c" "../src/addsub/fp_cmp.c" "../src/addsub/fp_cmp_d.c" "../src/addsub/fp_cmp_mag.c" "../src/addsub/fp_sub.c" "../src/addsub/fp_sub_d.c" "../src/addsub/fp_submod.c" "../src/addsub/s_fp_add.c" "../src/addsub/s_fp_sub.c" "../src/bin/fp_radix_size.c" "../src/bin/fp_read_radix.c" "../src/bin/fp_read_signed_bin.c" "../src/bin/fp_read_unsigned_bin.c" "../src/bin/fp_reverse.c" "../src/bin/fp_signed_bin_size.c" "../src/bin/fp_s_rmap.c" "../src/bin/fp_toradix.c" "../src/bin/fp_toradix_n.c" "../src/bin/fp_to_signed_bin.c" "../src/bin/fp_to_unsigned_bin.c" "../src/bin/fp_unsigned_bin_size.c" "../src/bit/fp_cnt_lsb.c" "../src/bit/fp_count_bits.c" "../src/bit/fp_div_2.c" "../src/bit/fp_div_2d.c" "../src/bit/fp_lshd.c" "../src/bit/fp_mod_2d.c" "../src/bit/fp_rshd.c" "../src/divide/fp_div.c" "../src/divide/fp_div_d.c" "../src/divide/fp_mod.c" "../src/divide/fp_mod_d.c" "../src/exptmod/fp_2expt.c" "../src/exptmod/fp_exptmod.c" "../src/misc/fp_ident.c" "../src/misc/fp_rand.c" "../src/misc/fp_set.c" "../src/mont/fp_montgomery_calc_normalization.c" "../src/mont/fp_montgomery_reduce.c" "../src/mont/fp_montgomery_setup.c" "../src/mul/fp_mul_2.c" "../src/mul/fp_mul_2d.c" "../src/mul/fp_mul.c" "../src/mul/fp_mul_comba_12.c" "../src/mul/fp_mul_comba_17.c" "../src/mul/fp_mul_comba_20.c" "../src/mul/fp_mul_comba_24.c" "../src/mul/fp_mul_comba_28.c" "../src/mul/fp_mul_comba_32.c" "../src/mul/fp_mul_comba_3.c" "../src/mul/fp_mul_comba_48.c" "../src/mul/fp_mul_comba_4.c" "../src/mul/fp_mul_comba_64.c" "../src/mul/fp_mul_comba_6.c" "../src/mul/fp_mul_comba_7.c" "../src/mul/fp_mul_comba_8.c" "../src/mul/fp_mul_comba_9.c" "../src/mul/fp_mul_comba.c" "../src/mul/fp_mul_comba_small_set.c" "../src/mul/fp_mul_d.c" "../src/mul/fp_mulmod.c" "../src/numtheory/fp_gcd.c" "../src/numtheory/fp_invmod.c" "../src/numtheory/fp_isprime.c" "../src/numtheory/fp_isprime_ex.c" "../src/numtheory/fp_lcm.c" "../src/numtheory/fp_prime_miller_rabin.c" "../src/numtheory/fp_prime_random_ex.c" "../src/sqr/fp_sqr.c" "../src/sqr/fp_sqr_comba_12.c" "../src/sqr/fp_sqr_comba_17.c" "../src/sqr/fp_sqr_comba_20.c" "../src/sqr/fp_sqr_comba_24.c" "../src/sqr/fp_sqr_comba_28.c" "../src/sqr/fp_sqr_comba_32.c" "../src/sqr/fp_sqr_comba_3.c" "../src/sqr/fp_sqr_comba_48.c" "../src/sqr/fp_sqr_comba_4.c" "../src/sqr/fp_sqr_comba_64.c" "../src/sqr/fp_sqr_comba_6.c" "../src/sqr/fp_sqr_comba_7.c" "../src/sqr/fp_sqr_comba_8.c" "../src/sqr/fp_sqr_comba_9.c" "../src/sqr/fp_sqr_comba.c" "../src/sqr/fp_sqr_comba_generic.c" "../src/sqr/fp_sqr_comba_small_set.c" "../src/sqr/fp_sqrmod.c" ) set ( TFM_HEADERS "../src/headers/tfm.h" # "tfm_private.h" )