diff mbox series

[v2,1/1] package/memcached: bump to version 1.5.19

Message ID 20191013182231.9248-1-bernd.kuhls@t-online.de
State Accepted
Commit 74cfd2c0a0901652ffc2b7d52fe36a7a8c42fedc
Headers show
Series [v2,1/1] package/memcached: bump to version 1.5.19 | expand

Commit Message

Bernd Kuhls Oct. 13, 2019, 6:22 p.m. UTC
From: Christopher McCrory <chrismcc@gmail.com>

Signed-off-by: Christopher McCrory <chrismcc@gmail.com>
[Bernd: bump version 1.5.19, added patches to fix cross build]
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
v2: split patches (Thomas)

 ...nfigure-Fix-cross-compilation-errors.patch | 142 ++++++++++++++++++
 ...onfigure-Simplify-pointer-size-check.patch |  76 ++++++++++
 package/memcached/memcached.hash              |   6 +-
 package/memcached/memcached.mk                |   5 +-
 4 files changed, 225 insertions(+), 4 deletions(-)
 create mode 100644 package/memcached/0001-configure-Fix-cross-compilation-errors.patch
 create mode 100644 package/memcached/0002-configure-Simplify-pointer-size-check.patch

Comments

Christopher McCrory Oct. 13, 2019, 8:44 p.m. UTC | #1
Hello

My time for working on these comes and goes. I've been busy with other
stuff for the last couple weeks. I'll most likely have time to revisit this
later this week or next week.


On Sun, Oct 13, 2019, 11:22 AM Bernd Kuhls <bernd.kuhls@t-online.de> wrote:

