@My9bot
I just tested the hodl workaround. If you want to try it out it's only a 2 line code change.
Edit ./algo/hodl/hodl.cpp and add a line at the top and bottom of the file. It's not a fix but it does do a good
job of avoiding the problem, as long as there's nothing hidden underneath. It might just be a game of
whack-a-mole.
// don't compile on CPU with AES
#ifndef NO_AES_NI ///////////////// NEW
#include "miner.h"
...
...
SHA512Filler( mainMemoryPsuedoRandomData, thr_id, midHash);
}
#endif ///////////////////////// NEW
Let me know if it works.
Edit: I had another thought. I had to use a hack to get non-aes hodl to work on Windows. That may
be part of the problem. Hacks have a tendecy to be fragile.
Edit: Another thought and a question. Did you compile with -std=gnu++11 as is done in the winbuild.sh script?
This question might also applies to the hmq1725. I don't think there's any c++ code in hmq1725
but it doesn't hurt to try. There may be a switch in the newer compilers that makes them compile
like gcc 4.8.
yes i did compile with -std=gnu++11.
tryed your fix
result:
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:243:56: error: macro " min" passed 3 arguments, but takes just 2
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:265:56: error: macro " max" passed 3 arguments, but takes just 2
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
In file included from C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algo.h:60: ,
from C:/msys64_3/mingw64/include/c++/6.3.0/algorithm:62,
from algo/hodl/serialize.h:13,
from algo/hodl/block.h:9,
from algo/hodl/hodl.cpp:8:
C:/msys64_3/mingw64/include/c++/6.3.0/bits/algorithmfwd.h:362:41: error: macro " max" passed 3 arguments, but takes just 2
max(const _Tp&, const _Tp&, _Compare);
^
C:/msys64_3/mingw64/include/c++/6.3.0/bits/algorithmfwd.h:375:41: error: macro " min" passed 3 arguments, but takes just 2
min(const _Tp&, const _Tp&, _Compare);
^
C:/msys64_3/mingw64/include/c++/6.3.0/bits/algorithmfwd.h:403:30: error: macro " min" requires 2 arguments, but only 1 given
min(initializer_list<_Tp>);
^
C:/msys64_3/mingw64/include/c++/6.3.0/bits/algorithmfwd.h:413:30: error: macro " max" requires 2 arguments, but only 1 given
max(initializer_list<_Tp>);
^
In file included from C:/msys64_3/mingw64/include/c++/6.3.0/bits/uniform_int_dis t.h:35:0,
from C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algo.h:66,
from C:/msys64_3/mingw64/include/c++/6.3.0/algorithm:62,
from algo/hodl/serialize.h:13,
from algo/hodl/block.h:9,
from algo/hodl/hodl.cpp:8:
C:/msys64_3/mingw64/include/c++/6.3.0/limits:320:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return _Tp(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:324:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return _Tp(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:387:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return false; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:390:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return true; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:394:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:456:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_min(char); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:459:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_max(char); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:463:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:523:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return -__SCHAR_MAX__ - 1; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:526:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __SCHAR_MAX__; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:530:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:593:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return 0; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:596:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __SCHAR_MAX__ * 2U + 1; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:600:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:666:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_min (wchar_t); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:669:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_max (wchar_t); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:673:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:735:11: error: macro "min" requires 2 arguments, but only 1 given
min() noexcept { return __glibcxx_min (char16_t); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:738:11: error: macro "max" requires 2 arguments, but only 1 given
max() noexcept { return __glibcxx_max (char16_t); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:741:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:796:11: error: macro "min" requires 2 arguments, but only 1 given
min() noexcept { return __glibcxx_min (char32_t); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:799:11: error: macro "max" requires 2 arguments, but only 1 given
max() noexcept { return __glibcxx_max (char32_t); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:802:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:858:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return -__SHRT_MAX__ - 1; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:861:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __SHRT_MAX__; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:865:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:925:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return 0; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:928:11: error: macro "max" requires 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __SHRT_MAX__ * 2U + 1; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:932:38: error: macro "min" requires 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:998:11: error: macro "min" requires 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return -__INT_MAX__ - 1; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1001:11: error: macro "max" require s 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __INT_MAX__; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1005:38: error: macro "min" require s 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1065:11: error: macro "min" require s 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return 0; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1068:11: error: macro "max" require s 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __INT_MAX__ * 2U + 1; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1072:38: error: macro "min" require s 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1137:11: error: macro "min" require s 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return -__LONG_MAX__ - 1; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1140:11: error: macro "max" require s 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __LONG_MAX__; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1144:38: error: macro "min" require s 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1204:11: error: macro "min" require s 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return 0; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1207:11: error: macro "max" require s 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __LONG_MAX__ * 2UL + 1; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1211:38: error: macro "min" require s 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1277:11: error: macro "min" require s 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return -__LONG_LONG_MAX__ - 1; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1280:11: error: macro "max" require s 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __LONG_LONG_MAX__; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1284:38: error: macro "min" require s 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1347:11: error: macro "min" require s 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return 0; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1350:11: error: macro "max" require s 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __LONG_LONG_MAX__ * 2ULL + 1; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1354:38: error: macro "min" require s 2 arguments, but only 1 given
lowest() noexcept { return min(); }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1570:85: error: macro "min" require s 2 arguments, but only 1 given
__INT_N_201103 (__GLIBCXX_TYPE_INT_N_0), __INT_N_U201103 (__GLIBCXX_TYPE_INT _N_0))
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1570:85: error: macro "min" require s 2 arguments, but only 1 given
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1570:85: error: macro "min" require s 2 arguments, but only 1 given
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1570:85: error: macro "max" require s 2 arguments, but only 1 given
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1570:85: error: macro "min" require s 2 arguments, but only 1 given
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1570:85: error: macro "max" require s 2 arguments, but only 1 given
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1598:11: error: macro "min" require s 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return __FLT_MIN__; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1601:11: error: macro "max" require s 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __FLT_MAX__; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1673:11: error: macro "min" require s 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return __DBL_MIN__; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1676:11: error: macro "max" require s 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __DBL_MAX__; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1748:11: error: macro "min" require s 2 arguments, but only 1 given
min() _GLIBCXX_USE_NOEXCEPT { return __LDBL_MIN__; }
^
C:/msys64_3/mingw64/include/c++/6.3.0/limits:1751:11: error: macro "max" require s 2 arguments, but only 1 given
max() _GLIBCXX_USE_NOEXCEPT { return __LDBL_MAX__; }
^
In file included from C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algo.h:66: ,
from C:/msys64_3/mingw64/include/c++/6.3.0/algorithm:62,
from algo/hodl/serialize.h:13,
from algo/hodl/block.h:9,
from algo/hodl/hodl.cpp:8:
C:/msys64_3/mingw64/include/c++/6.3.0/bits/uniform_int_dist.h:76:56: error: macr o "max" requires 2 arguments, but only 1 given
_IntType __b = std::numeric_limits<_IntType>::max())
^
C:/msys64_3/mingw64/include/c++/6.3.0/bits/uniform_int_dist.h:105:57: error: mac ro "max" requires 2 arguments, but only 1 given
_IntType __b = std::numeric_limits<_IntType>::max())
^
C:/msys64_3/mingw64/include/c++/6.3.0/bits/uniform_int_dist.h:149:11: error: mac ro "min" requires 2 arguments, but only 1 given
min() const
^
C:/msys64_3/mingw64/include/c++/6.3.0/bits/uniform_int_dist.h:156:11: error: mac ro "max" requires 2 arguments, but only 1 given
max() const
^
C:/msys64_3/mingw64/include/c++/6.3.0/bits/uniform_int_dist.h:227:40: error: mac ro "min" requires 2 arguments, but only 1 given
const __uctype __urngmin = __urng.min();
^
C:/msys64_3/mingw64/include/c++/6.3.0/bits/uniform_int_dist.h:228:40: error: mac ro "max" requires 2 arguments, but only 1 given
const __uctype __urngmax = __urng.max();
^
C:/msys64_3/mingw64/include/c++/6.3.0/bits/uniform_int_dist.h:296:40: error: mac ro "min" requires 2 arguments, but only 1 given
const __uctype __urngmin = __urng.min();
^
C:/msys64_3/mingw64/include/c++/6.3.0/bits/uniform_int_dist.h:297:40: error: mac ro "max" requires 2 arguments, but only 1 given
const __uctype __urngmax = __urng.max();
^
In file included from C:/msys64_3/mingw64/include/c++/6.3.0/algorithm:62:0,
from algo/hodl/serialize.h:13,
from algo/hodl/block.h:9,
from algo/hodl/hodl.cpp:8:
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algo.h:3447:34: error: macro "min " requires 2 arguments, but only 1 given
min(initializer_list<_Tp> __l)
^
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algo.h:3459:34: error: macro "max " requires 2 arguments, but only 1 given
max(initializer_list<_Tp> __l)
^
In file included from algo/hodl/block.h:9:0,
from algo/hodl/hodl.cpp:8:
algo/hodl/serialize.h:246:64: error: macro "max" requires 2 arguments, but only 1 given
else if (nSize <= std::numeric_limits::max()) return sizeof (unsigned char) + sizeof(unsigned short);
^
algo/hodl/serialize.h:247:62: error: macro "max" requires 2 arguments, but only 1 given
else if (nSize <= std::numeric_limits::max()) return sizeof( unsigned char) + sizeof(unsigned int);
^
algo/hodl/serialize.h:258:64: error: macro "max" requires 2 arguments, but only 1 given
else if (nSize <= std::numeric_limits::max())
^
algo/hodl/serialize.h:263:62: error: macro "max" requires 2 arguments, but only 1 given
else if (nSize <= std::numeric_limits::max())
^
algo/hodl/hodl-gate.c: In function 'hodl_scanhash':
algo/hodl/hodl-gate.c:105:21: warning: passing argument 1 of 'GenRandomGarbage' from incompatible pointer type [-Wincompatible-pointer-types]
GenRandomGarbage( hodl_scratchbuf, work->data, thr_id );
^~~~~~~~~~~~~~~
In file included from algo/hodl/hodl-gate.c:8:0:
algo/hodl/hodl-wolf.h:25:6: note: expected 'CacheEntry * {aka union _CacheEntry *}' but argument is of type 'unsigned char *'
void GenRandomGarbage( CacheEntry *Garbage, uint32_t *pdata, int thr_id);
^~~~~~~~~~~~~~~~
In file included from algo/hodl/hodl.cpp:4:0:
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:195:5: error: expected unqualified-id before 'const'
min(const _Tp& __a, const _Tp& __b)
^
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:195:5: error: expected ')' before 'const'
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:195:5: error: expected initializer before 'const'
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:219:5: error: expected unqualified-id before 'const'
max(const _Tp& __a, const _Tp& __b)
^
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:219:5: error: expected ')' before 'const'
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:219:5: error: expected initializer before 'const'
In file included from C:/msys64_3/mingw64/include/c++/6.3.0/bits/char_traits.h:3 9:0,
from C:/msys64_3/mingw64/include/c++/6.3.0/string:40,
from C:/msys64_3/mingw64/include/c++/6.3.0/stdexcept:39,
from algo/hodl/hodl_uint256.h:11,
from algo/hodl/hodl.cpp:6:
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:243:5: error: 'std::mi n' declared as an 'inline' variable
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
^~~
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:246:7: error: expected primary-expression before 'if'
if (__comp(__b, __a))
^~
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:246:7: error: expected '}' before 'if'
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:246:7: error: expected ';' before 'if'
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:248:7: error: expected unqualified-id before 'return'
return __a;
^~~~~~
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:265:5: error: 'max' de clared as an 'inline' variable
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
^~~
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:268:7: error: expected primary-expression before 'if'
if (__comp(__a, __b))
^~
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:268:7: error: expected '}' before 'if'
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:268:7: error: expected ';' before 'if'
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:270:7: error: expected unqualified-id before 'return'
return __a;
^~~~~~
C:/msys64_3/mingw64/include/c++/6.3.0/bits/stl_algobase.h:271:5: error: expected declaration before '}' token
}
^
make[2]: *** [Makefile:3381: algo/hodl/cpuminer-hodl.o] Fehler 1
make[2]: *** Es wird auf noch nicht beendete Prozesse gewartet....
make[1]: *** [Makefile:3542: all-recursive] Fehler 1
make: *** [Makefile:665: all] Fehler 2