Do you have any static linux builds for mining, (aarch64, I don’t care about which architecture) ? there’s a problem when compiling on Fedora 27 :
I just used build.sh to get this :
mv -f $depbase.Tpo $depbase.Po
value.c: In function 'int isnan(double)':
value.c:24:38: error: 'int isnan(double)' conflicts with a previous declaration
static JSON_INLINE int isnan(double x) { return x != x; }
^
In file included from /usr/include/c++/7/math.h:36:0,
from value.c:15:
/usr/include/c++/7/cmath:626:3: note: previous declaration 'constexpr bool std::isnan(double)'
isnan(double __x)
^~~~~
value.c: In function 'int isinf(double)':
value.c:27:38: error: 'int isinf(double)' conflicts with a previous declaration
static JSON_INLINE int isinf(double x) { return !isnan(x) && isnan(x - x); }
^
In file included from /usr/include/c++/7/math.h:36:0,
from value.c:15:
/usr/include/c++/7/cmath:599:3: note: previous declaration 'constexpr bool std::isinf(double)'
isinf(double __x)
^~~~~
value.c:27:57: error: call of overloaded 'isnan(double&)' is ambiguous
static JSON_INLINE int isinf(double x) { return !isnan(x) && isnan(x - x); }
^
value.c:24:24: note: candidate: int isnan(double)
static JSON_INLINE int isnan(double x) { return x != x; }
^~~~~
In file included from /usr/include/c++/7/math.h:36:0,
from value.c:15:
/usr/include/c++/7/cmath:618:3: note: candidate: constexpr bool std::isnan(float)
isnan(float __x)
^~~~~
/usr/include/c++/7/cmath:626:3: note: candidate: constexpr bool std::isnan(double)
isnan(double __x)
^~~~~
/usr/include/c++/7/cmath:631:3: note: candidate: constexpr bool std::isnan(long double)
isnan(long double __x)
^~~~~
value.c:27:73: error: call of overloaded 'isnan(double)' is ambiguous
static JSON_INLINE int isinf(double x) { return !isnan(x) && isnan(x - x); }
^
value.c:24:24: note: candidate: int isnan(double)
static JSON_INLINE int isnan(double x) { return x != x; }
^~~~~
In file included from /usr/include/c++/7/math.h:36:0,
from value.c:15:
/usr/include/c++/7/cmath:618:3: note: candidate: constexpr bool std::isnan(float)
isnan(float __x)
^~~~~
/usr/include/c++/7/cmath:626:3: note: candidate: constexpr bool std::isnan(double)
isnan(double __x)
^~~~~
/usr/include/c++/7/cmath:631:3: note: candidate: constexpr bool std::isnan(long double)
isnan(long double __x)
^~~~~
value.c: In function 'json_t* json_object()':
value.c:41:41: warning: invalid conversion from 'void*' to 'json_object_t*' [-fpermissive]
json_object_t *object = jsonp_malloc(sizeof(json_object_t));
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
value.c: In function 'json_t* json_object_get(const json_t*, const char*)':
value.c:83:25: warning: invalid conversion from 'void*' to 'json_t*' [-fpermissive]
return hashtable_get(&object->hashtable, key);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
value.c: In function 'const char* json_object_iter_key(void*)':
value.c:232:30: warning: invalid conversion from 'void*' to 'const char*' [-fpermissive]
return hashtable_iter_key(iter);
~~~~~~~~~~~~~~~~~~^~~~~~
value.c: In function 'json_t* json_array()':
value.c:325:39: warning: invalid conversion from 'void*' to 'json_array_t*' [-fpermissive]
json_array_t *array = jsonp_malloc(sizeof(json_array_t));
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
value.c:333:32: warning: invalid conversion from 'void*' to 'json_t**' [-fpermissive]
array->table = jsonp_malloc(array->size * sizeof(json_t *));
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
value.c: In function 'json_t** json_array_grow(json_array_t*, size_t, int)':
value.c:428:29: warning: invalid conversion from 'void*' to 'json_t**' [-fpermissive]
new_table = jsonp_malloc(new_size * sizeof(json_t *));
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
value.c: In function 'json_t* json_string_nocheck(const char*)':
value.c:630:26: warning: invalid conversion from 'void*' to 'json_string_t*' [-fpermissive]
string = jsonp_malloc(sizeof(json_string_t));
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
value.c: In function 'json_t* json_integer(json_int_t)':
value.c:708:43: warning: invalid conversion from 'void*' to 'json_integer_t*' [-fpermissive]
json_integer_t *integer = jsonp_malloc(sizeof(json_integer_t));
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
value.c: In function 'json_t* json_real(double)':
value.c:757:19: error: call of overloaded 'isnan(double&)' is ambiguous
if(isnan(value) || isinf(value))
^
value.c:24:24: note: candidate: int isnan(double)
static JSON_INLINE int isnan(double x) { return x != x; }
^~~~~
In file included from /usr/include/c++/7/math.h:36:0,
from value.c:15:
/usr/include/c++/7/cmath:618:3: note: candidate: constexpr bool std::isnan(float)
isnan(float __x)
^~~~~
/usr/include/c++/7/cmath:626:3: note: candidate: constexpr bool std::isnan(double)
isnan(double __x)
^~~~~
/usr/include/c++/7/cmath:631:3: note: candidate: constexpr bool std::isnan(long double)
isnan(long double __x)
^~~~~
value.c:757:35: error: call of overloaded 'isinf(double&)' is ambiguous
if(isnan(value) || isinf(value))
^
value.c:27:24: note: candidate: int isinf(double)
static JSON_INLINE int isinf(double x) { return !isnan(x) && isnan(x - x); }
^~~~~
In file included from /usr/include/c++/7/math.h:36:0,
from value.c:15:
/usr/include/c++/7/cmath:591:3: note: candidate: constexpr bool std::isinf(float)
isinf(float __x)
^~~~~
/usr/include/c++/7/cmath:599:3: note: candidate: constexpr bool std::isinf(double)
isinf(double __x)
^~~~~
/usr/include/c++/7/cmath:604:3: note: candidate: constexpr bool std::isinf(long double)
isinf(long double __x)
^~~~~
value.c:760:24: warning: invalid conversion from 'void*' to 'json_real_t*' [-fpermissive]
real = jsonp_malloc(sizeof(json_real_t));
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
value.c: In function 'int json_real_set(json_t*, double)':
value.c:779:42: error: call of overloaded 'isnan(double&)' is ambiguous
if(!json_is_real(json) || isnan(value) || isinf(value))
^
value.c:24:24: note: candidate: int isnan(double)
static JSON_INLINE int isnan(double x) { return x != x; }
^~~~~
In file included from /usr/include/c++/7/math.h:36:0,
from value.c:15:
/usr/include/c++/7/cmath:618:3: note: candidate: constexpr bool std::isnan(float)
isnan(float __x)
^~~~~
/usr/include/c++/7/cmath:626:3: note: candidate: constexpr bool std::isnan(double)
isnan(double __x)
^~~~~
/usr/include/c++/7/cmath:631:3: note: candidate: constexpr bool std::isnan(long double)
isnan(long double __x)
^~~~~
value.c:779:58: error: call of overloaded 'isinf(double&)' is ambiguous
if(!json_is_real(json) || isnan(value) || isinf(value))
^
value.c:27:24: note: candidate: int isinf(double)
static JSON_INLINE int isinf(double x) { return !isnan(x) && isnan(x - x); }
^~~~~
In file included from /usr/include/c++/7/math.h:36:0,
from value.c:15:
/usr/include/c++/7/cmath:591:3: note: candidate: constexpr bool std::isinf(float)
isinf(float __x)
^~~~~
/usr/include/c++/7/cmath:599:3: note: candidate: constexpr bool std::isinf(double)
isinf(double __x)
^~~~~
/usr/include/c++/7/cmath:604:3: note: candidate: constexpr bool std::isinf(long double)
isinf(long double __x)
^~~~~
make[3]: *** [Makefile:366: value.o] Error 1
make[3]: Leaving directory '/home/example/sources/app/cpuminer-multi-1.3.1-multi/compat/jansson'
make[2]: *** [Makefile:341: all-recursive] Error 1
make[2]: Leaving directory '/home/example/sources/app/cpuminer-multi-1.3.1-multi/compat'
make[1]: *** [Makefile:2476: all-recursive] Error 1
make[1]: Leaving directory '/home/example/sources/app/cpuminer-multi-1.3.1-multi'
make: *** [Makefile:567: all] Error 2
strip: 'cpuminer': No such file
$
I used dnf to install all run time and compile time dependencies. if I remove cmath declaration, I’m getting an overlapping definition error at link time