> From: Christopher McCrory <chrismcc@gmail.com>
>
> Signed-off-by: Christopher McCrory <chrismcc@gmail.com>
> [Bernd: bump version 1.5.19, added patches to fix cross build]
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
> v2: split patches (Thomas)
>
>  ...nfigure-Fix-cross-compilation-errors.patch | 142 ++++++++++++++++++
>  ...onfigure-Simplify-pointer-size-check.patch |  76 ++++++++++
>  package/memcached/memcached.hash              |   6 +-
>  package/memcached/memcached.mk                |   5 +-
>  4 files changed, 225 insertions(+), 4 deletions(-)
>  create mode 100644
> package/memcached/0001-configure-Fix-cross-compilation-errors.patch
>  create mode 100644
> package/memcached/0002-configure-Simplify-pointer-size-check.patch
>
> diff --git
> a/package/memcached/0001-configure-Fix-cross-compilation-errors.patch
> b/package/memcached/0001-configure-Fix-cross-compilation-errors.patch
> new file mode 100644
> index 0000000000..5c5d948325
> --- /dev/null
> +++ b/package/memcached/0001-configure-Fix-cross-compilation-errors.patch
> @@ -0,0 +1,142 @@
> +From 1146bf07624b5820b942b84b68e66f0d3dd25914 Mon Sep 17 00:00:00 2001
> +From: Ola Jeppsson <ola.jeppsson@gmail.com>
> +Date: Mon, 7 Oct 2019 18:07:30 -0400
> +Subject: [PATCH] configure: Fix cross-compilation errors
> +
> +AC_RUN_IFELSE does not work when cross-compiling so we need to provide
> +fallback methods for those cases.
> +
> +I tried to use constructs that work with Autoconf 2.52.
> +Alas, I wasn't able to generate a working build system with that version.
> +
> +Autoconf 2.58 / Automake 1.7.9 is the earliest combo that I could get
> +to work (with and without this patch).
> +Perhaps it's time for a slight bump for the required version numbers?
> +
> +Cross-compiles sucessfully against:
> +riscv64-unknown-linux-gnu
> +
> +Downloaded from upstream PR:
> +https://github.com/memcached/memcached/pull/552
> +
> +Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> +---
> + configure.ac | 80 +++++++++++++++++++++++++++-------------------------
> + 1 file changed, 41 insertions(+), 39 deletions(-)
> +
> +diff --git a/configure.ac b/configure.ac
> +index fb78fc5..27dc939 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -264,23 +264,42 @@ return sizeof(void*) == 8 ? 0 : 1;
> +     ],[
> +       CFLAGS="-m64 $org_cflags"
> +     ],[
> +-    AC_MSG_ERROR([Don't know how to build a 64-bit object.])
> ++      AC_MSG_ERROR([Don't know how to build a 64-bit object.])
> ++    ],[
> ++       dnl cross compile
> ++       AC_MSG_WARN([Assuming no extra CFLAGS are required for
> cross-compiling 64bit version.])
> +     ])
> + fi
> +
> + dnl If data pointer is 64bit or not.
> +-AC_RUN_IFELSE(
> +-  [AC_LANG_PROGRAM([], [dnl
> +-return sizeof(void*) == 8 ? 0 : 1;
> +-  ])
> +-],[
> +-  have_64bit_ptr=yes
> +-],[
> ++AC_CHECK_HEADERS([stdint.h])
> ++AS_IF([test -z "$have_64bit_ptr"],
> ++  [AC_RUN_IFELSE(
> ++     [AC_LANG_PROGRAM([], [return sizeof(void*) == 8 ? 0 : 1;])],
> ++     [have_64bit_ptr=yes ],
> ++     [have_64bit_ptr=no],
> ++     [dnl cross compile (this test requires C99)
> ++      AS_IF([test "x$ac_cv_header_stdint_h" = xyes],
> ++        [AC_COMPILE_IFELSE(
> ++           [AC_LANG_PROGRAM([
> ++              #include <stdint.h>
> ++              #if UINTPTR_MAX == 0xFFFFFFFFFFFFFFFFUL
> ++              /* 64 bit pointer */
> ++              #else
> ++              #error 32 bit pointer
> ++              #endif
> ++            ], [])],
> ++            [have_64bit_ptr=yes],
> ++            [have_64bit_ptr=no])],
> ++        [have_64bit_ptr=unknown])
> ++     ])
> + ])
> +-
> +-if test $have_64bit_ptr = yes; then
> ++AS_IF([test "$have_64bit_ptr" = "unknown" ],[
> ++  AC_MSG_ERROR([Cannot detect pointer size. Must pass
> have_64bit_ptr={yes,no} to configure.])
> ++])
> ++AS_IF([test "$have_64bit_ptr" = yes],[
> +   AC_DEFINE(HAVE_64BIT_PTR, 1, [data pointer is 64bit])
> +-fi
> ++])
> +
> + # Issue 213: Search for clock_gettime to help people linking
> + #            with a static version of libevent
> +@@ -570,30 +589,10 @@ fi
> + AC_C_SOCKLEN_T
> +
> + dnl Check if we're a little-endian or a big-endian system, needed by
> hash code
> +-AC_DEFUN([AC_C_ENDIAN],
> +-[AC_CACHE_CHECK(for endianness, ac_cv_c_endian,
> +-[
> +-  AC_RUN_IFELSE(
> +-    [AC_LANG_PROGRAM([], [dnl
> +-        long val = 1;
> +-        char *c = (char *) &val;
> +-        exit(*c == 1);
> +-    ])
> +-  ],[
> +-    ac_cv_c_endian=big
> +-  ],[
> +-    ac_cv_c_endian=little
> +-  ])
> +-])
> +-if test $ac_cv_c_endian = big; then
> +-  AC_DEFINE(ENDIAN_BIG, 1, [machine is bigendian])
> +-fi
> +-if test $ac_cv_c_endian = little; then
> +-  AC_DEFINE(ENDIAN_LITTLE, 1, [machine is littleendian])
> +-fi
> +-])
> +-
> +-AC_C_ENDIAN
> ++AC_C_BIGENDIAN(
> ++  [AC_DEFINE(ENDIAN_BIG, 1, [machine is bigendian])],
> ++  [AC_DEFINE(ENDIAN_LITTLE, 1, [machine is littleendian])],
> ++  [AC_MSG_ERROR([Cannot detect endianness. Must pass
> ac_cv_c_bigendian={yes,no} to configure.])])
> +
> + AC_DEFUN([AC_C_HTONLL],
> + [
> +@@ -670,12 +669,15 @@ AC_DEFUN([AC_C_ALIGNMENT],
> +   ],[
> +     ac_cv_c_alignment=need
> +   ],[
> +-    ac_cv_c_alignment=need
> ++    dnl cross compile
> ++    ac_cv_c_alignment=maybe
> +   ])
> + ])
> +-if test $ac_cv_c_alignment = need; then
> +-  AC_DEFINE(NEED_ALIGN, 1, [Machine need alignment])
> +-fi
> ++AS_IF([test $ac_cv_c_alignment = need],
> ++  [AC_DEFINE(NEED_ALIGN, 1, [Machine need alignment])])
> ++AS_IF([test $ac_cv_c_alignment = maybe],
> ++  [AC_MSG_WARN([Assuming aligned access is required when
> cross-compiling])
> ++   AC_DEFINE(NEED_ALIGN, 1, [Machine need alignment])])
> + ])
> +
> + AC_C_ALIGNMENT
> +--
> +2.20.1
> +
> diff --git
> a/package/memcached/0002-configure-Simplify-pointer-size-check.patch
> b/package/memcached/0002-configure-Simplify-pointer-size-check.patch
> new file mode 100644
> index 0000000000..1a5dc31963
> --- /dev/null
> +++ b/package/memcached/0002-configure-Simplify-pointer-size-check.patch
> @@ -0,0 +1,76 @@
> +From ec7f3bc97c53578d5ca332b9e86c4d08d155c5a0 Mon Sep 17 00:00:00 2001
> +From: Ola Jeppsson <ola.jeppsson@gmail.com>
> +Date: Mon, 7 Oct 2019 19:57:46 -0400
> +Subject: [PATCH] configure: Simplify pointer size check
> +
> +Tested with:
> +Autoconf 2.59 / Automake 1.7.9
> +Autoconf 2.69 / Automake 1.16.1
> +
> +Downloaded from upstream PR:
> +https://github.com/memcached/memcached/pull/552
> +
> +Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> +---
> + configure.ac | 31 ++-----------------------------
> + restart.h    |  2 +-
> + 2 files changed, 3 insertions(+), 30 deletions(-)
> +
> +diff --git a/configure.ac b/configure.ac
> +index 27dc939..7e5bd5d 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -271,35 +271,8 @@ return sizeof(void*) == 8 ? 0 : 1;
> +     ])
> + fi
> +
> +-dnl If data pointer is 64bit or not.
> +-AC_CHECK_HEADERS([stdint.h])
> +-AS_IF([test -z "$have_64bit_ptr"],
> +-  [AC_RUN_IFELSE(
> +-     [AC_LANG_PROGRAM([], [return sizeof(void*) == 8 ? 0 : 1;])],
> +-     [have_64bit_ptr=yes ],
> +-     [have_64bit_ptr=no],
> +-     [dnl cross compile (this test requires C99)
> +-      AS_IF([test "x$ac_cv_header_stdint_h" = xyes],
> +-        [AC_COMPILE_IFELSE(
> +-           [AC_LANG_PROGRAM([
> +-              #include <stdint.h>
> +-              #if UINTPTR_MAX == 0xFFFFFFFFFFFFFFFFUL
> +-              /* 64 bit pointer */
> +-              #else
> +-              #error 32 bit pointer
> +-              #endif
> +-            ], [])],
> +-            [have_64bit_ptr=yes],
> +-            [have_64bit_ptr=no])],
> +-        [have_64bit_ptr=unknown])
> +-     ])
> +-])
> +-AS_IF([test "$have_64bit_ptr" = "unknown" ],[
> +-  AC_MSG_ERROR([Cannot detect pointer size. Must pass
> have_64bit_ptr={yes,no} to configure.])
> +-])
> +-AS_IF([test "$have_64bit_ptr" = yes],[
> +-  AC_DEFINE(HAVE_64BIT_PTR, 1, [data pointer is 64bit])
> +-])
> ++dnl Check if data pointer is 64bit or not
> ++AC_CHECK_SIZEOF([void *])
> +
> + # Issue 213: Search for clock_gettime to help people linking
> + #            with a static version of libevent
> +diff --git a/restart.h b/restart.h
> +index 76cd0a8..9de5096 100644
> +--- a/restart.h
> ++++ b/restart.h
> +@@ -4,7 +4,7 @@
> + #define RESTART_TAG_MAXLEN 255
> +
> + // Track the pointer size for restart fiddling.
> +-#ifdef HAVE_64BIT_PTR
> ++#if SIZEOF_VOID_P == 8
> +     typedef uint64_t mc_ptr_t;
> + #else
> +     typedef uint32_t mc_ptr_t;
> +--
> +2.20.1
> +
> diff --git a/package/memcached/memcached.hash
> b/package/memcached/memcached.hash
> index df430cf4ff..98e47d6c07 100644
> --- a/package/memcached/memcached.hash
> +++ b/package/memcached/memcached.hash
> @@ -1,6 +1,6 @@
> -# From http://www.memcached.org/files/memcached-1.5.12.tar.gz.sha1
> -sha1 <http://www.memcached.org/files/memcached-1.5.12.tar.gz.sha1-sha1>
> f67096ba64b0c47668bcad5b680010c4f8987d4c  memcached-1.5.12.tar.gz
> +# From http://www.memcached.org/files/memcached-1.5.19.tar.gz.sha1
> +sha1 <http://www.memcached.org/files/memcached-1.5.19.tar.gz.sha1+sha1>
> 14e6a02e743838696fcb620edf6a2fd7e60cabec  memcached-1.5.19.tar.gz
>
>  # Locally computed
> -sha256 c02f97d5685617b209fbe25f3464317b234d765b427d254c2413410a5c095b29
> memcached-1.5.12.tar.gz
> +sha256 3ddcdaa2d14d215f3111a7448b79c889c57618a26e97ad989581f1880a5a4be0
> memcached-1.5.19.tar.gz
>  sha256 bc887c4ad8051fe690ace9528fe37a2e0bb362e6d963331d82e845ca9b585a0c
> COPYING
> diff --git a/package/memcached/memcached.mk b/package/memcached/
> memcached.mk
> index b7c36ec155..9b362d2a36 100644
> --- a/package/memcached/memcached.mk
> +++ b/package/memcached/memcached.mk
> @@ -4,13 +4,16 @@
>  #
>
>  ################################################################################
>
> -MEMCACHED_VERSION = 1.5.12
> +MEMCACHED_VERSION = 1.5.19
>  MEMCACHED_SITE = http://www.memcached.org/files
>  MEMCACHED_DEPENDENCIES = libevent
>  MEMCACHED_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99'
>  MEMCACHED_CONF_OPTS = --disable-coverage
>  MEMCACHED_LICENSE = BSD-3-Clause
>  MEMCACHED_LICENSE_FILES = COPYING
> +# 0001-configure-Fix-cross-compilation-errors.patch
> +# 0002-configure-Simplify-pointer-size-check.patch
> +MEMCACHED_AUTORECONF = YES
>
>  ifeq ($(BR2_ENDIAN),"BIG")
>  MEMCACHED_CONF_ENV += ac_cv_c_endian=big
> --
> 2.20.1
>
>
Peter Korsgaard Oct. 15, 2019, 9:23 a.m. UTC | #2
>>>>> "Bernd" == Bernd Kuhls <bernd.kuhls@t-online.de> writes:

 > From: Christopher McCrory <chrismcc@gmail.com>
 > Signed-off-by: Christopher McCrory <chrismcc@gmail.com>
 > [Bernd: bump version 1.5.19, added patches to fix cross build]
 > Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
 > ---
 > v2: split patches (Thomas)

