Bitcoin Forum
November 03, 2024, 02:15:15 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 [105] 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 ... 197 »
  Print  
Author Topic: [LOCKED] cpuminer-opt v3.12.3, open source optimized multi-algo CPU miner  (Read 444058 times)
joblo (OP)
Legendary
*
Offline Offline

Activity: 1470
Merit: 1114


View Profile
February 23, 2017, 06:44:25 PM
 #2081

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.

AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
My9bot
Full Member
***
Offline Offline

Activity: 239
Merit: 100


View Profile
February 23, 2017, 06:46:15 PM
 #2082

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

I'm better with code than with words-SatoshiNakamoto
Espers [ESP]SiteOnBlockchain
joblo (OP)
Legendary
*
Offline Offline

Activity: 1470
Merit: 1114


View Profile
February 23, 2017, 06:54:39 PM
 #2083

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.

AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
My9bot
Full Member
***
Offline Offline

Activity: 239
Merit: 100


View Profile
February 23, 2017, 10:32:12 PM
 #2084

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.
Sad
same errors

I'm better with code than with words-SatoshiNakamoto
Espers [ESP]SiteOnBlockchain
arcueid
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
February 25, 2017, 03:49:19 AM
 #2085

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:
Code:
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.
Code:
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 Offline

Activity: 1470
Merit: 1114


View Profile
February 25, 2017, 02:01:02 PM
 #2086

[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.


AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
joblo (OP)
Legendary
*
Offline Offline

Activity: 1470
Merit: 1114


View Profile
February 25, 2017, 02:03:05 PM
 #2087

Has anyone retested hmq1725 to see if the stack smashing went away in v3.5.9
on Ubuntu 16.04?

AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
felixbrucker
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500


View Profile WWW
February 25, 2017, 02:36:52 PM
 #2088

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 Offline

Activity: 144
Merit: 100


Eager to learn


View Profile
February 25, 2017, 03:06:04 PM
 #2089

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
Full Member
***
Offline Offline

Activity: 154
Merit: 100


View Profile
February 25, 2017, 04:38:43 PM
 #2090

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 Offline

Activity: 1470
Merit: 1114


View Profile
February 25, 2017, 06:50:02 PM
 #2091

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.

AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
HexxoDev
Full Member
***
Offline Offline

Activity: 154
Merit: 100


View Profile
February 25, 2017, 07:16:57 PM
 #2092

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 Offline

Activity: 1470
Merit: 1114


View Profile
February 25, 2017, 08:04:37 PM
Last edit: February 26, 2017, 02:55:57 AM by joblo
 #2093

@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.

Code:
// 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.

AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
joblo (OP)
Legendary
*
Offline Offline

Activity: 1470
Merit: 1114


View Profile
February 25, 2017, 08:04:56 PM
 #2094

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.

AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
NameTaken
Hero Member
*****
Offline Offline

Activity: 630
Merit: 502


View Profile
February 26, 2017, 03:56:47 AM
 #2095

The Dockerfile in the repo is horribly out of date so I created one for my use.

Code:
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
Full Member
***
Offline Offline

Activity: 239
Merit: 100


View Profile
February 26, 2017, 06:50:30 PM
 #2096

@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.

Code:
// 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:
Code:
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

I'm better with code than with words-SatoshiNakamoto
Espers [ESP]SiteOnBlockchain
joblo (OP)
Legendary
*
Offline Offline

Activity: 1470
Merit: 1114


View Profile
February 26, 2017, 06:55:14 PM
 #2097

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.

AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
joblo (OP)
Legendary
*
Offline Offline

Activity: 1470
Merit: 1114


View Profile
February 26, 2017, 07:00:00 PM
 #2098



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.

AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
My9bot
Full Member
***
Offline Offline

Activity: 239
Merit: 100


View Profile
February 26, 2017, 07:25:32 PM
Last edit: February 26, 2017, 07:56:48 PM by My9bot
 #2099



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 :
Code:
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


Code:
$ 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
Code:
// don't compile on CPU with AES
#ifndef NO_AES_NI        ///////////////// NEW

#include "miner.h"

#endif          ///////////////////////// NEW

I'm better with code than with words-SatoshiNakamoto
Espers [ESP]SiteOnBlockchain
joblo (OP)
Legendary
*
Offline Offline

Activity: 1470
Merit: 1114


View Profile
February 26, 2017, 07:58:35 PM
 #2100

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.

AKA JayDDee, cpuminer-opt developer. https://github.com/JayDDee/cpuminer-opt
https://bitcointalk.org/index.php?topic=5226770.msg53865575#msg53865575
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
Pages: « 1 ... 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 [105] 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 ... 197 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!