This commit is contained in:
Jay D Dee
2025-01-12 18:58:21 -05:00
parent 1d9341ee92
commit 1ed18bf22e
11 changed files with 1976 additions and 2454 deletions

View File

@@ -1,31 +1,35 @@
if HAVE_APPLE
# MacOS uses Homebrew to install needed packages but they aren't linked for
# the jansson test in configure. Ignore the failed test & link them now,
# different path for different CPU arch.
if ARCH_ARM64
EXTRA_INCLUDES = -I/opt/homebrew/include
EXTRA_LIBS = -L/opt/homebrew/lib
else
EXTRA_INCLUDES = -I/usr/local/include
EXTRA_LIBS = -L/usr/local/lib
endif
else
if WANT_JANSSON if WANT_JANSSON
JANSSON_INCLUDES= -I$(top_srcdir)/compat/jansson # Can't find jansson libraries, compile the included source code.
EXTRA_INCLUDES = -I$(top_srcdir)/compat/jansson
EXTRA_LIBS = -L$(top_srcdir)/compat/jansson
else else
JANSSON_INCLUDES= EXTRA_INCLUDES =
EXTRA_LIBS =
endif endif
# Hook for for GMP on MacOS which is provided by homebrew.
# Homebrew has different linkage on x86_64 & ARM64.
# Need complex expressions, nesting or elseif, none seem to work.
if !HAVE_APPLE
GMP_INCLUDES =
GMP_LIB = -lgmp
endif
if ARM64_APPLE
GMP_INCLUDES = -I/opt/homebrew/include
GMP_LIB = /opt/homebrew/lib/libgmp.a
endif
if X86_64_APPLE
GMP_INCLUDES = -I/usr/local/include
GMP_LIB = /usr/local/lib/libgmp.a
endif endif
EXTRA_DIST = example-cfg.json nomacro.pl EXTRA_DIST = example-cfg.json nomacro.pl
SUBDIRS = compat SUBDIRS = compat
ALL_INCLUDES = @PTHREAD_FLAGS@ -fno-strict-aliasing $(JANSSON_INCLUDES) $(GMP_INCLUDES) -I. ALL_INCLUDES = @PTHREAD_FLAGS@ -fno-strict-aliasing $(EXTRA_INCLUDES) -I.
bin_PROGRAMS = cpuminer bin_PROGRAMS = cpuminer
@@ -288,21 +292,20 @@ cpuminer_SOURCES = \
algo/yespower/yespower-opt.c \ algo/yespower/yespower-opt.c \
algo/yespower/yespower-ref.c \ algo/yespower/yespower-ref.c \
algo/yespower/yespower-blake2b-ref.c algo/yespower/yespower-blake2b-ref.c
disable_flags =
if USE_ASM
cpuminer_SOURCES += asm/neoscrypt_asm.S
else
disable_flags += -DNOASM
endif
if HAVE_WINDOWS if HAVE_WINDOWS
cpuminer_SOURCES += compat/winansi.c cpuminer_SOURCES += compat/winansi.c
endif endif
if USE_ASM
disable_flags =
cpuminer_SOURCES += asm/neoscrypt_asm.S
else
disable_flags += -DNOASM
endif
cpuminer_LDFLAGS = @LDFLAGS@ cpuminer_LDFLAGS = @LDFLAGS@
cpuminer_LDADD = @LIBCURL@ @JANSSON_LIBS@ @PTHREAD_LIBS@ @WS2_LIBS@ $(GMP_LIB) cpuminer_LDADD = $(EXTRA_LIBS) @LIBCURL@ -ljansson @PTHREAD_LIBS@ @WS2_LIBS@ -lgmp
cpuminer_CPPFLAGS = @LIBCURL_CPPFLAGS@ $(ALL_INCLUDES) cpuminer_CPPFLAGS = @LIBCURL_CPPFLAGS@ $(ALL_INCLUDES)
cpuminer_CFLAGS = -Wno-pointer-sign -Wno-pointer-to-int-cast $(disable_flags) cpuminer_CFLAGS = -Wno-pointer-sign -Wno-pointer-to-int-cast $(disable_flags)
@@ -312,9 +315,6 @@ endif
if HAVE_WINDOWS if HAVE_WINDOWS
# Add -U_WIN32_WINNT to command line CFLAGS to undefine
cpuminer_CFLAGS += -D_WIN32_WINNT=0x0601
# use to profile an object # use to profile an object
# gprof_cflags = -pg -g3 # gprof_cflags = -pg -g3
# cpuminer_LDFLAGS += -pg # cpuminer_LDFLAGS += -pg