Committed, thanks.
diff mbox series

Patch

diff --git a/package/memcached/0001-configure-Fix-cross-compilation-errors.patch b/package/memcached/0001-configure-Fix-cross-compilation-errors.patch
new file mode 100644
index 0000000000..5c5d948325
--- /dev/null
+++ b/package/memcached/0001-configure-Fix-cross-compilation-errors.patch
@@ -0,0 +1,142 @@ 
+From 1146bf07624b5820b942b84b68e66f0d3dd25914 Mon Sep 17 00:00:00 2001
+From: Ola Jeppsson <ola.jeppsson@gmail.com>
+Date: Mon, 7 Oct 2019 18:07:30 -0400
+Subject: [PATCH] configure: Fix cross-compilation errors
+
+AC_RUN_IFELSE does not work when cross-compiling so we need to provide
+fallback methods for those cases.
+
+I tried to use constructs that work with Autoconf 2.52.
+Alas, I wasn't able to generate a working build system with that version.
+
+Autoconf 2.58 / Automake 1.7.9 is the earliest combo that I could get
+to work (with and without this patch).
+Perhaps it's time for a slight bump for the required version numbers?
+
+Cross-compiles sucessfully against:
+riscv64-unknown-linux-gnu
+
+Downloaded from upstream PR:
+https://github.com/memcached/memcached/pull/552
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+---
+ configure.ac | 80 +++++++++++++++++++++++++++-------------------------
+ 1 file changed, 41 insertions(+), 39 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index fb78fc5..27dc939 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -264,23 +264,42 @@ return sizeof(void*) == 8 ? 0 : 1;
+     ],[
+       CFLAGS="-m64 $org_cflags"
+     ],[
+-    AC_MSG_ERROR([Don't know how to build a 64-bit object.])
++      AC_MSG_ERROR([Don't know how to build a 64-bit object.])
++    ],[
++       dnl cross compile
++       AC_MSG_WARN([Assuming no extra CFLAGS are required for cross-compiling 64bit version.])
+     ])
+ fi
+ 
+ dnl If data pointer is 64bit or not.
+-AC_RUN_IFELSE(
+-  [AC_LANG_PROGRAM([], [dnl
+-return sizeof(void*) == 8 ? 0 : 1;
+-  ])
+-],[
+-  have_64bit_ptr=yes
+-],[
++AC_CHECK_HEADERS([stdint.h])
++AS_IF([test -z "$have_64bit_ptr"],
++  [AC_RUN_IFELSE(
++     [AC_LANG_PROGRAM([], [return sizeof(void*) == 8 ? 0 : 1;])],
++     [have_64bit_ptr=yes ],
++     [have_64bit_ptr=no],
++     [dnl cross compile (this test requires C99)
++      AS_IF([test "x$ac_cv_header_stdint_h" = xyes],
++        [AC_COMPILE_IFELSE(
++           [AC_LANG_PROGRAM([
++              #include <stdint.h>
++              #if UINTPTR_MAX == 0xFFFFFFFFFFFFFFFFUL
++              /* 64 bit pointer */
++              #else
++              #error 32 bit pointer
++              #endif
++            ], [])],
++            [have_64bit_ptr=yes],
++            [have_64bit_ptr=no])],
++        [have_64bit_ptr=unknown])
++     ])
+ ])
+-
+-if test $have_64bit_ptr = yes; then
++AS_IF([test "$have_64bit_ptr" = "unknown" ],[
++  AC_MSG_ERROR([Cannot detect pointer size. Must pass have_64bit_ptr={yes,no} to configure.])
++])
++AS_IF([test "$have_64bit_ptr" = yes],[
+   AC_DEFINE(HAVE_64BIT_PTR, 1, [data pointer is 64bit])
+-fi
++])
+ 
+ # Issue 213: Search for clock_gettime to help people linking
+ #            with a static version of libevent
+@@ -570,30 +589,10 @@ fi
+ AC_C_SOCKLEN_T
+ 
+ dnl Check if we're a little-endian or a big-endian system, needed by hash code
+-AC_DEFUN([AC_C_ENDIAN],
+-[AC_CACHE_CHECK(for endianness, ac_cv_c_endian,
+-[
+-  AC_RUN_IFELSE(
+-    [AC_LANG_PROGRAM([], [dnl
+-        long val = 1;
+-        char *c = (char *) &val;
+-        exit(*c == 1);
+-    ])
+-  ],[
+-    ac_cv_c_endian=big
+-  ],[
+-    ac_cv_c_endian=little
+-  ])
+-])
+-if test $ac_cv_c_endian = big; then
+-  AC_DEFINE(ENDIAN_BIG, 1, [machine is bigendian])
+-fi
+-if test $ac_cv_c_endian = little; then
+-  AC_DEFINE(ENDIAN_LITTLE, 1, [machine is littleendian])
+-fi
+-])
+-
+-AC_C_ENDIAN
++AC_C_BIGENDIAN(
++  [AC_DEFINE(ENDIAN_BIG, 1, [machine is bigendian])],
++  [AC_DEFINE(ENDIAN_LITTLE, 1, [machine is littleendian])],
++  [AC_MSG_ERROR([Cannot detect endianness. Must pass ac_cv_c_bigendian={yes,no} to configure.])])
+ 
+ AC_DEFUN([AC_C_HTONLL],
+ [
+@@ -670,12 +669,15 @@ AC_DEFUN([AC_C_ALIGNMENT],
+   ],[
+     ac_cv_c_alignment=need
+   ],[
+-    ac_cv_c_alignment=need
++    dnl cross compile
++    ac_cv_c_alignment=maybe
+   ])
+ ])
+-if test $ac_cv_c_alignment = need; then
+-  AC_DEFINE(NEED_ALIGN, 1, [Machine need alignment])
+-fi
++AS_IF([test $ac_cv_c_alignment = need],
++  [AC_DEFINE(NEED_ALIGN, 1, [Machine need alignment])])
++AS_IF([test $ac_cv_c_alignment = maybe],
++  [AC_MSG_WARN([Assuming aligned access is required when cross-compiling])
++   AC_DEFINE(NEED_ALIGN, 1, [Machine need alignment])])
+ ])
+ 
+ AC_C_ALIGNMENT
+-- 
+2.20.1
+
diff --git a/package/memcached/0002-configure-Simplify-pointer-size-check.patch b/package/memcached/0002-configure-Simplify-pointer-size-check.patch
new file mode 100644
index 0000000000..1a5dc31963
--- /dev/null
+++ b/package/memcached/0002-configure-Simplify-pointer-size-check.patch
@@ -0,0 +1,76 @@ 
+From ec7f3bc97c53578d5ca332b9e86c4d08d155c5a0 Mon Sep 17 00:00:00 2001
+From: Ola Jeppsson <ola.jeppsson@gmail.com>
+Date: Mon, 7 Oct 2019 19:57:46 -0400
+Subject: [PATCH] configure: Simplify pointer size check
+
+Tested with:
+Autoconf 2.59 / Automake 1.7.9
+Autoconf 2.69 / Automake 1.16.1
+
+Downloaded from upstream PR:
+https://github.com/memcached/memcached/pull/552
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+---
+ configure.ac | 31 ++-----------------------------
+ restart.h    |  2 +-
+ 2 files changed, 3 insertions(+), 30 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 27dc939..7e5bd5d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -271,35 +271,8 @@ return sizeof(void*) == 8 ? 0 : 1;
+     ])
+ fi
+ 
+-dnl If data pointer is 64bit or not.
+-AC_CHECK_HEADERS([stdint.h])
+-AS_IF([test -z "$have_64bit_ptr"],
+-  [AC_RUN_IFELSE(
+-     [AC_LANG_PROGRAM([], [return sizeof(void*) == 8 ? 0 : 1;])],
+-     [have_64bit_ptr=yes ],
+-     [have_64bit_ptr=no],
+-     [dnl cross compile (this test requires C99)
+-      AS_IF([test "x$ac_cv_header_stdint_h" = xyes],
+-        [AC_COMPILE_IFELSE(
+-           [AC_LANG_PROGRAM([
+-              #include <stdint.h>
+-              #if UINTPTR_MAX == 0xFFFFFFFFFFFFFFFFUL
+-              /* 64 bit pointer */
+-              #else
+-              #error 32 bit pointer
+-              #endif
+-            ], [])],
+-            [have_64bit_ptr=yes],
+-            [have_64bit_ptr=no])],
+-        [have_64bit_ptr=unknown])
+-     ])
+-])
+-AS_IF([test "$have_64bit_ptr" = "unknown" ],[
+-  AC_MSG_ERROR([Cannot detect pointer size. Must pass have_64bit_ptr={yes,no} to configure.])
+-])
+-AS_IF([test "$have_64bit_ptr" = yes],[
+-  AC_DEFINE(HAVE_64BIT_PTR, 1, [data pointer is 64bit])
+-])
++dnl Check if data pointer is 64bit or not
++AC_CHECK_SIZEOF([void *])
+ 
+ # Issue 213: Search for clock_gettime to help people linking
+ #            with a static version of libevent
+diff --git a/restart.h b/restart.h
+index 76cd0a8..9de5096 100644
+--- a/restart.h
++++ b/restart.h
+@@ -4,7 +4,7 @@
+ #define RESTART_TAG_MAXLEN 255
+ 
+ // Track the pointer size for restart fiddling.
+-#ifdef HAVE_64BIT_PTR
++#if SIZEOF_VOID_P == 8
+     typedef uint64_t mc_ptr_t;
+ #else
+     typedef uint32_t mc_ptr_t;
+-- 
+2.20.1
+
diff --git a/package/memcached/memcached.hash b/package/memcached/memcached.hash
index df430cf4ff..98e47d6c07 100644
--- a/package/memcached/memcached.hash
+++ b/package/memcached/memcached.hash
@@ -1,6 +1,6 @@ 
-# From http://www.memcached.org/files/memcached-1.5.12.tar.gz.sha1
-sha1 f67096ba64b0c47668bcad5b680010c4f8987d4c  memcached-1.5.12.tar.gz
+# From http://www.memcached.org/files/memcached-1.5.19.tar.gz.sha1
+sha1 14e6a02e743838696fcb620edf6a2fd7e60cabec  memcached-1.5.19.tar.gz
 
 # Locally computed
