joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
February 23, 2017, 06:44:25 PM |
|
got this error at 3.5.9
Ths look like a problem with your environment. Does 3.5.8 compile? If I recently broke it it's easier to fix. This looks to be in c++ code which is only used by the non-AES version of Hodl, suggesting your CPU doesn't have AES. It also appears you are using gcc 6.4. The Windows binaries are built with 4.8. I suggest you use gcc 4.8 if possible as there have been other reports of problems with newer compilers. If the compile fails with 4.8 there may be other issues with your environment. Or you could take the lazy way out and use the binaries. my cpu has AES and im using msys2 and it doesn´t support to install a older version of gcc There's not much I can do about your build environment. Like I said you can use the binaries or if you're comfortable with code you can comment out the lines that don't compile. Since the code is only used on non-AES CPUs, removing it will have no effect on your mining. ok first of all thx for your time and help!!! i recompiled 3.5.8 no problems 3.5.9 i get errors because of that i don´t think it is a build environment problem sry for my bad english Thanks for that info. I made a small change in Hodl in v3.5.9 but I see no connection with the code that won't compile. It compiles and runs fine for me. I simply moved some code from one function to another, I have no idea why it broke your compile. Unfortunately the vague error messages don't help. Since the error does not occur for me I have no way to debug it.
|
|
|
|
My9bot
|
|
February 23, 2017, 06:46:15 PM |
|
got this error at 3.5.9
Ths look like a problem with your environment. Does 3.5.8 compile? If I recently broke it it's easier to fix. This looks to be in c++ code which is only used by the non-AES version of Hodl, suggesting your CPU doesn't have AES. It also appears you are using gcc 6.4. The Windows binaries are built with 4.8. I suggest you use gcc 4.8 if possible as there have been other reports of problems with newer compilers. If the compile fails with 4.8 there may be other issues with your environment. Or you could take the lazy way out and use the binaries. my cpu has AES and im using msys2 and it doesn´t support to install a older version of gcc There's not much I can do about your build environment. Like I said you can use the binaries or if you're comfortable with code you can comment out the lines that don't compile. Since the code is only used on non-AES CPUs, removing it will have no effect on your mining. ok first of all thx for your time and help!!! i recompiled 3.5.8 no problems 3.5.9 i get errors because of that i don´t think it is a build environment problem sry for my bad english Thanks for that info. I made a small change in Hodl in v3.5.9 but I see no connection with the code that won't compile. It compiles and runs fine for me. I simply moved some code from one function to another, I have no idea why it broke your compile. Unfortunately the vague error messages don't help. Since the error does not occur for me I have no way to debug it. ok thx
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
February 23, 2017, 06:54:39 PM |
|
ok thx
I had another thought. You could try compiling with -O2 instead of -O3. This will disable some of the more aggressive compiler optimizations. Perhaps some of my code conflicts with the optimizer. This suggestion might also be useful for the stack smashing crash seen with hmq1725.
|
|
|
|
My9bot
|
|
February 23, 2017, 10:32:12 PM |
|
ok thx
I had another thought. You could try compiling with -O2 instead of -O3. This will disable some of the more aggressive compiler optimizations. Perhaps some of my code conflicts with the optimizer. This suggestion might also be useful for the stack smashing crash seen with hmq1725. same errors
|
|
|
|
arcueid
Newbie
Offline
Activity: 4
Merit: 0
|
|
February 25, 2017, 03:49:19 AM |
|
got this error at 3.5.9
Ths look like a problem with your environment. Does 3.5.8 compile? If I recently broke it it's easier to fix. This looks to be in c++ code which is only used by the non-AES version of Hodl, suggesting your CPU doesn't have AES. It also appears you are using gcc 6.4. The Windows binaries are built with 4.8. I suggest you use gcc 4.8 if possible as there have been other reports of problems with newer compilers. If the compile fails with 4.8 there may be other issues with your environment. Or you could take the lazy way out and use the binaries. my cpu has AES and im using msys2 and it doesn´t support to install a older version of gcc There's not much I can do about your build environment. Like I said you can use the binaries or if you're comfortable with code you can comment out the lines that don't compile. Since the code is only used on non-AES CPUs, removing it will have no effect on your mining. ok first of all thx for your time and help!!! i recompiled 3.5.8 no problems 3.5.9 i get errors because of that i don´t think it is a build environment problem sry for my bad english Thanks for that info. I made a small change in Hodl in v3.5.9 but I see no connection with the code that won't compile. It compiles and runs fine for me. I simply moved some code from one function to another, I have no idea why it broke your compile. Unfortunately the vague error messages don't help. Since the error does not occur for me I have no way to debug it. ok thx Same error on master branch with gcc 6.3 (building Docker image from clearlinux) Dockerfile to compile/reproduce the issue: FROM clearlinux:latest
RUN swupd bundle-add dev-utils os-core-dev c-basic && \ rm -rf /var/lib/swupd/*
RUN git clone https://github.com/JayDDee/cpuminer-opt.git && \ cd cpuminer-opt && \ sh build.sh
WORKDIR /cpuminer-opt ENTRYPOINT ["./cpuminer"] It crashed on same things on hodl, I have a CPU with aes_ni. g++ -DHAVE_CONFIG_H -I. -Iyes/include -fno-strict-aliasing -I./compat/jansson -I. -Iyes/include -O3 -march=native -Wall -std=gnu++11 -MT algo/hodl/cpuminer-hodl.o -MD -MP -MF algo/hodl/.deps/cpuminer-hodl.Tpo -c -o algo/hodl/cpuminer-hodl.o `test -f 'algo/hodl/hodl.cpp' || echo './'`algo/hodl/hodl.cpp In file included from /usr/include/c++/bits/char_traits.h:39:0, from /usr/include/c++/string:40, from /usr/include/c++/stdexcept:39, from algo/hodl/hodl_uint256.h:11, from algo/hodl/hodl.cpp:3: /usr/include/c++/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) ^ /usr/include/c++/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 /usr/include/c++/bits/stl_algo.h:60:0, from /usr/include/c++/algorithm:62, from algo/hodl/serialize.h:13, from algo/hodl/block.h:9, from algo/hodl/hodl.cpp:5: /usr/include/c++/bits/algorithmfwd.h:362:41: error: macro "max" passed 3 arguments, but takes just 2 max(const _Tp&, const _Tp&, _Compare); ^ /usr/include/c++/bits/algorithmfwd.h:375:41: error: macro "min" passed 3 arguments, but takes just 2 min(const _Tp&, const _Tp&, _Compare); ^ /usr/include/c++/bits/algorithmfwd.h:403:30: error: macro "min" requires 2 arguments, but only 1 given min(initializer_list<_Tp>); ^ /usr/include/c++/bits/algorithmfwd.h:413:30: error: macro "max" requires 2 arguments, but only 1 given max(initializer_list<_Tp>); ^ In file included from /usr/include/c++/bits/uniform_int_dist.h:35:0, from /usr/include/c++/bits/stl_algo.h:66, from /usr/include/c++/algorithm:62, from algo/hodl/serialize.h:13, from algo/hodl/block.h:9, from algo/hodl/hodl.cpp:5: /usr/include/c++/limits:320:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return _Tp(); } ^ /usr/include/c++/limits:324:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return _Tp(); } ^ /usr/include/c++/limits:387:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return false; } ^ /usr/include/c++/limits:390:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return true; } ^ /usr/include/c++/limits:394:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:456:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_min(char); } ^ /usr/include/c++/limits:459:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_max(char); } ^ /usr/include/c++/limits:463:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:523:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return -__SCHAR_MAX__ - 1; } ^ /usr/include/c++/limits:526:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __SCHAR_MAX__; } ^ /usr/include/c++/limits:530:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:593:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return 0; } ^ /usr/include/c++/limits:596:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __SCHAR_MAX__ * 2U + 1; } ^ /usr/include/c++/limits:600:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:666:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_min (wchar_t); } ^ /usr/include/c++/limits:669:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_max (wchar_t); } ^ /usr/include/c++/limits:673:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:735:11: error: macro "min" requires 2 arguments, but only 1 given min() noexcept { return __glibcxx_min (char16_t); } ^ /usr/include/c++/limits:738:11: error: macro "max" requires 2 arguments, but only 1 given max() noexcept { return __glibcxx_max (char16_t); } ^ /usr/include/c++/limits:741:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:796:11: error: macro "min" requires 2 arguments, but only 1 given min() noexcept { return __glibcxx_min (char32_t); } ^ /usr/include/c++/limits:799:11: error: macro "max" requires 2 arguments, but only 1 given max() noexcept { return __glibcxx_max (char32_t); } ^ /usr/include/c++/limits:802:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:858:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return -__SHRT_MAX__ - 1; } ^ /usr/include/c++/limits:861:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __SHRT_MAX__; } ^ /usr/include/c++/limits:865:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:925:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return 0; } ^ /usr/include/c++/limits:928:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __SHRT_MAX__ * 2U + 1; } ^ /usr/include/c++/limits:932:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:998:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return -__INT_MAX__ - 1; } ^ /usr/include/c++/limits:1001:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __INT_MAX__; } ^ /usr/include/c++/limits:1005:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:1065:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return 0; } ^ /usr/include/c++/limits:1068:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __INT_MAX__ * 2U + 1; } ^ /usr/include/c++/limits:1072:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:1137:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return -__LONG_MAX__ - 1; } ^ /usr/include/c++/limits:1140:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __LONG_MAX__; } ^ /usr/include/c++/limits:1144:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:1204:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return 0; } ^ /usr/include/c++/limits:1207:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __LONG_MAX__ * 2UL + 1; } ^ /usr/include/c++/limits:1211:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:1277:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return -__LONG_LONG_MAX__ - 1; } ^ /usr/include/c++/limits:1280:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __LONG_LONG_MAX__; } ^ /usr/include/c++/limits:1284:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:1347:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return 0; } ^ /usr/include/c++/limits:1350:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __LONG_LONG_MAX__ * 2ULL + 1; } ^ /usr/include/c++/limits:1354:38: error: macro "min" requires 2 arguments, but only 1 given lowest() noexcept { return min(); } ^ /usr/include/c++/limits:1570:85: error: macro "min" requires 2 arguments, but only 1 given __INT_N_201103 (__GLIBCXX_TYPE_INT_N_0), __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_0)) ^ /usr/include/c++/limits:1570:85: error: macro "min" requires 2 arguments, but only 1 given /usr/include/c++/limits:1570:85: error: macro "min" requires 2 arguments, but only 1 given /usr/include/c++/limits:1570:85: error: macro "max" requires 2 arguments, but only 1 given /usr/include/c++/limits:1570:85: error: macro "min" requires 2 arguments, but only 1 given /usr/include/c++/limits:1570:85: error: macro "max" requires 2 arguments, but only 1 given /usr/include/c++/limits:1598:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return __FLT_MIN__; } ^ /usr/include/c++/limits:1601:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __FLT_MAX__; } ^ /usr/include/c++/limits:1673:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return __DBL_MIN__; } ^ /usr/include/c++/limits:1676:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __DBL_MAX__; } ^ /usr/include/c++/limits:1748:11: error: macro "min" requires 2 arguments, but only 1 given min() _GLIBCXX_USE_NOEXCEPT { return __LDBL_MIN__; } ^ /usr/include/c++/limits:1751:11: error: macro "max" requires 2 arguments, but only 1 given max() _GLIBCXX_USE_NOEXCEPT { return __LDBL_MAX__; } ^ In file included from /usr/include/c++/bits/stl_algo.h:66:0, from /usr/include/c++/algorithm:62, from algo/hodl/serialize.h:13, from algo/hodl/block.h:9, from algo/hodl/hodl.cpp:5: /usr/include/c++/bits/uniform_int_dist.h:76:56: error: macro "max" requires 2 arguments, but only 1 given _IntType __b = std::numeric_limits<_IntType>::max()) ^ /usr/include/c++/bits/uniform_int_dist.h:105:57: error: macro "max" requires 2 arguments, but only 1 given _IntType __b = std::numeric_limits<_IntType>::max()) ^ /usr/include/c++/bits/uniform_int_dist.h:149:11: error: macro "min" requires 2 arguments, but only 1 given min() const ^ /usr/include/c++/bits/uniform_int_dist.h:156:11: error: macro "max" requires 2 arguments, but only 1 given max() const ^ /usr/include/c++/bits/uniform_int_dist.h:227:40: error: macro "min" requires 2 arguments, but only 1 given const __uctype __urngmin = __urng.min(); ^ /usr/include/c++/bits/uniform_int_dist.h:228:40: error: macro "max" requires 2 arguments, but only 1 given const __uctype __urngmax = __urng.max(); ^ /usr/include/c++/bits/uniform_int_dist.h:296:40: error: macro "min" requires 2 arguments, but only 1 given const __uctype __urngmin = __urng.min(); ^ /usr/include/c++/bits/uniform_int_dist.h:297:40: error: macro "max" requires 2 arguments, but only 1 given const __uctype __urngmax = __urng.max(); ^ In file included from /usr/include/c++/algorithm:62:0, from algo/hodl/serialize.h:13, from algo/hodl/block.h:9, from algo/hodl/hodl.cpp:5: /usr/include/c++/bits/stl_algo.h:3447:34: error: macro "min" requires 2 arguments, but only 1 given min(initializer_list<_Tp> __l) ^ /usr/include/c++/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:5: algo/hodl/serialize.h:246:64: error: macro "max" requires 2 arguments, but only 1 given else if (nSize <= std::numeric_limits<unsigned short>::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<unsigned int>::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<unsigned short>::max()) ^ algo/hodl/serialize.h:263:62: error: macro "max" requires 2 arguments, but only 1 given else if (nSize <= std::numeric_limits<unsigned int>::max()) ^ In file included from algo/hodl/hodl.cpp:1:0: /usr/include/c++/bits/stl_algobase.h:195:5: error: expected unqualified-id before 'const' min(const _Tp& __a, const _Tp& __b) ^ /usr/include/c++/bits/stl_algobase.h:195:5: error: expected ')' before 'const' /usr/include/c++/bits/stl_algobase.h:195:5: error: expected initializer before 'const' /usr/include/c++/bits/stl_algobase.h:219:5: error: expected unqualified-id before 'const' max(const _Tp& __a, const _Tp& __b) ^ /usr/include/c++/bits/stl_algobase.h:219:5: error: expected ')' before 'const' /usr/include/c++/bits/stl_algobase.h:219:5: error: expected initializer before 'const' In file included from /usr/include/c++/bits/char_traits.h:39:0, from /usr/include/c++/string:40, from /usr/include/c++/stdexcept:39, from algo/hodl/hodl_uint256.h:11, from algo/hodl/hodl.cpp:3: /usr/include/c++/bits/stl_algobase.h:243:5: error: 'std::min' declared as an 'inline' variable min(const _Tp& __a, const _Tp& __b, _Compare __comp) ^~~ /usr/include/c++/bits/stl_algobase.h:246:7: error: expected primary-expression before 'if' if (__comp(__b, __a)) ^~ /usr/include/c++/bits/stl_algobase.h:246:7: error: expected '}' before 'if' /usr/include/c++/bits/stl_algobase.h:246:7: error: expected ';' before 'if' /usr/include/c++/bits/stl_algobase.h:248:7: error: expected unqualified-id before 'return' return __a; ^~~~~~ /usr/include/c++/bits/stl_algobase.h:265:5: error: 'max' declared as an 'inline' variable max(const _Tp& __a, const _Tp& __b, _Compare __comp) ^~~ /usr/include/c++/bits/stl_algobase.h:268:7: error: expected primary-expression before 'if' if (__comp(__a, __b)) ^~ /usr/include/c++/bits/stl_algobase.h:268:7: error: expected '}' before 'if' /usr/include/c++/bits/stl_algobase.h:268:7: error: expected ';' before 'if' /usr/include/c++/bits/stl_algobase.h:270:7: error: expected unqualified-id before 'return' return __a; ^~~~~~ /usr/include/c++/bits/stl_algobase.h:271:5: error: expected declaration before '}' token } ^ make[2]: *** [Makefile:3390: algo/hodl/cpuminer-hodl.o] Error 1 make[2]: *** Waiting for unfinished jobs.... mv -f algo/groestl/aes_ni/.deps/cpuminer-hash-groestl.Tpo algo/groestl/aes_ni/.deps/cpuminer-hash-groestl.Po mv -f algo/groestl/aes_ni/.deps/cpuminer-hash-groestl256.Tpo algo/groestl/aes_ni/.deps/cpuminer-hash-groestl256.Po mv -f algo/haval/.deps/cpuminer-haval.Tpo algo/haval/.deps/cpuminer-haval.Po make[2]: Leaving directory '/cpuminer-opt' make[1]: *** [Makefile:3551: all-recursive] Error 1 make[1]: Leaving directory '/cpuminer-opt' make: *** [Makefile:675: all] Error 2
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
February 25, 2017, 02:01:02 PM |
|
[snipped]
Thanks for testing. All the compile errors are in hodl.cpp yet that file hasn't changed in several releases. This is c++ and it involves templates, way over my head. The trigger was a change in algo-gate by moving some code from the default target to the hodl target. A simple cut/paste from cpu-miner.c into hodl-gate.c (and a few other algos' targets). hodl-gate.c is the only file in the hodl dir that was modified. The only connection to hodl.cpp is hodl.cpp includes hodl-gate.h. Hodl.cpp contains a number of hacks already to get it working, perhaps the new compiler doesn't like them. The only difference I can see from moving code from cpu-miner.c to hodl-gate.c is that code now sees different #includes. But how does that affect compiling a third file? I'm pretty much stuck. All I can do is tinker with the code so see if I can fix it as magically as I broke it. But that tinkering would have no direction and would be like throwing darts blindfolded. The unfortunate part of this is it prevents using any of the algos in that release. I am considering dropping support for non-aes hodl in the next release and ripping out all those hacks. I knew it was fragile code and was afraid to touch it once it was working. Non-aes hodl will still available in the legacy 3.4.12 version. There have been no changes to hodl since then and not likely any changes in the future, espescially to the non-aes version.
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
February 25, 2017, 02:03:05 PM |
|
Has anyone retested hmq1725 to see if the stack smashing went away in v3.5.9 on Ubuntu 16.04?
|
|
|
|
felixbrucker
|
|
February 25, 2017, 02:36:52 PM |
|
Has anyone retested hmq1725 to see if the stack smashing went away in v3.5.9 on Ubuntu 16.04?
just tested, same results as with 3.5.8 and before, without fno option stack smashing detected, with fno option only rejects (fast) cheers
|
|
|
|
integrale
Full Member
Offline
Activity: 144
Merit: 100
Eager to learn
|
|
February 25, 2017, 03:06:04 PM |
|
14.04 gcc 4.8 with intel avx works 16.04 gcc 5.4 with sse2 only Cpu still present as of many other algo´s
have nice day
|
AltCoin-Mining @ Xubuntu 16.04 LTS
|
|
|
HexxoDev
|
|
February 25, 2017, 04:38:43 PM |
|
14.04 gcc 4.8 with intel avx works 16.04 gcc 5.4 with sse2 only Cpu still present as of many other algo´s
have nice day
Have noticed it is best to stick at 4.x to avoid issues with miners.
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
February 25, 2017, 06:50:02 PM |
|
14.04 gcc 4.8 with intel avx works 16.04 gcc 5.4 with sse2 only Cpu still present as of many other algo´s
have nice day
Have noticed it is best to stick at 4.x to avoid issues with miners. At least until I can figure out what's going on. I can setup a Ubuntu 16.04 VM but I've been busy making the code faster. Trying to fix gcc 5.4 and 6.3 while still developping on 4.8 would be a lot more work. [TLDR skip ahead] Right now my focus is on trying to do more AVX2 optimizing. As I learn more I get more ideas and some of them work out. I'm also experimenting with a mix of SSE2 and AVX2. Some operations are very difficult to perform while juggling 256 bits and are easier if done 128 at a time. There is some overhead with switching back and forth because the compiler has to maintain data integrity and move the data from xmm to ymm registers as necessary. The balance is if the AVX2 code can overcome this overhead. The more AVX2 code there is the less the overhead. I'm now testing this with Luffa. Most of the final transformation can easilly be done in AVX2. There is only one function that I haven't been able to get working in AVX2 so I just call the SSE2 version. Unforftunately it's a big function so thegain is limited for now. These kinds of optimizations apply to many algos. This is much more fun than trying to figure why stuff that works fine when compiled with gcc 4.8 goes to hell when compiled with 5.4 or 6.3. [TLDR start here] Issue status 1. gcc 5.4 hmq1725 crashes There is clearly a problem with hmq1725 but most of its code is shared with many other algos. Its unique code is straightforward and doesn't any nasty pointer casting, nothing that the other algos don't do as well. The anly clue that was specific to hmq1725 was it stack usage. That has been reduced but the problem still occurs. It's back to square one. I don't know whether the problem is in hmq1725 code or shared code. Whatever it is shows no symptoms when compiled with gcc 4.8 but corrupts the hash and violates the stack when compiled with gcc 5.4. 2. gcc 6.3 non-aes hodl code fails to compile. I thought of a possible workaround for the hodl compile issue. I can block out the non-aes code so the compiler doesn't see it when compiling for aes. It's the reverse of what I do to aes code when compiling on non-aes CPUs. It doesn't fix anything but will allow the compile to succeed on aes CPUs with the aes version of hodl avaiable. What happens on non-aes CPUs is anyone's guess.
|
|
|
|
HexxoDev
|
|
February 25, 2017, 07:16:57 PM |
|
Dont waste your time with gcc upgrades. Time will tell. Most of them can be only gcc bugs, not the code.
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
February 25, 2017, 08:04:37 PM Last edit: February 26, 2017, 02:55:57 AM by joblo |
|
@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.
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
February 25, 2017, 08:04:56 PM |
|
Dont waste your time with gcc upgrades. Time will tell. Most of them can be only gcc bugs, not the code.
I'm kinda hoping some of my upcoming changes magically make the problem disappear. Currently the optimized functions define all their internal data as scalar: u64, u32 or bytes. then cast them as vectors. I'm reversing that, defining them as vectors and only casting them as scalar when interfacing with the parent algo. all internal operations are vectored. If there is a subtle pointer mix up somewhere this change should flush it out. Lyra2 and Cubehash were previously converted, Luffa in 3.5.9, and the next release will have Groestl done. That will leave Echo and Simd, which coincidentally are used by hmq1725. The other functions use sph which is a reference standard of sorts and widely used by many other miners, notably cpuminer-multi as well as for CPU verification in GPU miners. So the're not likely the problem. Like you said, time will tell.
|
|
|
|
NameTaken
|
|
February 26, 2017, 03:56:47 AM |
|
The Dockerfile in the repo is horribly out of date so I created one for my use. FROM ubuntu:16.04 RUN BUILD_DEPS="build-essential \ libssl-dev \ libgmp-dev \ automake \ git" && \
apt-get update && \ apt-get install -y ${BUILD_DEPS} libcurl4-openssl-dev libjansson-dev && \ git clone --depth 1 https://github.com/JayDDee/cpuminer-opt.git && \ cd cpuminer-opt && \ ./autogen.sh && \ CFLAGS="-O3 -march=native -s -Wall -Wl,--build-id=none" \ CXXFLAGS="$CFLAGS -std=gnu++11 -fpermissive" \ ./configure --with-curl --with-crypto && \ make -j $(nproc) && \ make install && \ apt-get remove -y ${BUILD_DEPS} && \ apt-get autoremove -y && \ rm -rf /cpuminer-opt
ENTRYPOINT ["/usr/local/bin/cpuminer"] CMD ["-h"]
|
|
|
|
My9bot
|
|
February 26, 2017, 06:50:30 PM |
|
@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<unsigned short>::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<unsigned int>::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<unsigned short>::max()) ^ algo/hodl/serialize.h:263:62: error: macro "max" requires 2 arguments, but only 1 given else if (nSize <= std::numeric_limits<unsigned int>::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
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
February 26, 2017, 06:55:14 PM |
|
cpuminer-opt 3.5.10 is released. See OP, link in sig.
This release includes incremental improvements to many chained algos that use Groestl or Luffa. As usual the shorter chains like Deep and Qubit will see the biggest improvement while the longer chains like xevan and hmq1725 will be less noticeable. Cryptonight also sees a little boost.
There is a workaround for the compile error in non-aes hodl code when compiling with gcc 6.3. I hope it works, I don't have a gcc 6.3 environment.
There is nothing specific addressing the stack smashing in hmq1725, however the Groestl rewrite has cleaned up the code and reduced the potential for subtle pointer errors.
I would appreciate if the users who reported these issues could provide an update.
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
February 26, 2017, 07:00:00 PM |
|
There must be a mistake, the compiler is still trying to compile the code in hodl.cpp. With the change the file should be empty to the compiler if you're compiling for AES. I implementned the change in 3.5.10, so try that.
|
|
|
|
My9bot
|
|
February 26, 2017, 07:25:32 PM Last edit: February 26, 2017, 07:56:48 PM by My9bot |
|
There must be a mistake, the compiler is still trying to compile the code in hodl.cpp. With the change the file should be empty to the compiler if you're compiling for AES. I implementned the change in 3.5.10, so try that. 3.5.10 result : In file included from C:/msys64_3/mingw64/include/c++/6.3.0/bits/char_traits.h:39: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: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:0, 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_dist.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" requires 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" requires 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" requires 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" requires 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" requires 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" requires 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" requires 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" requires 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" requires 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" requires 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" requires 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" requires 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" requires 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" requires 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" requires 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" requires 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" requires 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" requires 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" requires 2 arguments, but only 1 given C:/msys64_3/mingw64/include/c++/6.3.0/limits:1570:85: error: macro "min" requires 2 arguments, but only 1 given C:/msys64_3/mingw64/include/c++/6.3.0/limits:1570:85: error: macro "max" requires 2 arguments, but only 1 given C:/msys64_3/mingw64/include/c++/6.3.0/limits:1570:85: error: macro "min" requires 2 arguments, but only 1 given C:/msys64_3/mingw64/include/c++/6.3.0/limits:1570:85: error: macro "max" requires 2 arguments, but only 1 given C:/msys64_3/mingw64/include/c++/6.3.0/limits:1598:11: error: macro "min" requires 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" requires 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" requires 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" requires 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" requires 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" requires 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:0, 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: macro "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: macro "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: macro "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: macro "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: macro "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: macro "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: macro "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: macro "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<unsigned short>::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<unsigned int>::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<unsigned short>::max()) ^ algo/hodl/serialize.h:263:62: error: macro "max" requires 2 arguments, but only 1 given else if (nSize <= std::numeric_limits<unsigned int>::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); ^~~~~~~~~~~~~~~~ mv -f algo/hodl/.deps/cpuminer-hodl-gate.Tpo algo/hodl/.deps/cpuminer-hodl-gate.Po g++ -DHAVE_CONFIG_H -I. -Iyes/include -fno-strict-aliasing -I./compat/jansson -I. -Iyes/include -O3 -march=native -Wall -std=gnu++11 -fpermissive -MT algo/hodl/cpuminer-hodl_uint256.o -MD -MP -MF algo/hodl/.deps/cpuminer-hodl_uint256.Tpo -c -o algo/hodl/cpuminer-hodl_uint256.o `test -f 'algo/hodl/hodl_uint256.cpp' || echo './'`algo/hodl/hodl_uint256.cpp mv -f algo/hodl/.deps/cpuminer-hodl_arith_uint256.Tpo algo/hodl/.deps/cpuminer-hodl_arith_uint256.Po 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:39: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::min' 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' declared 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 } ^ g++ -DHAVE_CONFIG_H -I. -Iyes/include -fno-strict-aliasing -I./compat/jansson -I. -Iyes/include -O3 -march=native -Wall -std=gnu++11 -fpermissive -MT algo/hodl/cpuminer-hash.o -MD -MP -MF algo/hodl/.deps/cpuminer-hash.Tpo -c -o algo/hodl/cpuminer-hash.o `test -f 'algo/hodl/hash.cpp' || echo './'`algo/hodl/hash.cpp make[2]: *** [Makefile:3381: algo/hodl/cpuminer-hodl.o] Fehler 1 make[2]: *** Es wird auf noch nicht beendete Prozesse gewartet.... mv -f algo/hodl/.deps/cpuminer-hodl_uint256.Tpo algo/hodl/.deps/cpuminer-hodl_uint256.Po mv -f algo/hodl/.deps/cpuminer-hash.Tpo algo/hodl/.deps/cpuminer-hash.Po mv -f algo/haval/.deps/cpuminer-haval.Tpo algo/haval/.deps/cpuminer-haval.Po make[2]: Verzeichnis „/home/Ich/cpuminer-opt-3.5.10“ wird verlassen make[1]: *** [Makefile:3542: all-recursive] Fehler 1 make[1]: Verzeichnis „/home/Ich/cpuminer-opt-3.5.10“ wird verlassen make: *** [Makefile:665: all] Fehler 2 C:\msys64_3\mingw64\bin\strip.exe: 'cpuminer': No such file
$ gcc -### -E - -march=native 2>&1 | sed -r '/cc1/!d;s/(")|(^.* - )//g'
-march=broadwell -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mrdseed -mprfchw -madx -mfxsr -mxsave -mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mno-clflushopt -mno-xsavec -mno-xsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-clwb -mno-mwaitx -mno-clzero -mno-pku --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=3072 -mtune=broadwell
same errors if using // don't compile on CPU with AES #ifndef NO_AES_NI ///////////////// NEW
#include "miner.h"
#endif ///////////////////////// NEW
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
February 26, 2017, 07:58:35 PM |
|
That's weird. The compiler doesn't see the NO_AES_NI macro.
You should be able to comment everything out until I figure this out.
|
|
|
|
|