Link with pthreads lib, if present. Remove GNU-specific asprintf usage.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 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
diff --git a/Makefile.am b/Makefile.am
index fbb3112..3f9282c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,5 +7,5 @@ EXTRA_DIST = sha256_generic.c
minerd_SOURCES = util.c cpu-miner.c miner.h
minerd_LDFLAGS = -pthread
-minerd_LDADD = @LIBCURL@ @JANSSON_LIBS@
+minerd_LDADD = @LIBCURL@ @JANSSON_LIBS@ @PTHREAD_LIBS@
diff --git a/configure.ac b/configure.ac
index 7ae9888..ce4272b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12,11 +12,13 @@ dnl Checks for programs
AC_PROG_CC
AC_PROG_GCC_TRADITIONAL
AM_PROG_CC_C_O
+AC_PROG_RANLIB
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_LIB(jansson, json_loads, JANSSON_LIBS=-ljansson)
+AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIBS=-lpthread)
PKG_PROG_PKG_CONFIG()
@@ -24,6 +26,7 @@ LIBCURL_CHECK_CONFIG(, 7.10.1, ,
[AC_MSG_ERROR([Missing required libcurl >= 7.10.1])])
AC_SUBST(JANSSON_LIBS)
+AC_SUBST(PTHREAD_LIBS)
AC_CONFIG_FILES([
Makefile
diff --git a/cpu-miner.c b/cpu-miner.c
index 2b404af..da6e007 100644
--- a/cpu-miner.c
+++ b/cpu-miner.c
@@ -8,7 +8,6 @@
* any later version. See COPYING for more details.
*/
-#define _GNU_SOURCE
#include "cpuminer-config.h"
#include <stdio.h>
@@ -136,8 +135,9 @@ err_out:
static void submit_work(struct work *work)
{
- char *hexstr = NULL, *s = NULL;
+ char *hexstr = NULL;
json_t *val, *res;
+ char s[256];
printf("PROOF OF WORK FOUND? submitting...\n");
@@ -147,12 +147,9 @@ static void submit_work(struct work *work)
goto out;
/* build JSON-RPC request */
- if (asprintf(&s,
- "{\"method\": \"getwork\", \"params\": [ \"%s\" ], \"id\":1}\r\n",
- hexstr) < 0) {
- fprintf(stderr, "asprintf failed\n");
- goto out;
- }
+ sprintf(s,
+ "{\"method\": \"getwork\", \"params\": [ \"%s\" ], \"id\":1}\r\n",
+ hexstr);
if (opt_debug)
fprintf(stderr, "DBG: sending RPC call:\n%s", s);
@@ -172,7 +169,6 @@ static void submit_work(struct work *work)
json_decref(val);
out:
- free(s);
free(hexstr);
}