~alpine/aports

1

[alpine-aports] main/php-memcache: Add gcc5 patch to fix relocation errors

Olivier Mauras <olivier@mauras.ch>
Details
Message ID
<20160201080837.cb2dfb4b7b0e28d66e9b11a5@mauras.ch>
Sender timestamp
1454310517
DKIM signature
missing
Download raw message
Patch: +104 -5
>From 5dfde24873b4c219136944ba884653b7255cfabb Mon Sep 17 00:00:00 2001
From: Olivier Mauras <olivier@mauras.ch>
Date: Mon, 1 Feb 2016 08:02:50 +0100
Subject: [PATCH] main/php-memcache: Add gcc5 patch to fix relocation errors
 Error relocating /usr/lib/php/modules/memcache.so: mmc_buffer_alloc: symbol
 not found in Unknown on line 0

---
 main/php-memcache/APKBUILD            | 25 ++++++++---
 main/php-memcache/memcache-gcc5.patch | 84 +++++++++++++++++++++++++++++++++++
 2 files changed, 104 insertions(+), 5 deletions(-)
 create mode 100644 main/php-memcache/memcache-gcc5.patch

diff --git a/main/php-memcache/APKBUILD b/main/php-memcache/APKBUILD
index af5eaf5..7584e84 100644
--- a/main/php-memcache/APKBUILD
+++ b/main/php-memcache/APKBUILD
@@ -4,7 +4,7 @@ pkgname=php-memcache
_pkgreal=memcache
pkgver=3.0.8
_pkgver=${pkgver/_rc/RC}
pkgrel=3
pkgrel=4
pkgdesc="PHP extension memcache"
url="http://pecl.php.net/package/$_pkgreal"
arch="all"
@@ -14,10 +14,22 @@ pecldepends="php-dev autoconf"
makedepends="$pecldepends zlib-dev"
install=""
subpackages=""
source="http://pecl.php.net/get/$_pkgreal-$_pkgver.tgz"
source="http://pecl.php.net/get/$_pkgreal-$_pkgver.tgz
	memcache-gcc5.patch"

_builddir="$srcdir"/$_pkgreal-$_pkgver

prepare() {
        local i
        cd "$_builddir"
        update_config_sub || return 1
        for i in $source; do
                case $i in
                *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
                esac
        done
}