View File

@@ -36,34 +36,18 @@ for compile instructions.
Requirements Requirements
------------ ------------
1. A x86_64 architecture CPU with a minimum of SSE2 support. This includes 1. A 64 bit CPU supporting x86_64 (Intel or AMD) or aarch64 (ARM).
Intel Core2 and newer and AMD equivalents. Further optimizations are available x86_64 requires SSE2, aarch64 requires armv8 & NEON.
on some algoritms for CPUs with AES, AVX, AVX2, SHA, AVX512 and VAES.
32 bit CPUs are not supported.
Other CPU architectures such as ARM, Raspberry Pi, RISC-V, Xeon Phi, etc,
are not supported.
Mobile CPUs like laptop computers are not recommended because they aren't Mobile CPUs like laptop computers are not recommended because they aren't
designed for extreme heat of operating at full load for extended periods of designed for extreme heat of operating at full load for extended periods of
time. time.
Older CPUs and ARM architecture may be supported by cpuminer-multi by TPruvot. 2. 64 bit operating system including Linux, Windows, MacOS, or BSD.
Android, IOS and alt OSs like Haiku & ReactOS are not supported.
2. 64 bit Linux or Windows OS. Ubuntu and Fedora based distributions,
including Mint and Centos, are known to work and have all dependencies
in their repositories. Others may work but may require more effort. Older
versions such as Centos 6 don't work due to missing features.
Windows 7 or newer is supported with mingw_w64 and msys or using the pre-built
binaries. WindowsXP 64 bit is YMMV.
FreeBSD is not actively tested but should work, YMMV.
MacOS, OSx and Android are not supported.
3. Stratum pool supporting stratum+tcp:// or stratum+ssl:// protocols or 3. Stratum pool supporting stratum+tcp:// or stratum+ssl:// protocols or
RPC getwork using http:// or https://. RPC getblockte,plate using http:// or https://.
GBT is YMMV.
Supported Algorithms Supported Algorithms
-------------------- --------------------

View File

@@ -75,6 +75,14 @@ If not what makes it happen or not happen?
Change Log Change Log
---------- ----------
v25.2
ARM: Fixed regression from v25.1 that could cause build fail.
BSD: FreeBSD is now supported. Other BSDs may also work.
MacOS: build with installed jansson library instead of compiling the included source code.
Windows: remove "_WIN32_WINNT=0x0601" which is a downgrade on Win11.
Changed build.sh shell from bash to sh.
v25.1 v25.1
MacOS ARM64: m7m algo is now working. MacOS ARM64: m7m algo is now working.

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
make distclean || echo clean make distclean || echo clean
rm -f config.status rm -f config.status

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
# #
# make clean and rm all the targetted executables. # make clean and rm all the targetted executables.

View File

@@ -3,7 +3,7 @@
#ifdef WIN32 #ifdef WIN32
#if _WIN32_WINNT==0x0601 // Windows 7 #if _WIN32_WINNT>=0x0601 // Windows 7
#define WINDOWS_CPU_GROUPS_ENABLED 1 #define WINDOWS_CPU_GROUPS_ENABLED 1
#endif #endif

