summaryrefslogtreecommitdiffstats
path: root/main/memcached
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-07-27 14:22:45 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2011-07-27 14:22:45 +0000
commit4399f122d915bbb0c57e2dddc9a700da93b35135 (patch)
treed764f825b4c575ecedf584013a63c442ec4c68d5 /main/memcached
parentb10c99ba6d2d5f72076ec01fb04de7b6c406f8d3 (diff)
main/memcached: upgrade to 1.4.6
Diffstat (limited to 'main/memcached')
-rw-r--r--main/memcached/0001-fix-type-punning-issues.patch73
-rw-r--r--main/memcached/APKBUILD8
2 files changed, 3 insertions, 78 deletions
diff --git a/main/memcached/0001-fix-type-punning-issues.patch b/main/memcached/0001-fix-type-punning-issues.patch
deleted file mode 100644
index eb2c7355d15..00000000000
--- a/main/memcached/0001-fix-type-punning-issues.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-commit df15887584f0025e7b188e408dd3c9f638d68518
-Author: Dan McGee <dan@archlinux.org>
-Date: Tue Nov 2 18:43:00 2010 -0500
-
- Fix type-punning issues exposed with GCC 4.5.1
-
- The errors below are due to pointer magic that isn't allowed if following C
- strict-aliasing rules:
-
- memcached.c: In function .complete_incr_bin.:
- memcached.c:1023:16: error: dereferencing type-punned pointer will break
- strict-aliasing rules
- memcached.c:1044:13: error: dereferencing type-punned pointer will break
- strict-aliasing rules
- memcached.c:1061:17: error: dereferencing type-punned pointer will break
- strict-aliasing rules
-
- Fix this by introducing a union type that allows access to the uint64_t
- member as necessary, but doesn't add any additional length to the structure.
- The size remains the same before and after; the only difference is explict
- casts are now refactored into union member accesses and all compilers should
- be happy.
-
- Signed-off-by: Dan McGee <dan@archlinux.org>
-
-diff --git a/memcached.h b/memcached.h
-index 4a7295b..74a6592 100644
---- a/memcached.h
-+++ b/memcached.h
-@@ -77,18 +77,22 @@
- #define TAIL_REPAIR_TIME (3 * 3600)
-
- /* warning: don't use these macros with a function, as it evals its arg twice */
--#define ITEM_get_cas(i) ((uint64_t)(((i)->it_flags & ITEM_CAS) ? \
-- *(uint64_t*)&((i)->end[0]) : 0x0))
--#define ITEM_set_cas(i,v) { if ((i)->it_flags & ITEM_CAS) { \
-- *(uint64_t*)&((i)->end[0]) = v; } }
-+#define ITEM_get_cas(i) (((i)->it_flags & ITEM_CAS) ? \
-+ (i)->data->cas : (uint64_t)0)
-
--#define ITEM_key(item) (((char*)&((item)->end[0])) \
-+#define ITEM_set_cas(i,v) { \
-+ if ((i)->it_flags & ITEM_CAS) { \
-+ (i)->data->cas = v; \
-+ } \
-+}
-+
-+#define ITEM_key(item) (((char*)&((item)->data)) \
- + (((item)->it_flags & ITEM_CAS) ? sizeof(uint64_t) : 0))
-
--#define ITEM_suffix(item) ((char*) &((item)->end[0]) + (item)->nkey + 1 \
-+#define ITEM_suffix(item) ((char*) &((item)->data) + (item)->nkey + 1 \
- + (((item)->it_flags & ITEM_CAS) ? sizeof(uint64_t) : 0))
-
--#define ITEM_data(item) ((char*) &((item)->end[0]) + (item)->nkey + 1 \
-+#define ITEM_data(item) ((char*) &((item)->data) + (item)->nkey + 1 \
- + (item)->nsuffix \
- + (((item)->it_flags & ITEM_CAS) ? sizeof(uint64_t) : 0))
-
-@@ -302,7 +306,12 @@ typedef struct _stritem {
- uint8_t it_flags; /* ITEM_* above */
- uint8_t slabs_clsid;/* which slab class we're in */
- uint8_t nkey; /* key length, w/terminating null and padding */
-- void * end[];
-+ /* this odd type prevents type-punning issues when we do
-+ * the little shuffle to save space when not using CAS. */
-+ union {
-+ uint64_t cas;
-+ char end;
-+ } data[];
- /* if it_flags & ITEM_CAS we have 8 bytes CAS */
- /* then null-terminated key */
- /* then " flags length\r\n" (no terminating null) */
diff --git a/main/memcached/APKBUILD b/main/memcached/APKBUILD
index fbbd9b1929b..06396993ef6 100644
--- a/main/memcached/APKBUILD
+++ b/main/memcached/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Jeff Bilyk <jbilyk@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=memcached
-pkgver=1.4.5
-pkgrel=1
+pkgver=1.4.6
+pkgrel=0
pkgdesc="Distributed memory object caching system"
url="http://memcached.org"
arch="all"
@@ -13,7 +13,6 @@ makedepends="$depends_dev"
install="$pkgname.pre-install"
subpackages="$pkgname-dev $pkgname-doc"
source="http://memcached.googlecode.com/files/$pkgname-$pkgver.tar.gz
- 0001-fix-type-punning-issues.patch
$pkgname.confd
$pkgname.initd"
@@ -44,7 +43,6 @@ package() {
"$pkgdir/etc/conf.d/$pkgname" || return 1
}
-md5sums="583441a25f937360624024f2881e5ea8 memcached-1.4.5.tar.gz
-a5b61a9b9a92a2619d9e99338a9a2a64 0001-fix-type-punning-issues.patch
+md5sums="243e5d82de27e6e45caf0ebfd400e41a memcached-1.4.6.tar.gz
9d7396bf77c72ca3845118424cd1898b memcached.confd
cc344c9aead89042ca2fbf45cd3930a6 memcached.initd"