build() {
	cd "$_builddir"
	phpize || return 1
@@ -32,6 +44,9 @@ package() {
	echo "extension=$_pkgreal.so" > "$pkgdir"/etc/php/conf.d/$_pkgreal.ini
}

md5sums="24505e9b263d2c77f8ae5e9b4725e7d1  memcache-3.0.8.tgz"
sha256sums="2cae5b423ffbfd33a259829849f6000d4db018debe3e29ecf3056f06642e8311  memcache-3.0.8.tgz"
sha512sums="916c6b21ab7c1021128626c0df35ef0b83cb76b6115fe7c45b003ca4f78ad9484bf3c998bc7ebdee19f84349ff1e56759f74e75aee5bc70b1de9a03c45a99bc3  memcache-3.0.8.tgz"
md5sums="24505e9b263d2c77f8ae5e9b4725e7d1  memcache-3.0.8.tgz
593ffa37243c93ccf683fc25c34aa754  memcache-gcc5.patch"
sha256sums="2cae5b423ffbfd33a259829849f6000d4db018debe3e29ecf3056f06642e8311  memcache-3.0.8.tgz
7e03fd87420f06f2bf6b05ee700966b008ae55ef7412905a757351ae685e237d  memcache-gcc5.patch"
sha512sums="916c6b21ab7c1021128626c0df35ef0b83cb76b6115fe7c45b003ca4f78ad9484bf3c998bc7ebdee19f84349ff1e56759f74e75aee5bc70b1de9a03c45a99bc3  memcache-3.0.8.tgz
b7ce5719277a4ba534cd239312dcfcce870b4f4f03df381901533f65e1b379f7746b2eb811f78ffac452c2a7745b07647038d108903534e8b19c308821f57c88  memcache-gcc5.patch"
diff --git a/main/php-memcache/memcache-gcc5.patch b/main/php-memcache/memcache-gcc5.patch
new file mode 100644
index 0000000..31c1b0c
--- /dev/null
+++ b/main/php-memcache/memcache-gcc5.patch
@@ -0,0 +1,84 @@
diff -ru memcache-3.0.8.old/memcache_pool.c memcache-3.0.8/memcache_pool.c
--- memcache-3.0.8.old/memcache_pool.c	2013-04-08 04:12:54.000000000 +0200
+++ memcache-3.0.8/memcache_pool.c	2015-02-09 15:26:43.678369270 +0100
@@ -40,7 +40,7 @@
 
 ZEND_DECLARE_MODULE_GLOBALS(memcache)
 
-inline void mmc_buffer_alloc(mmc_buffer_t *buffer, unsigned int size)  /*
+MMC_POOL_INLINE void mmc_buffer_alloc(mmc_buffer_t *buffer, unsigned int size)  /*
 	ensures space for an additional size bytes {{{ */
 {
 	register size_t newlen;
@@ -48,7 +48,7 @@
 }
 /* }}} */
 
-inline void mmc_buffer_free(mmc_buffer_t *buffer)  /* {{{ */
+MMC_POOL_INLINE void mmc_buffer_free(mmc_buffer_t *buffer)  /* {{{ */
 {
 	if (buffer->value.c != NULL) {
 		smart_str_free(&(buffer->value));
@@ -1676,7 +1676,7 @@
 }
 /* }}} */
 
-inline int mmc_prepare_key_ex(const char *key, unsigned int key_len, char *result, unsigned int *result_len)  /* {{{ */
+MMC_POOL_INLINE int mmc_prepare_key_ex(const char *key, unsigned int key_len, char *result, unsigned int *result_len)  /* {{{ */
 {
 	unsigned int i;
 	if (key_len == 0) {
@@ -1694,7 +1694,7 @@
 }
 /* }}} */
 
-inline int mmc_prepare_key(zval *key, char *result, unsigned int *result_len)  /* {{{ */
+MMC_POOL_INLINE int mmc_prepare_key(zval *key, char *result, unsigned int *result_len)  /* {{{ */
 {
 	if (Z_TYPE_P(key) == IS_STRING) {
 		return mmc_prepare_key_ex(Z_STRVAL_P(key), Z_STRLEN_P(key), result, result_len);
diff -ru memcache-3.0.8.old/memcache_pool.h memcache-3.0.8/memcache_pool.h
--- memcache-3.0.8.old/memcache_pool.h	2013-04-08 04:12:54.000000000 +0200
+++ memcache-3.0.8/memcache_pool.h	2015-02-09 15:26:05.303142526 +0100
@@ -135,8 +135,15 @@
 #define mmc_buffer_release(b) memset((b), 0, sizeof(*(b)))
 #define mmc_buffer_reset(b) (b)->value.len = (b)->idx = 0
 
-inline void mmc_buffer_alloc(mmc_buffer_t *, unsigned int);
-inline void mmc_buffer_free(mmc_buffer_t *);
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
+/* see https://gcc.gnu.org/gcc-5/porting_to.html */
+#define MMC_POOL_INLINE extern inline
+#else
+#define MMC_POOL_INLINE inline
+#endif
+
+MMC_POOL_INLINE void mmc_buffer_alloc(mmc_buffer_t *, unsigned int);
+MMC_POOL_INLINE void mmc_buffer_free(mmc_buffer_t *);
 
 /* stream handlers */
 typedef struct mmc_stream mmc_stream_t;
@@ -391,8 +398,8 @@
 double timeval_to_double(struct timeval tv);
 struct timeval double_to_timeval(double sec);
 
-inline int mmc_prepare_key_ex(const char *, unsigned int, char *, unsigned int *);
-inline int mmc_prepare_key(zval *, char *, unsigned int *);
+MMC_POOL_INLINE int mmc_prepare_key_ex(const char *, unsigned int, char *, unsigned int *);
+MMC_POOL_INLINE int mmc_prepare_key(zval *, char *, unsigned int *);
 
 #define mmc_str_left(h, n, hlen, nlen) ((hlen) >= (nlen) ? memcmp((h), (n), (nlen)) == 0 : 0)
 
diff -ru memcache-3.0.8.old/memcache_queue.h memcache-3.0.8/memcache_queue.h
--- memcache-3.0.8.old/memcache_queue.h	2013-04-08 04:12:54.000000000 +0200
+++ memcache-3.0.8/memcache_queue.h	2015-02-09 15:24:23.309539885 +0100
@@ -39,6 +39,9 @@
 
 #ifdef PHP_WIN32
 #define MMC_QUEUE_INLINE
+#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
+/* see https://gcc.gnu.org/gcc-5/porting_to.html */
+#define MMC_QUEUE_INLINE extern inline
 #else
 #define MMC_QUEUE_INLINE inline
 #endif
-- 
2.6.4
Olivier Mauras <olivier@mauras.ch>
Details
Message ID
<20160201082402.f022cc0d7c09e9aa5c36b0f9@mauras.ch>
In-Reply-To
<20160201080837.cb2dfb4b7b0e28d66e9b11a5@mauras.ch> (view parent)
Sender timestamp
1454311442
DKIM signature
missing
Download raw message
Patch: +0 -1
>From dbcab5e0c9476f887d71c363d2152ee5988ddccc Mon Sep 17 00:00:00 2001
From: Olivier Mauras <olivier@mauras.ch>
Date: Mon, 1 Feb 2016 08:22:22 +0100
Subject: [PATCH] main/php-memcache: Remove unneeded line in prepare()

---
 main/php-memcache/APKBUILD | 1 -
 1 file changed, 1 deletion(-)

diff --git a/main/php-memcache/APKBUILD b/main/php-memcache/APKBUILD
index 7584e84..5bcc323 100644
--- a/main/php-memcache/APKBUILD
+++ b/main/php-memcache/APKBUILD
@@ -22,7 +22,6 @@ _builddir="$srcdir"/$_pkgreal-$_pkgver
prepare() {
        local i
        cd "$_builddir"
        update_config_sub || return 1
        for i in $source; do
                case $i in
                *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
-- 
2.6.4
Reply to thread Export thread (mbox)