-sha256 c02f97d5685617b209fbe25f3464317b234d765b427d254c2413410a5c095b29  memcached-1.5.12.tar.gz
+sha256 3ddcdaa2d14d215f3111a7448b79c889c57618a26e97ad989581f1880a5a4be0  memcached-1.5.19.tar.gz
 sha256 bc887c4ad8051fe690ace9528fe37a2e0bb362e6d963331d82e845ca9b585a0c  COPYING
diff --git a/package/memcached/memcached.mk b/package/memcached/memcached.mk
index b7c36ec155..9b362d2a36 100644
--- a/package/memcached/memcached.mk
+++ b/package/memcached/memcached.mk
@@ -4,13 +4,16 @@ 
 #
 ################################################################################
 
-MEMCACHED_VERSION = 1.5.12
+MEMCACHED_VERSION = 1.5.19
 MEMCACHED_SITE = http://www.memcached.org/files
 MEMCACHED_DEPENDENCIES = libevent
 MEMCACHED_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99'
 MEMCACHED_CONF_OPTS = --disable-coverage
 MEMCACHED_LICENSE = BSD-3-Clause
 MEMCACHED_LICENSE_FILES = COPYING
+# 0001-configure-Fix-cross-compilation-errors.patch
+# 0002-configure-Simplify-pointer-size-check.patch
+MEMCACHED_AUTORECONF = YES
 
 ifeq ($(BR2_ENDIAN),"BIG")
 MEMCACHED_CONF_ENV += ac_cv_c_endian=big