redis unstable, oddly stable.

This commit is contained in:
Jrabbit
2011-06-29 02:54:00 +00:00
parent 7ba433c5eb
commit 1811c2412e
3 changed files with 126 additions and 0 deletions

View File

@@ -0,0 +1,105 @@
diff --git a/deps/hiredis/Makefile b/deps/hiredis/Makefile
index 2a84b9b..1225539 100644
--- a/deps/hiredis/Makefile
+++ b/deps/hiredis/Makefile
@@ -26,6 +26,15 @@ ifeq ($(uname_S),Darwin)
STLIBNAME?=libhiredis.a
STLIB_MAKE_CMD?=libtool -static -o ${STLIBNAME} - ${OBJ}
else
+ifeq ($(uname_S),Haiku)
+ CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings $(ARCH) $(PROF)
+ CCLINK?=-lroot -lnetwork
+ LDFLAGS?=-L. -Wl,-rpath,.
+ DYLIBNAME?=libhiredis.so
+ DYLIB_MAKE_CMD?=gcc -shared -Wl,-soname,${DYLIBNAME} -o ${DYLIBNAME} ${OBJ}
+ STLIBNAME?=libhiredis.a
+ STLIB_MAKE_CMD?=ar rcs ${STLIBNAME} ${OBJ}
+else
CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings $(ARCH) $(PROF)
CCLINK?=-lm -pthread
LDFLAGS?=-L. -Wl,-rpath,.
@@ -35,6 +44,7 @@ else
STLIB_MAKE_CMD?=ar rcs ${STLIBNAME} ${OBJ}
endif
endif
+endif
CCOPT= $(CFLAGS) $(CCLINK)
DEBUG?= -g -ggdb
diff --git a/src/Makefile b/src/Makefile
index 292255c..e6a6d87 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -15,12 +15,18 @@ endif
ifeq ($(uname_S),SunOS)
CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -Wall -W -D__EXTENSIONS__ -D_XPG6
CCLINK?=-ldl -lnsl -lsocket -lm -lpthread
- DEBUG?=-g -ggdb
+ DEBUG?=-g -ggdb
+else
+ifeq ($(uname_S),Haiku)
+ CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -Wall -W $(ARCH) $(PROF)
+ CCLINK?=-lroot -lnetwork
+ DEBUG?=-g -ggdb
else
CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -Wall -W $(ARCH) $(PROF)
CCLINK?=-lm -pthread
DEBUG?=-g -rdynamic -ggdb
endif
+endif
ifeq ($(USE_TCMALLOC),yes)
ALLOD_DEPS=
diff --git a/src/aof.c b/src/aof.c
index dbd0468..7a5d21f 100644
--- a/src/aof.c
+++ b/src/aof.c
@@ -25,7 +25,7 @@ void stopAppendOnly(void) {
int statloc;
if (kill(server.bgrewritechildpid,SIGKILL) != -1)
- wait3(&statloc,0,NULL);
+ waitpid(&statloc,0,NULL);
/* reset the buffer accumulating changes while the child saves */
sdsfree(server.bgrewritebuf);
server.bgrewritebuf = sdsempty();
diff --git a/src/redis.c b/src/redis.c
index 1a1f84f..4ecc873 100644
--- a/src/redis.c
+++ b/src/redis.c
@@ -646,7 +646,7 @@ int serverCron(struct aeEventLoop *eventLoop, long long id, void *clientData) {
int statloc;
pid_t pid;
- if ((pid = wait3(&statloc,WNOHANG,NULL)) != 0) {
+ if ((pid = waitpid(&statloc,WNOHANG,NULL)) != 0) {
int exitcode = WEXITSTATUS(statloc);
int bysignal = 0;
diff --git a/src/sha1.c b/src/sha1.c
index 26a5565..e90812e 100644
--- a/src/sha1.c
+++ b/src/sha1.c
@@ -27,6 +27,9 @@ A million repetitions of "a"
#if defined(__sun)
#include "solarisfixes.h"
#endif
+#ifdef __HAIKU__
+#include <stdint.h>
+#endif
#include "sha1.h"
#include "config.h"
diff --git a/src/util.c b/src/util.c
index f5a23af..2a6d18d 100644
--- a/src/util.c
+++ b/src/util.c
@@ -317,7 +317,7 @@ int d2string(char *buf, size_t len, double value) {
* integer printing function that is much faster. */
double min = -4503599627370495; /* (2^52)-1 */
double max = 4503599627370496; /* -(2^52) */
- if (val > min && val < max && value == ((double)((long long)value)))
+ if (value > min && value < max && value == ((double)((long long)value)))
len = ll2string(buf,len,(long long)value);
else
#endif

View File

@@ -4,6 +4,7 @@ SRC_URI= "http://redis.googlecode.com/files/redis-2.2.11.tar.gz"
REVISION = "1"
DEPEND=""
CHECKSUM_MD5= "5501c90ca02ae7ea93c34f067b3e0619"
STATUS_HAIKU="broken"
MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building."
BUILD {
cd redis-2.2.11

View File

@@ -0,0 +1,20 @@
HOMEPAGE= "http://redis.io/"
DESCRIPTION="Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets."
SRC_URI= "git://github.com/antirez/redis.git"
REVISION = "1"
DEPEND=""
STATUS_HAIKU="stable"
# CHECKSUM_MD5= "5501c90ca02ae7ea93c34f067b3e0619"
MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building."
BUILD {
cd redis
make PREFIX=`finddir B_COMMON_DIRECTORY`
}
INSTALL {
cd redis
make install PREFIX=`finddir B_COMMON_DIRECTORY`
}
LICENSE="BSD (3-clause)"
COPYRIGHT="2006-2010 Salvatore Sanfilippo"