2092
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
AC_INIT([cpuminer-opt], [25.1]) AC_INIT([cpuminer-opt], [25.2])
AC_PREREQ([2.59c]) AC_PREREQ([2.59c])
AC_CANONICAL_SYSTEM AC_CANONICAL_SYSTEM
@@ -42,22 +42,11 @@ AC_FUNC_ALLOCA
AC_CHECK_FUNCS([getopt_long]) AC_CHECK_FUNCS([getopt_long])
case $target in case $target in
i*86-*-*)
have_x86=true
;;
aarch64-apple-*|arm64-apple-*)
have_arm64=true
have_arm64_apple=true
;;
x86_64-apple-*|amd64-apple-*)
have_x86_64=true
have_x86_64_apple=true
;;
x86_64-*-*|amd64-*-*) x86_64-*-*|amd64-*-*)
have_x86_64=true have_x86_64=true
;; ;;
aarch64*-*-*|arm64*-*-*) aarch64*-*-*|arm64*-*-*)
have_arm4=true have_arm64=true
;; ;;
powerpc*-*-*) powerpc*-*-*)
have_ppc=true have_ppc=true
@@ -84,42 +73,7 @@ if test x$enable_assembly != xno; then
AC_DEFINE([USE_ASM], [1], [Define to 1 if assembly routines are wanted.]) AC_DEFINE([USE_ASM], [1], [Define to 1 if assembly routines are wanted.])
fi fi
if test x$enable_assembly != xno -a x$have_x86_64 = xtrue # jansson test fails on Linux/Mingw, handled in Makefile.am.
then
AC_MSG_CHECKING(whether we can compile AVX code)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("vmovdqa %ymm0, %ymm1");])],
AC_DEFINE(USE_AVX, 1, [Define to 1 if AVX assembly is available.])
AC_MSG_RESULT(yes)
AC_MSG_CHECKING(whether we can compile XOP code)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("vprotd \$7, %xmm0, %xmm1");])],
AC_DEFINE(USE_XOP, 1, [Define to 1 if XOP assembly is available.])
AC_MSG_RESULT(yes)
,
AC_MSG_RESULT(no)
AC_MSG_WARN([The assembler does not support the XOP instruction set.])
)
AC_MSG_CHECKING(whether we can compile AVX2 code)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("vpaddd %ymm0, %ymm1, %ymm2");])],
AC_DEFINE(USE_AVX2, 1, [Define to 1 if AVX2 assembly is available.])
AC_MSG_RESULT(yes)
AC_MSG_CHECKING(whether we can compile AVX512 code)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("vpaddd %zmm0, %zmm1, %zmm2{%k1}");])],
AC_DEFINE(USE_AVX512, 1, [Define to 1 if AVX512 assembly is available.])
AC_MSG_RESULT(yes)
,
AC_MSG_RESULT(no)
AC_MSG_WARN([The assembler does not support the AVX512 instruction set.])
)
,
AC_MSG_RESULT(no)
AC_MSG_WARN([The assembler does not support the AVX2 instruction set.])
)
,
AC_MSG_RESULT(no)
AC_MSG_WARN([The assembler does not support the AVX instruction set.])
)
fi
AC_CHECK_LIB(jansson, json_loads, request_jansson=false, request_jansson=true) AC_CHECK_LIB(jansson, json_loads, request_jansson=false, request_jansson=true)
AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS="-lpthread", AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS="-lpthread",
@@ -128,9 +82,6 @@ AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS="-lpthread",
AC_CHECK_LIB([pthreadGC], [pthread_create], PTHREAD_LIBS="-lpthreadGC" AC_CHECK_LIB([pthreadGC], [pthread_create], PTHREAD_LIBS="-lpthreadGC"
)))) ))))
#LDFLAGS="$PTHREAD_LDFLAGS $LDFLAGS"
# PTHREAD_LIBS="$PTHREAD_LIBS"
AC_MSG_CHECKING(whether __uint128_t is supported) AC_MSG_CHECKING(whether __uint128_t is supported)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([static __uint128_t i = 100;])], AC_COMPILE_IFELSE([AC_LANG_PROGRAM([static __uint128_t i = 100;])],
AC_DEFINE(USE_INT128, 1, [Define if __uint128_t is available]) AC_DEFINE(USE_INT128, 1, [Define if __uint128_t is available])
@@ -143,19 +94,10 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([static __uint128_t i = 100;])],
AM_CONDITIONAL([WANT_JANSSON], [test x$request_jansson = xtrue]) AM_CONDITIONAL([WANT_JANSSON], [test x$request_jansson = xtrue])
AM_CONDITIONAL([HAVE_WINDOWS], [test x$have_win32 = xtrue]) AM_CONDITIONAL([HAVE_WINDOWS], [test x$have_win32 = xtrue])
AM_CONDITIONAL([USE_ASM], [test x$enable_assembly != xno]) AM_CONDITIONAL([USE_ASM], [test x$enable_assembly != xno])
AM_CONDITIONAL([ARCH_x86], [test x$have_x86 = xtrue])
AM_CONDITIONAL([ARCH_x86_64], [test x$have_x86_64 = xtrue]) AM_CONDITIONAL([ARCH_x86_64], [test x$have_x86_64 = xtrue])
AM_CONDITIONAL([ARCH_ARM64], [test x$have_arm64 = xtrue]) AM_CONDITIONAL([ARCH_ARM64], [test x$have_arm64 = xtrue])
AM_CONDITIONAL([MINGW], [test "x$OS" = "xWindows_NT"]) AM_CONDITIONAL([MINGW], [test "x$OS" = "xWindows_NT"])
AM_CONDITIONAL([HAVE_APPLE], [test x$have_apple = xtrue]) AM_CONDITIONAL([HAVE_APPLE], [test x$have_apple = xtrue])
AM_CONDITIONAL([ARM64_APPLE], [test x$have_arm64_apple = xtrue])
AM_CONDITIONAL([X86_64_APPLE], [test x$have_x86_64_apple = xtrue])
if test x$request_jansson = xtrue ; then
JANSSON_LIBS="compat/jansson/libjansson.a"
else
JANSSON_LIBS=-ljansson
fi
# libcurl install path (for mingw : --with-curl=/usr/local) # libcurl install path (for mingw : --with-curl=/usr/local)
AC_ARG_WITH([curl], AC_ARG_WITH([curl],
@@ -168,25 +110,10 @@ if test -n "$with_curl" ; then
LIBCURL="-lcurl -lz" LIBCURL="-lcurl -lz"
fi fi
# SSL install path (for mingw : --with-crypto=/usr/local/ssl)
AC_ARG_WITH([crypto],
[ --with-crypto=PATH prefix where openssl crypto is installed [default=/usr]])
if test -n "$with_crypto" ; then
LIBCURL_CFLAGS="$LIBCURL_CFLAGS -I$with_crypto/include"
LIBCURL_CPPFLAGS="$LIBCURL_CPPFLAGS -I$with_crypto/include"
LIBCURL_LDFLAGS="-L$with_crypto/lib $LIBCURL_LDFLAGS"
LIBCURL="$LIBCURL -lssl -lcrypto"
fi
CFLAGS="$CFLAGS $LIBCURL_CFLAGS" CFLAGS="$CFLAGS $LIBCURL_CFLAGS"
CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS" CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS"
LDFLAGS="$LDFLAGS $LIBCURL_LDFLAGS" LDFLAGS="$LDFLAGS $LIBCURL_LDFLAGS"
#AC_CHECK_LIB([z],[gzopen],[],[])
#AC_CHECK_LIB([crypto],[OPENSSL_init], crypto=yes, [AC_MSG_ERROR([OpenSSL crypto library required])])
#AC_CHECK_LIB([ssl],[SSL_new], ssl=yes, ssl=no)
# AC_CHECK_LIB([curl], [curl_multi_timeout], # AC_CHECK_LIB([curl], [curl_multi_timeout],
# have_libcurl=yes, # have_libcurl=yes,
# have_libcurl=no AC_MSG_ERROR([curl library required]) # have_libcurl=no AC_MSG_ERROR([curl library required])

2090
configure~

File diff suppressed because it is too large Load Diff

View File

@@ -286,15 +286,15 @@ static inline void drop_policy(void) { }
static void affine_to_cpu( struct thr_info *thr ) static void affine_to_cpu( struct thr_info *thr )
{ {
int thread = thr->id; int thread = thr->id;
unsigned long last_error; unsigned long last_error = 0;
bool ok; bool ok = true;
#if defined(WINDOWS_CPU_GROUPS_ENABLED) #if defined(WINDOWS_CPU_GROUPS_ENABLED)
unsigned long group_size = GetActiveProcessorCount( 0 ); unsigned long group_size = GetActiveProcessorCount( 0 );
unsigned long group = thread / group_size; unsigned long group = thread / group_size;
unsigned long cpu = thread_affinity_map[ thread % group_size ]; unsigned long cpu = thread_affinity_map[ thread % group_size ];
GROUP_AFFINITY affinity; GROUP_AFFINITY affinity = {0};
affinity.Group = group; affinity.Group = group;
affinity.Mask = 1ULL << cpu; affinity.Mask = 1ULL << cpu;
@@ -320,8 +320,7 @@ static void affine_to_cpu( struct thr_info *thr )
{ {
last_error = GetLastError(); last_error = GetLastError();
if ( !thread ) if ( !thread )
applog( LOG_WARNING, "Set affinity returned error 0x%x for thread %d", applog( LOG_WARNING, "Set affinity returned error 0x%x", last_error );
last_error, thread );
} }
} }
@@ -2913,6 +2912,7 @@ static bool cpu_capability( bool display_only )
sw_arm_arch = __ARM_ARCH; sw_arm_arch = __ARM_ARCH;
#endif #endif
#endif #endif
// x86_64 only // x86_64 only
#if defined(__SSE2__) #if defined(__SSE2__)
sw_has_sse2 = true; sw_has_sse2 = true;
@@ -2941,9 +2941,10 @@ static bool cpu_capability( bool display_only )
#if defined(__AVX10_1_512__) #if defined(__AVX10_1_512__)
sw_has_avx10_512 = true; sw_has_avx10_512 = true;
#endif #endif
// x86_64 or AArch64 // x86_64 or AArch64
#if defined(__AES__) || defined(__ARM_FEATURE_AES) #if defined(__AES__) || defined(__ARM_FEATURE_AES)
sw_has_aes = true; sw_has_aes = true;
#endif #endif
#ifdef __VAES__ #ifdef __VAES__
sw_has_vaes = true; sw_has_vaes = true;
@@ -2954,6 +2955,7 @@ static bool cpu_capability( bool display_only )
#if defined(__SHA512__) || defined(__ARM_FEATURE_SHA512) #if defined(__SHA512__) || defined(__ARM_FEATURE_SHA512)
sw_has_sha512 = true; sw_has_sha512 = true;
#endif #endif
// AArch64 only // AArch64 only
#if defined(__ARM_NEON) #if defined(__ARM_NEON)
sw_has_neon = true; sw_has_neon = true;
@@ -2971,16 +2973,20 @@ static bool cpu_capability( bool display_only )
sw_has_sme2 = true; sw_has_sme2 = true;
#endif #endif
// CPU
cpu_brand_string( cpu_brand ); cpu_brand_string( cpu_brand );
printf( "CPU: %s\n", cpu_brand ); printf( "CPU: %s\n", cpu_brand );
printf("SW built on " __DATE__ // Build
printf( "SW built on " __DATE__
#if defined(__clang__) #if defined(__clang__)
" with CLANG-%d.%d.%d", __clang_major__, __clang_minor__, __clang_patchlevel__); " with CLANG-%d.%d.%d", __clang_major__, __clang_minor__,
__clang_patchlevel__ );
#elif defined(__GNUC__) #elif defined(__GNUC__)
" with GCC-%d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__); " with GCC-%d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__ );
#endif #endif
// OS
#if defined(__linux) #if defined(__linux)
printf(" Linux\n"); printf(" Linux\n");
#elif defined(WIN32) #elif defined(WIN32)
@@ -3106,6 +3112,7 @@ static bool cpu_capability( bool display_only )
return true; return true;
} }
/*
void show_version_and_exit(void) void show_version_and_exit(void)
{ {
printf("\n built on " __DATE__ printf("\n built on " __DATE__
@@ -3162,12 +3169,11 @@ void show_version_and_exit(void)
printf("\n"); printf("\n");
exit(0); exit(0);
} }
*/
void show_usage_and_exit(int status) void show_usage_and_exit(int status)
{ {
if (status) if (status)
fprintf(stderr, "Try `--help' for more information.\n"); fprintf(stderr, "Try `--help' for more information.\n");
// fprintf(stderr, "Try `" PACKAGE_NAME " --help' for more information.\n");
else else
printf(usage); printf(usage);
exit(status); exit(status);
@@ -3183,7 +3189,6 @@ void parse_arg(int key, char *arg )
{ {
char *p; char *p;
int v, i; int v, i;
// uint64_t ul;
double d; double d;
switch( key ) switch( key )
@@ -3327,7 +3332,8 @@ void parse_arg(int key, char *arg )
free(rpc_user); free(rpc_user);
rpc_user = strdup(arg); rpc_user = strdup(arg);
break; break;
case 'o': // url
case 'o': // url
{ {
char *ap, *hp; char *ap, *hp;
ap = strstr( arg, "://" ); ap = strstr( arg, "://" );
@@ -3392,7 +3398,8 @@ void parse_arg(int key, char *arg )
have_stratum = !opt_benchmark && !strncasecmp( rpc_url, "stratum", 7 ); have_stratum = !opt_benchmark && !strncasecmp( rpc_url, "stratum", 7 );
break; break;
} }
case 'O': // userpass
case 'O': // userpass
p = strchr(arg, ':'); p = strchr(arg, ':');
if (!p) if (!p)
{ {
@@ -3552,10 +3559,10 @@ void parse_arg(int key, char *arg )
case 1029: // stratum-keepalive case 1029: // stratum-keepalive
opt_stratum_keepalive = true; opt_stratum_keepalive = true;
break; break;
case 'V': case 'V': // version
display_cpu_capability(); display_cpu_capability();
exit(0); exit(0);
case 'h': case 'h': // help
show_usage_and_exit(0); show_usage_and_exit(0);
default: default:
@@ -3864,12 +3871,23 @@ int main(int argc, char *argv[])
} }
#endif #endif
#if defined(WIN32) && defined(WINDOWS_CPU_GROUPS_ENABLED) #if defined(WIN32)
if ( opt_debug || ( !opt_quiet && num_cpugroups > 1 ) )
applog( LOG_INFO, "Found %d CPUs in %d groups", #if defined(_WIN32_WINNT)
num_cpus, num_cpugroups ); if (opt_debug)
applog( LOG_INFO, "_WIN232_WINNT = 0x%04x", _WIN32_WINNT );
#else
if (opt_debug)
applog( LOG_INFO, "_WIN232_WINNT undefined." );
#endif #endif
#if defined(WINDOWS_CPU_GROUPS_ENABLED)
if ( opt_debug || ( !opt_quiet && num_cpugroups > 1 ) )
applog( LOG_INFO, "Found %d CPUs in %d groups",
num_cpus, num_cpugroups );
#endif
#endif
conditional_state = malloc( opt_n_threads * ((sizeof(bool)) ) ); conditional_state = malloc( opt_n_threads * ((sizeof(bool)) ) );
memset( conditional_state, 0, opt_n_threads * ((sizeof(bool)) ) ); memset( conditional_state, 0, opt_n_threads * ((sizeof(bool)) ) );
@@ -3890,7 +3908,7 @@ int main(int argc, char *argv[])
if ( cpu < num_cpus ) active_cpus++; if ( cpu < num_cpus ) active_cpus++;
} }
if ( opt_n_threads > active_cpus ) if ( opt_n_threads > active_cpus )
applog( LOG_WARNING, "Affinity: more threads (%d) than active CPUs (%d)", opt_n_threads, active_cpus ); applog( LOG_WARNING, "More miner threads (%d) than active CPUs in affinity mask (%d)", opt_n_threads, active_cpus );
if ( !opt_quiet ) if ( !opt_quiet )
{ {
char affinity_mask[64]; char affinity_mask[64];

View File

@@ -16,13 +16,8 @@ export MINGW_LIB="/usr/x86_64-w64-mingw32/lib"
export GCC_MINGW_LIB="/usr/lib/gcc/x86_64-w64-mingw32/9.3-win32" export GCC_MINGW_LIB="/usr/lib/gcc/x86_64-w64-mingw32/9.3-win32"
# used by GCC # used by GCC
export LDFLAGS="-L$LOCAL_LIB/curl/lib/.libs -L$LOCAL_LIB/gmp/.libs" export LDFLAGS="-L$LOCAL_LIB/curl/lib/.libs -L$LOCAL_LIB/gmp/.libs"
# Support for Windows 7 CPU groups, AES sometimes not included in -march export DEFAULT_CFLAGS="-maes -O3 -Wall"
# CPU groups disabled due to incompatibilities between Intel and AMD CPUs. export DEFAULT_CFLAGS_OLD="-O3 -Wall"
# CPU groups are enabled by default in Makefile, use -U to disable.
export DEFAULT_CFLAGS="-maes -O3 -Wall -U_WIN32_WINNT"
export DEFAULT_CFLAGS_OLD="-O3 -Wall -U_WIN32_WINNT"
#export DEFAULT_CFLAGS="-maes -O3 -Wall"
#export DEFAULT_CFLAGS_OLD="-O3 -Wall"
# make link to local gmp header file. # make link to local gmp header file.
ln -s $LOCAL_LIB/gmp/gmp.h ./gmp.h ln -s $LOCAL_LIB/gmp/gmp.h ./gmp.h