Merge bitcoin-core/secp256k1#1084: ci: Add MSVC builds
49e2acd927configure: Improve rationale for WERROR_CFLAGS (Tim Ruffing)8dc4b03341ci: Add a C++ job that compiles the public headers without -fpermissive (Tim Ruffing)51f296a46cci: Run persistent wineserver to speed up wine (Tim Ruffing)3fb3269c22ci: Add 32-bit MinGW64 build (Tim Ruffing)9efc2e5221ci: Add MSVC builds (Tim Ruffing)2be6ba0fedconfigure: Convince autotools to work with MSVC's archiver lib.exe (Tim Ruffing)bd81f4140aschnorrsig bench: Suppress a stupid warning in MSVC (Tim Ruffing)09f3d71c51configure: Add a few CFLAGS for MSVC (Tim Ruffing)3b4f3d0d46build: Reject C++ compilers in the preprocessor (Tim Ruffing)1cc0941414configure: Don't abort if the compiler does not define __STDC__ (Tim Ruffing)cca8cbbac8configure: Output message when checking for valgrind (Tim Ruffing)1a6be5745fbench: Make benchmarks compile on MSVC (Tim Ruffing) Pull request description: ACKs for top commit: jonasnick: ACK49e2acd927Tree-SHA512: 986c498fb218231fff3519167d34a92e11dea6a4383788a9723be105c20578cd483c6b06ba5686c6669e3a02cfeebc29b8e5f1428552ebf4ec67fa7a86957548
This commit is contained in:
18
src/bench.h
18
src/bench.h
@@ -7,15 +7,31 @@
|
||||
#ifndef SECP256K1_BENCH_H
|
||||
#define SECP256K1_BENCH_H
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "sys/time.h"
|
||||
|
||||
#if (defined(_MSC_VER) && _MSC_VER >= 1900)
|
||||
# include <time.h>
|
||||
#else
|
||||
# include "sys/time.h"
|
||||
#endif
|
||||
|
||||
static int64_t gettime_i64(void) {
|
||||
#if (defined(_MSC_VER) && _MSC_VER >= 1900)
|
||||
/* C11 way to get wallclock time */
|
||||
struct timespec tv;
|
||||
if (!timespec_get(&tv, TIME_UTC)) {
|
||||
fputs("timespec_get failed!", stderr);
|
||||
exit(1);
|
||||
}
|
||||
return (int64_t)tv.tv_nsec / 1000 + (int64_t)tv.tv_sec * 1000000LL;
|
||||
#else
|
||||
struct timeval tv;
|
||||
gettimeofday(&tv, NULL);
|
||||
return (int64_t)tv.tv_usec + (int64_t)tv.tv_sec * 1000000LL;
|
||||
#endif
|
||||
}
|
||||
|
||||
#define FP_EXP (6)
|
||||
|
||||
@@ -91,10 +91,12 @@ void run_schnorrsig_bench(int iters, int argc, char** argv) {
|
||||
free((void *)data.msgs[i]);
|
||||
free((void *)data.sigs[i]);
|
||||
}
|
||||
free(data.keypairs);
|
||||
free(data.pk);
|
||||
free(data.msgs);
|
||||
free(data.sigs);
|
||||
|
||||
/* Casting to (void *) avoids a stupid warning in MSVC. */
|
||||
free((void *)data.keypairs);
|
||||
free((void *)data.pk);
|
||||
free((void *)data.msgs);
|
||||
free((void *)data.sigs);
|
||||
|
||||
secp256k1_context_destroy(data.ctx);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,17 @@
|
||||
* file COPYING or https://www.opensource.org/licenses/mit-license.php.*
|
||||
***********************************************************************/
|
||||
|
||||
/* This is a C project. It should not be compiled with a C++ compiler,
|
||||
* and we error out if we detect one.
|
||||
*
|
||||
* We still want to be able to test the project with a C++ compiler
|
||||
* because it is still good to know if this will lead to real trouble, so
|
||||
* there is a possibility to override the check. But be warned that
|
||||
* compiling with a C++ compiler is not supported. */
|
||||
#if defined(__cplusplus) && !defined(SECP256K1_CPLUSPLUS_TEST_OVERRIDE)
|
||||
#error Trying to compile a C project with a C++ compiler.
|
||||
#endif
|
||||
|
||||
#define SECP256K1_BUILD
|
||||
|
||||
#include "../include/secp256k1.h"
|
||||
|
||||
Reference in New Issue
Block a user