summaryrefslogtreecommitdiffstats
path: root/debian/patches/0004-Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0004-Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch')
-rw-r--r--debian/patches/0004-Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch139
1 files changed, 139 insertions, 0 deletions
diff --git a/debian/patches/0004-Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch b/debian/patches/0004-Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch
new file mode 100644
index 0000000..9f4b787
--- /dev/null
+++ b/debian/patches/0004-Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch
@@ -0,0 +1,139 @@
+From: Chris Lamb <lamby@debian.org>
+Date: Sat, 25 Aug 2018 17:52:13 +0200
+Subject: Add support for USE_SYSTEM_JEMALLOC flag.
+
+Forwarded: https://github.com/antirez/redis/pull/5279
+---
+ deps/Makefile | 2 ++
+ src/Makefile | 5 +++++
+ src/debug.c | 4 ++++
+ src/object.c | 5 +++++
+ src/sds.c | 4 ++++
+ src/zmalloc.c | 10 ++++++++++
+ src/zmalloc.h | 4 ++++
+ 7 files changed, 34 insertions(+)
+
+diff --git a/deps/Makefile b/deps/Makefile
+index 3bf0363..9b25947 100644
+--- a/deps/Makefile
++++ b/deps/Makefile
+@@ -39,7 +39,9 @@ distclean:
+ -(cd hiredis && $(MAKE) clean) > /dev/null || true
+ -(cd linenoise && $(MAKE) clean) > /dev/null || true
+ -(cd lua && $(MAKE) clean) > /dev/null || true
++ifneq ($(USE_SYSTEM_JEMALLOC),yes)
+ -(cd jemalloc && [ -f Makefile ] && $(MAKE) distclean) > /dev/null || true
++endif
+ -(cd hdr_histogram && $(MAKE) clean) > /dev/null || true
+ -(cd fpconv && $(MAKE) clean) > /dev/null || true
+ -(rm -f .make-*)
+diff --git a/src/Makefile b/src/Makefile
+index f81f892..527eef9 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -266,10 +266,15 @@ ifeq ($(MALLOC),tcmalloc_minimal)
+ endif
+
+ ifeq ($(MALLOC),jemalloc)
++ifeq ($(USE_SYSTEM_JEMALLOC),yes)
++ FINAL_CFLAGS+= -DUSE_JEMALLOC -I/usr/include/jemalloc/include
++ FINAL_LIBS := -ljemalloc $(FINAL_LIBS)
++else
+ DEPENDENCY_TARGETS+= jemalloc
+ FINAL_CFLAGS+= -DUSE_JEMALLOC -I../deps/jemalloc/include
+ FINAL_LIBS := ../deps/jemalloc/lib/libjemalloc.a $(FINAL_LIBS)
+ endif
++endif
+
+ # LIBSSL & LIBCRYPTO
+ LIBSSL_LIBS=
+diff --git a/src/debug.c b/src/debug.c
+index 684f692..5dcc0ac 100644
+--- a/src/debug.c
++++ b/src/debug.c
+@@ -73,6 +73,10 @@ void printCrashReport(void);
+ void bugReportEnd(int killViaSignal, int sig);
+ void logStackTrace(void *eip, int uplevel);
+
++#if defined(USE_JEMALLOC) && (USE_SYSTEM_JEMALLOC == yes)
++#define je_mallctl mallctl
++#endif
++
+ /* ================================= Debugging ============================== */
+
+ /* Compute the sha1 of string at 's' with 'len' bytes long.
+diff --git a/src/object.c b/src/object.c
+index 4b3526a..be80376 100644
+--- a/src/object.c
++++ b/src/object.c
+@@ -38,6 +38,11 @@
+ #define strtold(a,b) ((long double)strtod((a),(b)))
+ #endif
+
++#if defined(USE_JEMALLOC) && (USE_SYSTEM_JEMALLOC == yes)
++#define je_mallctl mallctl
++#define je_malloc_stats_print malloc_stats_print
++#endif
++
+ /* ===================== Creation and parsing of objects ==================== */
+
+ robj *createObject(int type, void *ptr) {
+diff --git a/src/sds.c b/src/sds.c
+index 2cc5b23..f70a29e 100644
+--- a/src/sds.c
++++ b/src/sds.c
+@@ -40,6 +40,10 @@
+ #include "sdsalloc.h"
+ #include "util.h"
+
++#if USE_SYSTEM_JEMALLOC == yes
++#define je_nallocx(size, flags) nallocx(size, flags)
++#endif
++
+ const char *SDS_NOINIT = "SDS_NOINIT";
+
+ static inline int sdsHdrSize(char type) {
+diff --git a/src/zmalloc.c b/src/zmalloc.c
+index bbfa386..244748e 100644
+--- a/src/zmalloc.c
++++ b/src/zmalloc.c
+@@ -80,6 +80,15 @@ void zlibc_free(void *ptr) {
+ #define realloc(ptr,size) tc_realloc(ptr,size)
+ #define free(ptr) tc_free(ptr)
+ #elif defined(USE_JEMALLOC)
++#if USE_SYSTEM_JEMALLOC == yes
++#define malloc(size) malloc(size)
++#define calloc(count,size) calloc(count,size)
++#define realloc(ptr,size) realloc(ptr,size)
++#define free(ptr) free(ptr)
++#define mallocx(size,flags) mallocx(size,flags)
++#define dallocx(ptr,flags) dallocx(ptr,flags)
++#define je_mallctl mallctl
++#else
+ #define malloc(size) je_malloc(size)
+ #define calloc(count,size) je_calloc(count,size)
+ #define realloc(ptr,size) je_realloc(ptr,size)
+@@ -87,6 +96,7 @@ void zlibc_free(void *ptr) {
+ #define mallocx(size,flags) je_mallocx(size,flags)
+ #define dallocx(ptr,flags) je_dallocx(ptr,flags)
+ #endif
++#endif
+
+ #define update_zmalloc_stat_alloc(__n) atomicIncr(used_memory,(__n))
+ #define update_zmalloc_stat_free(__n) atomicDecr(used_memory,(__n))
+diff --git a/src/zmalloc.h b/src/zmalloc.h
+index 491013a..cfc3905 100644
+--- a/src/zmalloc.h
++++ b/src/zmalloc.h
+@@ -50,7 +50,11 @@
+ #include <jemalloc/jemalloc.h>
+ #if (JEMALLOC_VERSION_MAJOR == 2 && JEMALLOC_VERSION_MINOR >= 1) || (JEMALLOC_VERSION_MAJOR > 2)
+ #define HAVE_MALLOC_SIZE 1
++#if USE_SYSTEM_JEMALLOC == yes
++#define zmalloc_size(p) malloc_usable_size(p)
++#else
+ #define zmalloc_size(p) je_malloc_usable_size(p)
++#endif
+ #else
+ #error "Newer version of jemalloc required"
+ #endif