Skip to content

Instantly share code, notes, and snippets.

@isle2983
Created March 15, 2017 00:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save isle2983/4883cad4d80952d64aba6362ab9f3322 to your computer and use it in GitHub Desktop.
Save isle2983/4883cad4d80952d64aba6362ab9f3322 to your computer and use it in GitHub Desktop.
Performance trials of secp256k1 with master branch compared with PR branch. glibc is varied. VMs vs native machine.
9d560f992db26612ce2630b194aef5f44d63a530
#!/bin/sh
git rev-parse HEAD
echo ""
cat secptests.sh
echo ""
cat /proc/cpuinfo |grep "model name" |uniq -c
echo ""
make clean
echo ""
./configure --enable-benchmark
echo ""
make -j6
echo ""
./tests
echo ""
./exhaustive_tests
echo ""
./bench_internal
echo ""
./bench_sign
echo ""
./bench_verify
echo ""
make clean
echo ""
./configure --enable-benchmark --enable-endomorphism
echo ""
make -j6
echo ""
./tests
echo ""
./exhaustive_tests
echo ""
./bench_internal
echo ""
./bench_sign
echo ""
./bench_verify
echo ""
12 model name : Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz
test -z "gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java" || rm -f gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java
test -z "libsecp256k1.la" || rm -f libsecp256k1.la
rm -f ./so_locations
rm -rf .libs _libs
rm -rf src/.libs src/_libs
rm -rf src/asm/.libs src/asm/_libs
rm -rf src/java/.libs src/java/_libs
test -z "" || rm -f
rm -f bench_verify bench_sign bench_internal tests exhaustive_tests
rm -f *.o
rm -f src/*.o
rm -f src/*.lo
rm -f src/asm/*.o
rm -f src/asm/*.lo
rm -f src/java/*.o
rm -f src/java/*.lo
test -z "tests.log exhaustive_tests.log" || rm -f tests.log exhaustive_tests.log
test -z "tests.trs exhaustive_tests.trs" || rm -f tests.trs exhaustive_tests.trs
test -z "test-suite.log" || rm -f test-suite.log
rm -f *.lo
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to print strings... printf
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
checking for CRYPTO... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: no
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: no
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: executing depfiles commands
config.status: executing libtool commands
gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
CC src/bench_verify.o
CC src/bench_sign.o
CC src/exhaustive_tests-tests_exhaustive.o
CCLD exhaustive_tests
gcc gen_context.o -o gen_context
./gen_context
CC src/libsecp256k1_la-secp256k1.lo
CC src/bench_internal-bench_internal.o
CC src/tests-tests.o
CCLD bench_internal
CCLD tests
CCLD libsecp256k1.la
CCLD bench_verify
CCLD bench_sign
test count = 64
random seed = 6d4680de33b0b973638805e0eb79b299
random run = 31ff3ef65d6de75bcf29a7f6aaa5ad4e
no problems found
scalar_add: min 0.0116us / avg 0.0117us / max 0.0120us
scalar_negate: min 0.00448us / avg 0.00453us / max 0.00460us
scalar_sqr: min 0.0442us / avg 0.0444us / max 0.0448us
scalar_mul: min 0.0457us / avg 0.0461us / max 0.0464us
scalar_inverse: min 13.4us / avg 13.5us / max 14.4us
scalar_inverse_var: min 13.4us / avg 13.5us / max 14.3us
field_normalize: min 0.0112us / avg 0.0113us / max 0.0114us
field_normalize_weak: min 0.00477us / avg 0.00480us / max 0.00484us
field_sqr: min 0.0207us / avg 0.0209us / max 0.0212us
field_mul: min 0.0256us / avg 0.0259us / max 0.0266us
field_inverse: min 5.76us / avg 5.80us / max 5.91us
field_inverse_var: min 5.76us / avg 5.80us / max 5.94us
field_sqrt: min 5.69us / avg 5.70us / max 5.77us
group_double_var: min 0.170us / avg 0.171us / max 0.173us
group_add_var: min 0.403us / avg 0.406us / max 0.415us
group_add_affine: min 0.338us / avg 0.340us / max 0.346us
group_add_affine_var: min 0.283us / avg 0.287us / max 0.295us
group_jacobi_var: min 5.71us / avg 5.75us / max 5.87us
wnaf_const: min 0.193us / avg 0.196us / max 0.200us
ecmult_wnaf: min 0.549us / avg 0.555us / max 0.564us
hash_sha256: min 0.364us / avg 0.380us / max 0.400us
hash_hmac_sha256: min 1.50us / avg 1.51us / max 1.52us
hash_rfc6979_hmac_sha256: min 8.27us / avg 8.33us / max 8.44us
context_verify: min 7747us / avg 7828us / max 7951us
context_sign: min 39.9us / avg 40.1us / max 40.7us
ecdsa_sign: min 55.3us / avg 55.4us / max 55.5us
ecdsa_verify: min 85.6us / avg 85.9us / max 86.3us
ecdsa_verify_openssl: min 476us / avg 484us / max 490us
test -z "gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java" || rm -f gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java
test -z "libsecp256k1.la" || rm -f libsecp256k1.la
rm -f ./so_locations
rm -rf .libs _libs
rm -rf src/.libs src/_libs
rm -rf src/asm/.libs src/asm/_libs
rm -rf src/java/.libs src/java/_libs
test -z "" || rm -f
rm -f bench_verify bench_sign bench_internal tests exhaustive_tests
rm -f *.o
rm -f src/*.o
rm -f src/*.lo
rm -f src/asm/*.o
rm -f src/asm/*.lo
rm -f src/java/*.o
rm -f src/java/*.lo
test -z "tests.log exhaustive_tests.log" || rm -f tests.log exhaustive_tests.log
test -z "tests.trs exhaustive_tests.trs" || rm -f tests.trs exhaustive_tests.trs
test -z "test-suite.log" || rm -f test-suite.log
rm -f *.lo
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to print strings... printf
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
checking for CRYPTO... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: no
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: yes
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: executing depfiles commands
config.status: executing libtool commands
gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
CC src/bench_verify.o
CC src/bench_sign.o
CC src/exhaustive_tests-tests_exhaustive.o
CCLD exhaustive_tests
gcc gen_context.o -o gen_context
./gen_context
CC src/libsecp256k1_la-secp256k1.lo
CC src/bench_internal-bench_internal.o
CC src/tests-tests.o
CCLD bench_internal
CCLD tests
CCLD libsecp256k1.la
CCLD bench_verify
CCLD bench_sign
test count = 64
random seed = 9f514535c56287ee7fed17d6b53dd279
random run = a625a33c3a0aa75f9695e368a3f57cd4
no problems found
scalar_add: min 0.0116us / avg 0.0117us / max 0.0119us
scalar_negate: min 0.00450us / avg 0.00460us / max 0.00500us
scalar_sqr: min 0.0440us / avg 0.0444us / max 0.0448us
scalar_mul: min 0.0457us / avg 0.0461us / max 0.0463us
scalar_split: min 0.211us / avg 0.214us / max 0.220us
scalar_inverse: min 13.3us / avg 13.4us / max 13.4us
scalar_inverse_var: min 13.3us / avg 13.4us / max 13.5us
field_normalize: min 0.0112us / avg 0.0114us / max 0.0120us
field_normalize_weak: min 0.00476us / avg 0.00490us / max 0.00517us
field_sqr: min 0.0206us / avg 0.0213us / max 0.0223us
field_mul: min 0.0254us / avg 0.0258us / max 0.0260us
field_inverse: min 5.71us / avg 5.77us / max 5.86us
field_inverse_var: min 5.73us / avg 5.85us / max 6.06us
field_sqrt: min 5.66us / avg 5.75us / max 6.02us
group_double_var: min 0.171us / avg 0.176us / max 0.183us
group_add_var: min 0.398us / avg 0.408us / max 0.422us
group_add_affine: min 0.341us / avg 0.350us / max 0.358us
group_add_affine_var: min 0.283us / avg 0.287us / max 0.294us
group_jacobi_var: min 5.68us / avg 5.78us / max 6.04us
wnaf_const: min 0.117us / avg 0.121us / max 0.126us
ecmult_wnaf: min 0.542us / avg 0.560us / max 0.613us
hash_sha256: min 0.379us / avg 0.383us / max 0.391us
hash_hmac_sha256: min 1.54us / avg 1.58us / max 1.61us
hash_rfc6979_hmac_sha256: min 8.48us / avg 8.69us / max 9.42us
context_verify: min 7839us / avg 8149us / max 8634us
context_sign: min 39.8us / avg 40.9us / max 41.9us
ecdsa_sign: min 55.4us / avg 56.5us / max 57.8us
ecdsa_verify: min 65.4us / avg 66.6us / max 70.0us
ecdsa_verify_openssl: min 476us / avg 481us / max 491us
a16034039f07572a64bc9704c23abb1fff9d70ad
#!/bin/sh
git rev-parse HEAD
echo ""
cat secptests.sh
echo ""
cat /proc/cpuinfo |grep "model name" |uniq -c
echo ""
make clean
echo ""
./configure --enable-benchmark
echo ""
make -j6
echo ""
./tests
echo ""
./exhaustive_tests
echo ""
./bench_internal
echo ""
./bench_sign
echo ""
./bench_verify
echo ""
make clean
echo ""
./configure --enable-benchmark --enable-endomorphism
echo ""
make -j6
echo ""
./tests
echo ""
./exhaustive_tests
echo ""
./bench_internal
echo ""
./bench_sign
echo ""
./bench_verify
echo ""
12 model name : Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz
/bin/bash ./config.status --recheck
running CONFIG_SHELL=/bin/bash /bin/bash ./configure --enable-benchmark --no-create --no-recursion
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking whether make supports nested variables... yes
checking dependency style of gcc... gcc3
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for explicit_bzero... no
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
checking for CRYPTO... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: no
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: no
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
/bin/bash ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: src/libsecp256k1-config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
test -z "gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java" || rm -f gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java
test -z "libsecp256k1.la" || rm -f libsecp256k1.la
rm -f ./so_locations
rm -rf .libs _libs
rm -rf src/.libs src/_libs
rm -rf src/asm/.libs src/asm/_libs
rm -rf src/java/.libs src/java/_libs
test -z "" || rm -f
rm -f bench_verify bench_sign bench_internal tests exhaustive_tests
rm -f *.o
rm -f src/*.o
rm -f src/*.lo
rm -f src/asm/*.o
rm -f src/asm/*.lo
rm -f src/java/*.o
rm -f src/java/*.lo
test -z "tests.log exhaustive_tests.log" || rm -f tests.log exhaustive_tests.log
test -z "tests.trs exhaustive_tests.trs" || rm -f tests.trs exhaustive_tests.trs
test -z "test-suite.log" || rm -f test-suite.log
rm -f *.lo
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking whether make supports nested variables... yes
checking dependency style of gcc... gcc3
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for explicit_bzero... no
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
checking for CRYPTO... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: no
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: no
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: src/libsecp256k1-config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
CC src/bench_verify.o
CC src/bench_sign.o
CC src/exhaustive_tests-tests_exhaustive.o
CCLD exhaustive_tests
gcc gen_context.o -o gen_context
./gen_context
CC src/libsecp256k1_la-secp256k1.lo
CC src/bench_internal-bench_internal.o
CC src/tests-tests.o
CCLD bench_internal
CCLD tests
CCLD libsecp256k1.la
CCLD bench_verify
CCLD bench_sign
test count = 64
random seed = da5629424c2a62bba04822591e3e7e3e
random run = 47864a90ae7b6a3ac4348a45e49ef728
no problems found
scalar_add: min 0.0117us / avg 0.0117us / max 0.0118us
scalar_negate: min 0.00447us / avg 0.00452us / max 0.00456us
scalar_sqr: min 0.0443us / avg 0.0445us / max 0.0448us
scalar_mul: min 0.0457us / avg 0.0461us / max 0.0464us
scalar_inverse: min 13.4us / avg 13.4us / max 13.8us
scalar_inverse_var: min 13.4us / avg 13.6us / max 14.4us
field_normalize: min 0.0112us / avg 0.0113us / max 0.0115us
field_normalize_weak: min 0.00476us / avg 0.00481us / max 0.00487us
field_sqr: min 0.0208us / avg 0.0209us / max 0.0210us
field_mul: min 0.0256us / avg 0.0258us / max 0.0261us
field_inverse: min 5.74us / avg 5.82us / max 5.96us
field_inverse_var: min 5.77us / avg 5.83us / max 5.95us
field_sqrt: min 5.68us / avg 5.87us / max 6.15us
group_double_var: min 0.171us / avg 0.173us / max 0.177us
group_add_var: min 0.399us / avg 0.404us / max 0.422us
group_add_affine: min 0.338us / avg 0.340us / max 0.346us
group_add_affine_var: min 0.283us / avg 0.287us / max 0.298us
group_jacobi_var: min 5.73us / avg 5.80us / max 5.92us
wnaf_const: min 0.194us / avg 0.197us / max 0.200us
ecmult_wnaf: min 0.571us / avg 0.575us / max 0.585us
hash_sha256: min 0.368us / avg 0.370us / max 0.374us
hash_hmac_sha256: min 1.52us / avg 1.57us / max 1.60us
hash_rfc6979_hmac_sha256: min 8.34us / avg 8.41us / max 8.48us
context_verify: min 7804us / avg 8097us / max 8468us
context_sign: min 42.5us / avg 43.5us / max 44.2us
ecdsa_sign: min 55.9us / avg 57.2us / max 58.7us
ecdsa_verify: min 85.9us / avg 86.5us / max 87.6us
ecdsa_verify_openssl: min 480us / avg 481us / max 483us
test -z "gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java" || rm -f gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java
test -z "libsecp256k1.la" || rm -f libsecp256k1.la
rm -f ./so_locations
rm -rf .libs _libs
rm -rf src/.libs src/_libs
rm -rf src/asm/.libs src/asm/_libs
rm -rf src/java/.libs src/java/_libs
test -z "" || rm -f
rm -f bench_verify bench_sign bench_internal tests exhaustive_tests
rm -f *.o
rm -f src/*.o
rm -f src/*.lo
rm -f src/asm/*.o
rm -f src/asm/*.lo
rm -f src/java/*.o
rm -f src/java/*.lo
test -z "tests.log exhaustive_tests.log" || rm -f tests.log exhaustive_tests.log
test -z "tests.trs exhaustive_tests.trs" || rm -f tests.trs exhaustive_tests.trs
test -z "test-suite.log" || rm -f test-suite.log
rm -f *.lo
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking whether make supports nested variables... yes
checking dependency style of gcc... gcc3
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for explicit_bzero... no
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
checking for CRYPTO... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: no
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: yes
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: executing depfiles commands
config.status: executing libtool commands
gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
CC src/bench_verify.o
CC src/bench_sign.o
CC src/exhaustive_tests-tests_exhaustive.o
CCLD exhaustive_tests
gcc gen_context.o -o gen_context
./gen_context
CC src/libsecp256k1_la-secp256k1.lo
CC src/bench_internal-bench_internal.o
CC src/tests-tests.o
CCLD bench_internal
CCLD tests
CCLD libsecp256k1.la
CCLD bench_verify
CCLD bench_sign
test count = 64
random seed = e88f44275bb323800772e417ecf2d127
random run = 0d75bb1402c7e4f4f658df1f732fb3c1
no problems found
scalar_add: min 0.0117us / avg 0.0118us / max 0.0121us
scalar_negate: min 0.00451us / avg 0.00462us / max 0.00490us
scalar_sqr: min 0.0440us / avg 0.0450us / max 0.0474us
scalar_mul: min 0.0458us / avg 0.0462us / max 0.0472us
scalar_split: min 0.213us / avg 0.216us / max 0.220us
scalar_inverse: min 13.3us / avg 13.4us / max 13.6us
scalar_inverse_var: min 13.3us / avg 13.4us / max 13.5us
field_normalize: min 0.0112us / avg 0.0113us / max 0.0115us
field_normalize_weak: min 0.00477us / avg 0.00490us / max 0.00514us
field_sqr: min 0.0206us / avg 0.0211us / max 0.0217us
field_mul: min 0.0261us / avg 0.0275us / max 0.0303us
field_inverse: min 5.71us / avg 5.75us / max 5.83us
field_inverse_var: min 5.71us / avg 5.77us / max 5.87us
field_sqrt: min 5.65us / avg 5.68us / max 5.75us
group_double_var: min 0.170us / avg 0.170us / max 0.172us
group_add_var: min 0.404us / avg 0.408us / max 0.417us
group_add_affine: min 0.343us / avg 0.347us / max 0.354us
group_add_affine_var: min 0.287us / avg 0.290us / max 0.301us
group_jacobi_var: min 5.77us / avg 5.88us / max 6.24us
wnaf_const: min 0.115us / avg 0.119us / max 0.128us
ecmult_wnaf: min 0.561us / avg 0.568us / max 0.580us
hash_sha256: min 0.369us / avg 0.377us / max 0.388us
hash_hmac_sha256: min 1.54us / avg 1.55us / max 1.56us
hash_rfc6979_hmac_sha256: min 8.33us / avg 8.50us / max 8.74us
context_verify: min 7821us / avg 7927us / max 8066us
context_sign: min 40.1us / avg 40.7us / max 42.0us
ecdsa_sign: min 55.5us / avg 56.0us / max 56.6us
ecdsa_verify: min 65.4us / avg 65.7us / max 66.1us
ecdsa_verify_openssl: min 478us / avg 484us / max 489us
9d560f992db26612ce2630b194aef5f44d63a530
#!/bin/sh
git rev-parse HEAD
echo ""
cat secptests.sh
echo ""
cat /proc/cpuinfo |grep "model name" |uniq -c
echo ""
make clean
echo ""
./configure --enable-benchmark
echo ""
make -j6
echo ""
./tests
echo ""
./exhaustive_tests
echo ""
./bench_internal
echo ""
./bench_sign
echo ""
./bench_verify
echo ""
make clean
echo ""
./configure --enable-benchmark --enable-endomorphism
echo ""
make -j6
echo ""
./tests
echo ""
./exhaustive_tests
echo ""
./bench_internal
echo ""
./bench_sign
echo ""
./bench_verify
echo ""
4 model name : Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/isle/secp256k1/build-aux/missing aclocal-1.14 -I build-aux/m4
cd . && /bin/bash /home/isle/secp256k1/build-aux/missing automake-1.14 --foreign
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/isle/secp256k1/build-aux/missing autoconf
/bin/bash ./config.status --recheck
running CONFIG_SHELL=/bin/bash /bin/bash ./configure --enable-benchmark --enable-endomorphism --no-create --no-recursion
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to print strings... printf
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
checking openssl/crypto.h usability... yes
checking openssl/crypto.h presence... yes
checking for openssl/crypto.h... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: no
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: yes
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
/bin/bash ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: src/libsecp256k1-config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
test -z "gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java" || rm -f gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java
test -z "libsecp256k1.la" || rm -f libsecp256k1.la
rm -f ./so_locations
rm -rf .libs _libs
rm -rf src/.libs src/_libs
rm -rf src/asm/.libs src/asm/_libs
rm -rf src/java/.libs src/java/_libs
test -z "" || rm -f
rm -f bench_verify bench_sign bench_internal tests exhaustive_tests
rm -f *.o
rm -f src/*.o
rm -f src/*.lo
rm -f src/asm/*.o
rm -f src/asm/*.lo
rm -f src/java/*.o
rm -f src/java/*.lo
test -z "tests.log exhaustive_tests.log" || rm -f tests.log exhaustive_tests.log
test -z "tests.trs exhaustive_tests.trs" || rm -f tests.trs exhaustive_tests.trs
test -z "test-suite.log" || rm -f test-suite.log
rm -f *.lo
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to print strings... printf
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
checking openssl/crypto.h usability... yes
checking openssl/crypto.h presence... yes
checking for openssl/crypto.h... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: no
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: no
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: executing depfiles commands
config.status: executing libtool commands
(CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/isle/secp256k1/build-aux/missing autoheader)
gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
rm -f src/stamp-h1
touch src/libsecp256k1-config.h.in
cd . && /bin/bash ./config.status src/libsecp256k1-config.h
config.status: creating src/libsecp256k1-config.h
CC src/bench_sign.o
CC src/bench_verify.o
CC src/exhaustive_tests-tests_exhaustive.o
gcc gen_context.o -o gen_context
./gen_context
CC src/libsecp256k1_la-secp256k1.lo
CC src/tests-tests.o
CC src/bench_internal-bench_internal.o
CCLD exhaustive_tests
CCLD bench_internal
CCLD tests
CCLD libsecp256k1.la
CCLD bench_verify
CCLD bench_sign
test count = 64
random seed = d53329e951ac0959ae42dc333e783296
random run = 6079d73d58d6d475d308485a6abd7c2d
no problems found
scalar_add: min 0.0117us / avg 0.0120us / max 0.0123us
scalar_negate: min 0.00430us / avg 0.00460us / max 0.00490us
scalar_sqr: min 0.0425us / avg 0.0467us / max 0.0526us
scalar_mul: min 0.0447us / avg 0.0479us / max 0.0507us
scalar_inverse: min 13.3us / avg 14.0us / max 14.9us
scalar_inverse_var: min 13.7us / avg 14.0us / max 14.3us
field_normalize: min 0.0115us / avg 0.0118us / max 0.0121us
field_normalize_weak: min 0.00468us / avg 0.00504us / max 0.00534us
field_sqr: min 0.0197us / avg 0.0215us / max 0.0238us
field_mul: min 0.0234us / avg 0.0268us / max 0.0292us
field_inverse: min 5.86us / avg 5.90us / max 6.02us
field_inverse_var: min 5.85us / avg 5.97us / max 6.12us
field_sqrt: min 5.81us / avg 5.92us / max 6.07us
group_double_var: min 0.172us / avg 0.177us / max 0.182us
group_add_var: min 0.401us / avg 0.417us / max 0.456us
group_add_affine: min 0.341us / avg 0.349us / max 0.358us
group_add_affine_var: min 0.287us / avg 0.291us / max 0.302us
group_jacobi_var: min 5.78us / avg 5.84us / max 5.93us
wnaf_const: min 0.179us / avg 0.196us / max 0.212us
ecmult_wnaf: min 0.554us / avg 0.569us / max 0.592us
hash_sha256: min 0.338us / avg 0.373us / max 0.415us
hash_hmac_sha256: min 1.52us / avg 1.56us / max 1.63us
hash_rfc6979_hmac_sha256: min 8.43us / avg 8.57us / max 8.95us
context_verify: min 8039us / avg 8201us / max 8451us
context_sign: min 37.6us / avg 41.8us / max 47.2us
ecdsa_sign: min 55.9us / avg 56.4us / max 56.7us
ecdsa_verify: min 86.2us / avg 86.8us / max 87.7us
ecdsa_verify_openssl: min 487us / avg 488us / max 491us
test -z "gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java" || rm -f gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java
test -z "libsecp256k1.la" || rm -f libsecp256k1.la
rm -f ./so_locations
rm -rf .libs _libs
rm -rf src/.libs src/_libs
rm -rf src/asm/.libs src/asm/_libs
rm -rf src/java/.libs src/java/_libs
test -z "" || rm -f
rm -f bench_verify bench_sign bench_internal tests exhaustive_tests
rm -f *.o
rm -f src/*.o
rm -f src/*.lo
rm -f src/asm/*.o
rm -f src/asm/*.lo
rm -f src/java/*.o
rm -f src/java/*.lo
test -z "tests.log exhaustive_tests.log" || rm -f tests.log exhaustive_tests.log
test -z "tests.trs exhaustive_tests.trs" || rm -f tests.trs exhaustive_tests.trs
test -z "test-suite.log" || rm -f test-suite.log
rm -f *.lo
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to print strings... printf
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
checking openssl/crypto.h usability... yes
checking openssl/crypto.h presence... yes
checking for openssl/crypto.h... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: no
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: yes
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: executing depfiles commands
config.status: executing libtool commands
gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
CC src/bench_verify.o
CC src/bench_sign.o
CC src/exhaustive_tests-tests_exhaustive.o
CCLD exhaustive_tests
gcc gen_context.o -o gen_context
./gen_context
CC src/libsecp256k1_la-secp256k1.lo
CC src/tests-tests.o
CC src/bench_internal-bench_internal.o
CCLD bench_internal
CCLD tests
CCLD libsecp256k1.la
CCLD bench_sign
CCLD bench_verify
test count = 64
random seed = b7fd6467898f755df28622d3c1b7c501
random run = 99ce5be8023f33c87edb4ef387cf0d07
no problems found
scalar_add: min 0.0118us / avg 0.0120us / max 0.0123us
scalar_negate: min 0.00439us / avg 0.00459us / max 0.00472us
scalar_sqr: min 0.0419us / avg 0.0449us / max 0.0468us
scalar_mul: min 0.0459us / avg 0.0472us / max 0.0487us
scalar_split: min 0.203us / avg 0.220us / max 0.255us
scalar_inverse: min 13.4us / avg 13.8us / max 14.2us
scalar_inverse_var: min 13.4us / avg 13.7us / max 14.0us
field_normalize: min 0.0113us / avg 0.0115us / max 0.0119us
field_normalize_weak: min 0.00463us / avg 0.00487us / max 0.00501us
field_sqr: min 0.0199us / avg 0.0210us / max 0.0229us
field_mul: min 0.0246us / avg 0.0262us / max 0.0285us
field_inverse: min 5.80us / avg 5.91us / max 6.19us
field_inverse_var: min 5.82us / avg 5.87us / max 5.97us
field_sqrt: min 5.70us / avg 5.76us / max 5.87us
group_double_var: min 0.171us / avg 0.174us / max 0.177us
group_add_var: min 0.403us / avg 0.408us / max 0.422us
group_add_affine: min 0.343us / avg 0.348us / max 0.355us
group_add_affine_var: min 0.285us / avg 0.291us / max 0.299us
group_jacobi_var: min 5.73us / avg 5.81us / max 5.90us
wnaf_const: min 0.112us / avg 0.120us / max 0.147us
ecmult_wnaf: min 0.537us / avg 0.566us / max 0.600us
hash_sha256: min 0.358us / avg 0.373us / max 0.388us
hash_hmac_sha256: min 1.51us / avg 1.53us / max 1.56us
hash_rfc6979_hmac_sha256: min 8.45us / avg 8.57us / max 8.72us
context_verify: min 7981us / avg 8090us / max 8244us
context_sign: min 37.4us / avg 40.8us / max 42.5us
ecdsa_sign: min 56.1us / avg 56.6us / max 57.2us
ecdsa_verify: min 66.5us / avg 67.4us / max 68.8us
ecdsa_verify_openssl: min 487us / avg 493us / max 504us
a16034039f07572a64bc9704c23abb1fff9d70ad
#!/bin/sh
git rev-parse HEAD
echo ""
cat secptests.sh
echo ""
cat /proc/cpuinfo |grep "model name" |uniq -c
echo ""
make clean
echo ""
./configure --enable-benchmark
echo ""
make -j6
echo ""
./tests
echo ""
./exhaustive_tests
echo ""
./bench_internal
echo ""
./bench_sign
echo ""
./bench_verify
echo ""
make clean
echo ""
./configure --enable-benchmark --enable-endomorphism
echo ""
make -j6
echo ""
./tests
echo ""
./exhaustive_tests
echo ""
./bench_internal
echo ""
./bench_sign
echo ""
./bench_verify
echo ""
4 model name : Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/isle/secp256k1/build-aux/missing aclocal-1.14 -I build-aux/m4
cd . && /bin/bash /home/isle/secp256k1/build-aux/missing automake-1.14 --foreign
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/isle/secp256k1/build-aux/missing autoconf
/bin/bash ./config.status --recheck
running CONFIG_SHELL=/bin/bash /bin/bash ./configure --enable-benchmark --enable-endomorphism --no-create --no-recursion
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking whether make supports nested variables... yes
checking dependency style of gcc... gcc3
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for explicit_bzero... no
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
checking openssl/crypto.h usability... yes
checking openssl/crypto.h presence... yes
checking for openssl/crypto.h... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: no
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: yes
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
/bin/bash ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: src/libsecp256k1-config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
test -z "gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java" || rm -f gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java
test -z "libsecp256k1.la" || rm -f libsecp256k1.la
rm -f ./so_locations
rm -rf .libs _libs
rm -rf src/.libs src/_libs
rm -rf src/asm/.libs src/asm/_libs
rm -rf src/java/.libs src/java/_libs
test -z "" || rm -f
rm -f bench_verify bench_sign bench_internal tests exhaustive_tests
rm -f *.o
rm -f src/*.o
rm -f src/*.lo
rm -f src/asm/*.o
rm -f src/asm/*.lo
rm -f src/java/*.o
rm -f src/java/*.lo
test -z "tests.log exhaustive_tests.log" || rm -f tests.log exhaustive_tests.log
test -z "tests.trs exhaustive_tests.trs" || rm -f tests.trs exhaustive_tests.trs
test -z "test-suite.log" || rm -f test-suite.log
rm -f *.lo
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking whether make supports nested variables... yes
checking dependency style of gcc... gcc3
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for explicit_bzero... no
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
checking openssl/crypto.h usability... yes
checking openssl/crypto.h presence... yes
checking for openssl/crypto.h... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: no
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: no
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: executing depfiles commands
config.status: executing libtool commands
(CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/isle/secp256k1/build-aux/missing autoheader)
gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
rm -f src/stamp-h1
touch src/libsecp256k1-config.h.in
cd . && /bin/bash ./config.status src/libsecp256k1-config.h
config.status: creating src/libsecp256k1-config.h
CC src/bench_verify.o
CC src/bench_sign.o
CC src/exhaustive_tests-tests_exhaustive.o
gcc gen_context.o -o gen_context
./gen_context
CC src/libsecp256k1_la-secp256k1.lo
CC src/bench_internal-bench_internal.o
CC src/tests-tests.o
CCLD exhaustive_tests
CCLD bench_internal
CCLD tests
CCLD libsecp256k1.la
CCLD bench_verify
CCLD bench_sign
test count = 64
random seed = 032fe3eb2aa46d7614cec6a874b3f582
random run = 4b1643b693f83f22fcae442aff7839f5
no problems found
scalar_add: min 0.0109us / avg 0.0117us / max 0.0120us
scalar_negate: min 0.00406us / avg 0.00451us / max 0.00481us
scalar_sqr: min 0.0431us / avg 0.0443us / max 0.0458us
scalar_mul: min 0.0439us / avg 0.0461us / max 0.0482us
scalar_inverse: min 12.6us / avg 13.4us / max 13.8us
scalar_inverse_var: min 12.9us / avg 13.4us / max 13.6us
field_normalize: min 0.0105us / avg 0.0113us / max 0.0121us
field_normalize_weak: min 0.00450us / avg 0.00480us / max 0.00507us
field_sqr: min 0.0184us / avg 0.0210us / max 0.0232us
field_mul: min 0.0238us / avg 0.0264us / max 0.0287us
field_inverse: min 5.67us / avg 5.79us / max 5.93us
field_inverse_var: min 5.76us / avg 5.82us / max 5.95us
field_sqrt: min 5.64us / avg 5.73us / max 5.80us
group_double_var: min 0.167us / avg 0.172us / max 0.182us
group_add_var: min 0.392us / avg 0.401us / max 0.406us
group_add_affine: min 0.335us / avg 0.342us / max 0.350us
group_add_affine_var: min 0.276us / avg 0.285us / max 0.299us
group_jacobi_var: min 5.75us / avg 5.81us / max 5.93us
wnaf_const: min 0.191us / avg 0.201us / max 0.226us
ecmult_wnaf: min 0.445us / avg 0.558us / max 0.615us
hash_sha256: min 0.345us / avg 0.368us / max 0.385us
hash_hmac_sha256: min 1.43us / avg 1.51us / max 1.56us
hash_rfc6979_hmac_sha256: min 8.31us / avg 8.39us / max 8.60us
context_verify: min 7939us / avg 8004us / max 8104us
context_sign: min 37.8us / avg 40.7us / max 43.7us
ecdsa_sign: min 55.8us / avg 56.5us / max 57.0us
ecdsa_verify: min 86.3us / avg 86.6us / max 86.9us
ecdsa_verify_openssl: min 482us / avg 483us / max 484us
test -z "gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java" || rm -f gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java
test -z "libsecp256k1.la" || rm -f libsecp256k1.la
rm -f ./so_locations
rm -rf .libs _libs
rm -rf src/.libs src/_libs
rm -rf src/asm/.libs src/asm/_libs
rm -rf src/java/.libs src/java/_libs
test -z "" || rm -f
rm -f bench_verify bench_sign bench_internal tests exhaustive_tests
rm -f *.o
rm -f src/*.o
rm -f src/*.lo
rm -f src/asm/*.o
rm -f src/asm/*.lo
rm -f src/java/*.o
rm -f src/java/*.lo
test -z "tests.log exhaustive_tests.log" || rm -f tests.log exhaustive_tests.log
test -z "tests.trs exhaustive_tests.trs" || rm -f tests.trs exhaustive_tests.trs
test -z "test-suite.log" || rm -f test-suite.log
rm -f *.lo
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking whether make supports nested variables... yes
checking dependency style of gcc... gcc3
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for explicit_bzero... no
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
checking openssl/crypto.h usability... yes
checking openssl/crypto.h presence... yes
checking for openssl/crypto.h... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: no
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: yes
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: executing depfiles commands
config.status: executing libtool commands
gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
CC src/bench_verify.o
CC src/bench_sign.o
CC src/exhaustive_tests-tests_exhaustive.o
CCLD exhaustive_tests
gcc gen_context.o -o gen_context
./gen_context
CC src/libsecp256k1_la-secp256k1.lo
CC src/bench_internal-bench_internal.o
CC src/tests-tests.o
CCLD bench_internal
CCLD libsecp256k1.la
CCLD bench_verify
CCLD bench_sign
CCLD tests
test count = 64
random seed = 41bb51acfc6ec4718fb5b0cbd40c8866
random run = 111522268b58cbd0914c9ab7652dd3a7
no problems found
scalar_add: min 0.0115us / avg 0.0119us / max 0.0125us
scalar_negate: min 0.00440us / avg 0.00456us / max 0.00471us
scalar_sqr: min 0.0421us / avg 0.0452us / max 0.0488us
scalar_mul: min 0.0452us / avg 0.0480us / max 0.0527us
scalar_split: min 0.200us / avg 0.218us / max 0.238us
scalar_inverse: min 13.5us / avg 13.7us / max 13.9us
scalar_inverse_var: min 13.6us / avg 13.7us / max 14.0us
field_normalize: min 0.0115us / avg 0.0117us / max 0.0120us
field_normalize_weak: min 0.00470us / avg 0.00495us / max 0.00516us
field_sqr: min 0.0184us / avg 0.0211us / max 0.0235us
field_mul: min 0.0240us / avg 0.0263us / max 0.0289us
field_inverse: min 5.75us / avg 5.86us / max 5.98us
field_inverse_var: min 5.76us / avg 5.79us / max 5.92us
field_sqrt: min 5.67us / avg 5.76us / max 5.91us
group_double_var: min 0.171us / avg 0.174us / max 0.181us
group_add_var: min 0.400us / avg 0.405us / max 0.416us
group_add_affine: min 0.340us / avg 0.346us / max 0.351us
group_add_affine_var: min 0.284us / avg 0.292us / max 0.308us
group_jacobi_var: min 5.72us / avg 5.81us / max 5.99us
wnaf_const: min 0.103us / avg 0.117us / max 0.142us
ecmult_wnaf: min 0.533us / avg 0.557us / max 0.578us
hash_sha256: min 0.344us / avg 0.377us / max 0.417us
hash_hmac_sha256: min 1.51us / avg 1.54us / max 1.59us
hash_rfc6979_hmac_sha256: min 8.45us / avg 8.57us / max 8.75us
context_verify: min 7968us / avg 8102us / max 8389us
context_sign: min 39.8us / avg 41.0us / max 44.6us
ecdsa_sign: min 56.0us / avg 56.5us / max 56.7us
ecdsa_verify: min 65.7us / avg 66.0us / max 66.4us
ecdsa_verify_openssl: min 482us / avg 484us / max 489us
9d560f992db26612ce2630b194aef5f44d63a530
#!/bin/sh
git rev-parse HEAD
echo ""
cat secptests.sh
echo ""
cat /proc/cpuinfo |grep "model name" |uniq -c
echo ""
make clean
echo ""
./configure --enable-benchmark
echo ""
make -j6
echo ""
./tests
echo ""
./exhaustive_tests
echo ""
./bench_internal
echo ""
./bench_sign
echo ""
./bench_verify
echo ""
make clean
echo ""
./configure --enable-benchmark --enable-endomorphism
echo ""
make -j6
echo ""
./tests
echo ""
./exhaustive_tests
echo ""
./bench_internal
echo ""
./bench_sign
echo ""
./bench_verify
echo ""
1 model name : Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz
/bin/sh ./config.status --recheck
running CONFIG_SHELL=/bin/sh /bin/sh ./configure --enable-benchmark --no-create --no-recursion
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to print strings... printf
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... yes
checking gmp.h presence... yes
checking for gmp.h... yes
checking for __gmpz_init in -lgmp... yes
checking for CRYPTO... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: gmp
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: no
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
/bin/sh ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: executing depfiles commands
config.status: executing libtool commands
test -z "gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java" || rm -f gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java
test -z "libsecp256k1.la" || rm -f libsecp256k1.la
rm -f ./so_locations
rm -rf .libs _libs
rm -rf src/.libs src/_libs
rm -rf src/asm/.libs src/asm/_libs
rm -rf src/java/.libs src/java/_libs
test -z "" || rm -f
rm -f bench_verify bench_sign bench_internal tests exhaustive_tests
rm -f *.o
rm -f src/*.o
rm -f src/*.lo
rm -f src/asm/*.o
rm -f src/asm/*.lo
rm -f src/java/*.o
rm -f src/java/*.lo
test -z "tests.log exhaustive_tests.log" || rm -f tests.log exhaustive_tests.log
test -z "tests.trs exhaustive_tests.trs" || rm -f tests.trs exhaustive_tests.trs
test -z "test-suite.log" || rm -f test-suite.log
rm -f *.lo
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to print strings... printf
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... yes
checking gmp.h presence... yes
checking for gmp.h... yes
checking for __gmpz_init in -lgmp... yes
checking for CRYPTO... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: gmp
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: no
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: src/libsecp256k1-config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
CC src/bench_verify.o
CC src/exhaustive_tests-tests_exhaustive.o
CC src/bench_sign.o
gcc gen_context.o -o gen_context
./gen_context
CC src/libsecp256k1_la-secp256k1.lo
CC src/bench_internal-bench_internal.o
CC src/tests-tests.o
CCLD exhaustive_tests
CCLD bench_internal
CCLD libsecp256k1.la
CCLD bench_verify
CCLD bench_sign
CCLD tests
test count = 64
random seed = 9c6762634bfac0047d2318c3ecd91b6a
random run = 1362ccd36c0f5a10d232d94e3a1190b9
no problems found
scalar_add: min 0.0126us / avg 0.0128us / max 0.0131us
scalar_negate: min 0.00397us / avg 0.00419us / max 0.00441us
scalar_sqr: min 0.0425us / avg 0.0452us / max 0.0487us
scalar_mul: min 0.0338us / avg 0.0472us / max 0.0511us
scalar_inverse: min 12.1us / avg 13.8us / max 14.5us
scalar_inverse_var: min 0.530us / avg 2.35us / max 2.70us
field_normalize: min 0.0112us / avg 0.0114us / max 0.0117us
field_normalize_weak: min 0.00459us / avg 0.00485us / max 0.00503us
field_sqr: min 0.0178us / avg 0.0210us / max 0.0235us
field_mul: min 0.0141us / avg 0.0260us / max 0.0306us
field_inverse: min 5.75us / avg 5.93us / max 6.08us
field_inverse_var: min 2.71us / avg 2.85us / max 2.97us
field_sqrt: min 5.70us / avg 5.84us / max 5.95us
group_double_var: min 0.160us / avg 0.177us / max 0.184us
group_add_var: min 0.398us / avg 0.411us / max 0.421us
group_add_affine: min 0.367us / avg 0.374us / max 0.383us
group_add_affine_var: min 0.295us / avg 0.299us / max 0.305us
group_jacobi_var: min 0.455us / avg 0.473us / max 0.494us
wnaf_const: min 0.191us / avg 0.203us / max 0.217us
ecmult_wnaf: min 0.586us / avg 0.616us / max 0.640us
hash_sha256: min 0.233us / avg 0.365us / max 0.401us
hash_hmac_sha256: min 1.43us / avg 1.52us / max 1.57us
hash_rfc6979_hmac_sha256: min 8.46us / avg 8.55us / max 8.73us
context_verify: min 8287us / avg 8465us / max 8617us
context_sign: min 32.7us / avg 41.8us / max 46.2us
num_jacobi: min 0.147us / avg 0.159us / max 0.164us
ecdsa_sign: min 57.2us / avg 57.8us / max 58.1us
ecdsa_verify: min 76.1us / avg 76.7us / max 77.7us
ecdsa_verify_openssl: min 461us / avg 464us / max 482us
test -z "gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java" || rm -f gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java
test -z "libsecp256k1.la" || rm -f libsecp256k1.la
rm -f ./so_locations
rm -rf .libs _libs
rm -rf src/.libs src/_libs
rm -rf src/asm/.libs src/asm/_libs
rm -rf src/java/.libs src/java/_libs
test -z "" || rm -f
rm -f bench_verify bench_sign bench_internal tests exhaustive_tests
rm -f *.o
rm -f src/*.o
rm -f src/*.lo
rm -f src/asm/*.o
rm -f src/asm/*.lo
rm -f src/java/*.o
rm -f src/java/*.lo
test -z "tests.log exhaustive_tests.log" || rm -f tests.log exhaustive_tests.log
test -z "tests.trs exhaustive_tests.trs" || rm -f tests.trs exhaustive_tests.trs
test -z "test-suite.log" || rm -f test-suite.log
rm -f *.lo
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to print strings... printf
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... yes
checking gmp.h presence... yes
checking for gmp.h... yes
checking for __gmpz_init in -lgmp... yes
checking for CRYPTO... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: gmp
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: yes
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: executing depfiles commands
config.status: executing libtool commands
gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
CC src/bench_verify.o
CC src/bench_sign.o
CC src/exhaustive_tests-tests_exhaustive.o
gcc gen_context.o -o gen_context
./gen_context
CC src/libsecp256k1_la-secp256k1.lo
CC src/bench_internal-bench_internal.o
CC src/tests-tests.o
CCLD exhaustive_tests
CCLD bench_internal
CCLD libsecp256k1.la
CCLD bench_verify
CCLD bench_sign
CCLD tests
test count = 64
random seed = bcdb35d5ce25a4e5d2534eeccd044d1d
random run = 884c93febddf3a8798552726b652cc9e
no problems found
scalar_add: min 0.0128us / avg 0.0129us / max 0.0134us
scalar_negate: min 0.00278us / avg 0.00398us / max 0.00428us
scalar_sqr: min 0.0375us / avg 0.0438us / max 0.0477us
scalar_mul: min 0.0441us / avg 0.0470us / max 0.0501us
scalar_split: min 0.139us / avg 0.219us / max 0.244us
scalar_inverse: min 12.4us / avg 13.5us / max 13.8us
scalar_inverse_var: min 2.22us / avg 2.44us / max 2.63us
field_normalize: min 0.0109us / avg 0.0112us / max 0.0118us
field_normalize_weak: min 0.00267us / avg 0.00458us / max 0.00509us
field_sqr: min 0.0142us / avg 0.0201us / max 0.0234us
field_mul: min 0.0250us / avg 0.0271us / max 0.0294us
field_inverse: min 5.77us / avg 5.83us / max 5.93us
field_inverse_var: min 2.72us / avg 2.79us / max 2.89us
field_sqrt: min 5.69us / avg 5.76us / max 5.94us
group_double_var: min 0.162us / avg 0.175us / max 0.185us
group_add_var: min 0.403us / avg 0.409us / max 0.418us
group_add_affine: min 0.356us / avg 0.360us / max 0.366us
group_add_affine_var: min 0.278us / avg 0.292us / max 0.303us
group_jacobi_var: min 0.409us / avg 0.461us / max 0.501us
wnaf_const: min 0.0200us / avg 0.100us / max 0.123us
ecmult_wnaf: min 0.406us / avg 0.565us / max 0.635us
hash_sha256: min 0.193us / avg 0.351us / max 0.379us
hash_hmac_sha256: min 1.46us / avg 1.52us / max 1.60us
hash_rfc6979_hmac_sha256: min 8.27us / avg 8.37us / max 8.53us
context_verify: min 8102us / avg 8162us / max 8284us
context_sign: min 39.7us / avg 41.5us / max 43.5us
num_jacobi: min 0.147us / avg 0.158us / max 0.163us
ecdsa_sign: min 57.0us / avg 57.2us / max 57.5us
ecdsa_verify: min 54.8us / avg 55.1us / max 55.5us
ecdsa_verify_openssl: min 461us / avg 462us / max 467us
a16034039f07572a64bc9704c23abb1fff9d70ad
#!/bin/sh
git rev-parse HEAD
echo ""
cat secptests.sh
echo ""
cat /proc/cpuinfo |grep "model name" |uniq -c
echo ""
make clean
echo ""
./configure --enable-benchmark
echo ""
make -j6
echo ""
./tests
echo ""
./exhaustive_tests
echo ""
./bench_internal
echo ""
./bench_sign
echo ""
./bench_verify
echo ""
make clean
echo ""
./configure --enable-benchmark --enable-endomorphism
echo ""
make -j6
echo ""
./tests
echo ""
./exhaustive_tests
echo ""
./bench_internal
echo ""
./bench_sign
echo ""
./bench_verify
echo ""
1 model name : Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /home/isle/secp256k1/build-aux/missing aclocal-1.15 -I build-aux/m4
cd . && /bin/sh /home/isle/secp256k1/build-aux/missing automake-1.15 --foreign
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /home/isle/secp256k1/build-aux/missing autoconf
/bin/sh ./config.status --recheck
running CONFIG_SHELL=/bin/sh /bin/sh ./configure --enable-benchmark --enable-endomorphism --no-create --no-recursion
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking whether make supports nested variables... yes
checking dependency style of gcc... gcc3
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for explicit_bzero... yes
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... yes
checking gmp.h presence... yes
checking for gmp.h... yes
checking for __gmpz_init in -lgmp... yes
checking for CRYPTO... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: gmp
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: yes
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
/bin/sh ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: src/libsecp256k1-config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
test -z "gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java" || rm -f gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java
test -z "libsecp256k1.la" || rm -f libsecp256k1.la
rm -f ./so_locations
rm -rf .libs _libs
rm -rf src/.libs src/_libs
rm -rf src/asm/.libs src/asm/_libs
rm -rf src/java/.libs src/java/_libs
test -z "" || rm -f
rm -f bench_verify bench_sign bench_internal tests exhaustive_tests
rm -f *.o
rm -f src/*.o
rm -f src/*.lo
rm -f src/asm/*.o
rm -f src/asm/*.lo
rm -f src/java/*.o
rm -f src/java/*.lo
test -z "tests.log exhaustive_tests.log" || rm -f tests.log exhaustive_tests.log
test -z "tests.trs exhaustive_tests.trs" || rm -f tests.trs exhaustive_tests.trs
test -z "test-suite.log" || rm -f test-suite.log
rm -f *.lo
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking whether make supports nested variables... yes
checking dependency style of gcc... gcc3
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for explicit_bzero... yes
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... yes
checking gmp.h presence... yes
checking for gmp.h... yes
checking for __gmpz_init in -lgmp... yes
checking for CRYPTO... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: gmp
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: no
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: executing depfiles commands
config.status: executing libtool commands
(CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /home/isle/secp256k1/build-aux/missing autoheader)
gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
rm -f src/stamp-h1
touch src/libsecp256k1-config.h.in
cd . && /bin/sh ./config.status src/libsecp256k1-config.h
config.status: creating src/libsecp256k1-config.h
CC src/bench_verify.o
CC src/bench_sign.o
CC src/exhaustive_tests-tests_exhaustive.o
gcc gen_context.o -o gen_context
./gen_context
CC src/libsecp256k1_la-secp256k1.lo
CC src/bench_internal-bench_internal.o
CC src/tests-tests.o
CCLD exhaustive_tests
CCLD bench_internal
CCLD libsecp256k1.la
CCLD bench_verify
CCLD bench_sign
CCLD tests
test count = 64
random seed = 1d5f69ff6678e7abab8600495ba7e811
random run = bf7f96a4252dbd44ee16ea3729e6cf60
no problems found
scalar_add: min 0.0122us / avg 0.0126us / max 0.0129us
scalar_negate: min 0.00384us / avg 0.00414us / max 0.00441us
scalar_sqr: min 0.0382us / avg 0.0443us / max 0.0485us
scalar_mul: min 0.0450us / avg 0.0477us / max 0.0525us
scalar_inverse: min 12.6us / avg 13.6us / max 14.5us
scalar_inverse_var: min 0.737us / avg 2.27us / max 2.70us
field_normalize: min 0.0109us / avg 0.0111us / max 0.0112us
field_normalize_weak: min 0.00354us / avg 0.00454us / max 0.00510us
field_sqr: min 0.0144us / avg 0.0200us / max 0.0229us
field_mul: min 0.0252us / avg 0.0266us / max 0.0283us
field_inverse: min 5.73us / avg 5.83us / max 5.94us
field_inverse_var: min 2.77us / avg 2.83us / max 2.96us
field_sqrt: min 5.57us / avg 5.74us / max 5.90us
group_double_var: min 0.172us / avg 0.174us / max 0.175us
group_add_var: min 0.391us / avg 0.408us / max 0.418us
group_add_affine: min 0.346us / avg 0.365us / max 0.371us
group_add_affine_var: min 0.289us / avg 0.293us / max 0.304us
group_jacobi_var: min 0.368us / avg 0.464us / max 0.525us
wnaf_const: min 0.123us / avg 0.190us / max 0.235us
ecmult_wnaf: min 0.470us / avg 0.593us / max 0.641us
hash_sha256: min 0.334us / avg 0.362us / max 0.381us
hash_hmac_sha256: min 1.50us / avg 1.51us / max 1.52us
hash_rfc6979_hmac_sha256: min 8.27us / avg 8.41us / max 8.54us
context_verify: min 8270us / avg 8363us / max 8481us
context_sign: min 39.8us / avg 41.9us / max 44.0us
num_jacobi: min 0.150us / avg 0.158us / max 0.161us
ecdsa_sign: min 56.7us / avg 57.0us / max 57.5us
ecdsa_verify: min 75.6us / avg 76.1us / max 76.6us
ecdsa_verify_openssl: min 460us / avg 460us / max 461us
test -z "gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java" || rm -f gen_context src/ecmult_static_context.h src/java/org/bitcoin/*.class .stamp-java
test -z "libsecp256k1.la" || rm -f libsecp256k1.la
rm -f ./so_locations
rm -rf .libs _libs
rm -rf src/.libs src/_libs
rm -rf src/asm/.libs src/asm/_libs
rm -rf src/java/.libs src/java/_libs
test -z "" || rm -f
rm -f bench_verify bench_sign bench_internal tests exhaustive_tests
rm -f *.o
rm -f src/*.o
rm -f src/*.lo
rm -f src/asm/*.o
rm -f src/asm/*.lo
rm -f src/java/*.o
rm -f src/java/*.lo
test -z "tests.log exhaustive_tests.log" || rm -f tests.log exhaustive_tests.log
test -z "tests.trs exhaustive_tests.trs" || rm -f tests.trs exhaustive_tests.trs
test -z "test-suite.log" || rm -f test-suite.log
rm -f *.lo
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking whether make supports nested variables... yes
checking dependency style of gcc... gcc3
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ar... /usr/bin/ar
checking for ranlib... /usr/bin/ranlib
checking for strip... /usr/bin/strip
checking for gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking how to run the C preprocessor... gcc -E
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... gcc3
checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes
checking if gcc supports -fvisibility=hidden... yes
checking for __int128... yes
checking for explicit_bzero... yes
checking for __builtin_expect... yes
checking native compiler: gcc... ok
checking for x86_64 assembly availability... yes
checking gmp.h usability... yes
checking gmp.h presence... yes
checking for gmp.h... yes
checking for __gmpz_init in -lgmp... yes
checking for CRYPTO... yes
checking for main in -lcrypto... yes
checking for EC functions in libcrypto... yes
checking for javac... no
checking jni headers... none
checking whether byte ordering is bigendian... no
configure: Using static precomputation: yes
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: gmp
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: yes
configure: Building for coverage analysis: no
configure: Building ECDH module: no
configure: Building ECDSA pubkey recovery module: no
configure: Using jni: no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: executing depfiles commands
config.status: executing libtool commands
gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
CC src/bench_verify.o
CC src/bench_sign.o
CC src/exhaustive_tests-tests_exhaustive.o
gcc gen_context.o -o gen_context
./gen_context
CC src/libsecp256k1_la-secp256k1.lo
CC src/bench_internal-bench_internal.o
CC src/tests-tests.o
CCLD exhaustive_tests
CCLD bench_internal
CCLD libsecp256k1.la
CCLD bench_verify
CCLD bench_sign
CCLD tests
test count = 64
random seed = 600aeb1647d29d132423bd7de84860e9
random run = d4859ace4ac3e39ca37c2a8a5f2b132e
no problems found
scalar_add: min 0.0118us / avg 0.0125us / max 0.0127us
scalar_negate: min 0.00398us / avg 0.00426us / max 0.00467us
scalar_sqr: min 0.0412us / avg 0.0446us / max 0.0496us
scalar_mul: min 0.0448us / avg 0.0478us / max 0.0504us
scalar_split: min 0.159us / avg 0.216us / max 0.257us
scalar_inverse: min 12.1us / avg 13.4us / max 14.6us
scalar_inverse_var: min 2.18us / avg 2.46us / max 2.64us
field_normalize: min 0.0107us / avg 0.0110us / max 0.0112us
field_normalize_weak: min 0.00411us / avg 0.00471us / max 0.00511us
field_sqr: min 0.00554us / avg 0.0193us / max 0.0233us
field_mul: min 0.0103us / avg 0.0244us / max 0.0317us
field_inverse: min 5.76us / avg 5.83us / max 5.97us
field_inverse_var: min 2.74us / avg 2.78us / max 2.82us
field_sqrt: min 5.66us / avg 5.73us / max 5.91us
group_double_var: min 0.172us / avg 0.176us / max 0.184us
group_add_var: min 0.400us / avg 0.404us / max 0.414us
group_add_affine: min 0.341us / avg 0.356us / max 0.365us
group_add_affine_var: min 0.270us / avg 0.289us / max 0.301us
group_jacobi_var: min 0.453us / avg 0.487us / max 0.531us
wnaf_const: min 0.0870us / avg 0.114us / max 0.143us
ecmult_wnaf: min 0.537us / avg 0.565us / max 0.583us
hash_sha256: min 0.256us / avg 0.356us / max 0.403us
hash_hmac_sha256: min 1.32us / avg 1.46us / max 1.59us
hash_rfc6979_hmac_sha256: min 8.31us / avg 8.37us / max 8.48us
context_verify: min 8025us / avg 8132us / max 8291us
context_sign: min 38.8us / avg 42.2us / max 46.0us
num_jacobi: min 0.159us / avg 0.167us / max 0.173us
ecdsa_sign: min 56.5us / avg 56.8us / max 57.1us
ecdsa_verify: min 54.7us / avg 54.8us / max 55.0us
ecdsa_verify_openssl: min 462us / avg 463us / max 464us
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment