Changeset 10213


Ignore:
Timestamp:
2008-01-16T18:30:17+01:00 (10 years ago)
Author:
pavlov
Message:

update php-apc to 3.0.16, disable pthread mutex's as they are on by default now.

Location:
packages/lang/php5
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • packages/lang/php5/Makefile

    r10212 r10213  
    271271endif 
    272272ifneq ($(CONFIG_PACKAGE_php5-mod-apc),) 
    273   PKG_CONFIGURE_OPTS+= --enable-apc --disable-apc-mmap 
     273  PKG_CONFIGURE_OPTS+= --enable-apc --disable-apc-mmap --disable-apc-pthreadmutex 
    274274  PKG_CONFIGURE_LIBS+= -lrt 
    275275else 
  • packages/lang/php5/patches/005-APC.patch

    r8572 r10213  
    1 Index: php-5.2.4/ext/apc/apc.c 
    2 =================================================================== 
    3 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    4 +++ php-5.2.4/ext/apc/apc.c     2007-09-02 12:24:46.000000000 +0200 
     1diff -ubrN php-5.2.5-orig/ext/apc/apc.c php-5.2.5/ext/apc/apc.c 
     2--- php-5.2.5-orig/ext/apc/apc.c        1969-12-31 18:00:00.000000000 -0600 
     3+++ php-5.2.5/ext/apc/apc.c     2007-12-26 16:51:32.000000000 -0600 
    54@@ -0,0 +1,554 @@ 
    65+/* 
     
    3534+ */ 
    3635+ 
    37 +/* $Id: apc.c,v 3.17 2007/03/17 14:01:41 gopalv Exp $ */ 
     36+/* $Id: apc.c,v 3.18 2007/11/29 22:15:53 shire Exp $ */ 
    3837+ 
    3938+#include "apc.h" 
     
    180179+void apc_dprint(const char* fmt, ...) 
    181180+{ 
    182 +#ifdef APC_DBG 
     181+#ifdef APC_DEBUG 
    183182+    va_list args; 
    184183+    va_start(args, fmt); 
     
    558557+ * vim<600: expandtab sw=4 ts=4 sts=4 
    559558+ */ 
    560 Index: php-5.2.4/ext/apc/apc_cache.c 
    561 =================================================================== 
    562 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    563 +++ php-5.2.4/ext/apc/apc_cache.c       2007-09-02 12:24:46.000000000 +0200 
    564 @@ -0,0 +1,1328 @@ 
     559diff -ubrN php-5.2.5-orig/ext/apc/apc_cache.c php-5.2.5/ext/apc/apc_cache.c 
     560--- php-5.2.5-orig/ext/apc/apc_cache.c  1969-12-31 18:00:00.000000000 -0600 
     561+++ php-5.2.5/ext/apc/apc_cache.c       2007-12-26 16:51:32.000000000 -0600 
     562@@ -0,0 +1,1343 @@ 
    565563+/* 
    566564+  +----------------------------------------------------------------------+ 
     
    593591+ */ 
    594592+ 
    595 +/* $Id: apc_cache.c,v 3.140 2007/04/02 22:57:10 rasmus Exp $ */ 
     593+/* $Id: apc_cache.c,v 3.145 2007/10/05 23:06:56 gopalv Exp $ */ 
    596594+ 
    597595+#include "apc_cache.h" 
     
    662660+    slot_t *original;           /* the original slot in shm */ 
    663661+    int num_hits;               /* number of hits */ 
     662+    time_t creation_time;       /* creation time */ 
    664663+    apc_cache_entry_t *value;   /* shallow copy of slot->value */ 
    665664+    local_slot_t *next;         /* only for dead list */ 
     
    871870+ 
    872871+    cache->shmaddr = apc_sma_malloc(cache_size); 
     872+    if(!cache->shmaddr) { 
     873+        apc_eprint("Unable to allocate shared memory for cache structures.  (Perhaps your shared memory size isn't large enough?). "); 
     874+    } 
    873875+    memset(cache->shmaddr, 0, cache_size); 
    874876+ 
     
    12771279+                                          TSRMLS_DC) 
    12781280+{ 
    1279 +    static char canon_path[MAXPATHLEN]; 
    12801281+    struct stat *tmp_buf=NULL; 
    12811282+    struct apc_fileinfo_t fileinfo = { {0}, }; 
    12821283+    int len; 
    1283 +        
     1284+ 
    12841285+    assert(key != NULL); 
    12851286+ 
     
    12991300+            key->type = APC_CACHE_KEY_FPFILE; 
    13001301+        } else { 
    1301 +            if(!realpath(filename, canon_path)) { 
    1302 +                fprintf(stderr, "realpath failed to canonicalize %s - bailing\n", filename); 
     1302+            if (apc_search_paths(filename, include_path, &fileinfo) != 0) { 
     1303+                apc_wprint("apc failed to locate %s - bailing", filename); 
    13031304+                return 0; 
    13041305+            } 
    1305 +            key->data.fpfile.fullpath = canon_path; 
    1306 +            key->data.fpfile.fullpath_len = strlen(canon_path); 
     1306+ 
     1307+            if(!realpath(fileinfo.fullpath, APCG(canon_path))) { 
     1308+                apc_wprint("realpath failed to canonicalize %s - bailing", filename); 
     1309+                return 0; 
     1310+            } 
     1311+ 
     1312+            key->data.fpfile.fullpath = APCG(canon_path); 
     1313+            key->data.fpfile.fullpath_len = strlen(APCG(canon_path)); 
    13071314+            key->mtime = t; 
    13081315+            key->type = APC_CACHE_KEY_FPFILE; 
     
    14181425+    entry->ref_count = 0; 
    14191426+    entry->mem_size = 0; 
    1420 +    entry->autofiltered = 0; 
    14211427+    entry->local = 0; 
    14221428+    return entry; 
     
    15601566+    entry->ref_count = 0; 
    15611567+    entry->mem_size = 0; 
    1562 +    entry->autofiltered = 0; 
    15631568+    entry->local = 0; 
    15641569+    return entry; 
     
    17361741+ 
    17371742+/* {{{ make_local_slot */ 
    1738 +static local_slot_t* make_local_slot(apc_local_cache_t* cache, local_slot_t* lslot, slot_t* slot)  
     1743+static local_slot_t* make_local_slot(apc_local_cache_t* cache, local_slot_t* lslot, slot_t* slot, time_t t)  
    17391744+{ 
    17401745+    apc_cache_entry_t* value; 
     
    17461751+    lslot->original = slot; 
    17471752+    lslot->value = value; 
    1748 +    lslot->num_hits++; 
     1753+    lslot->num_hits = 0; 
     1754+    lslot->creation_time = t; 
    17491755+ 
    17501756+    return lslot; /* for what joy ? ... consistency */ 
     
    17981804+    int i; 
    17991805+    for(i = 0; i < cache->num_slots; i++) { 
    1800 +        slot_t * slot = cache->slots[i].original; 
    1801 +        if((slot && slot->access_time < (t - cache->ttl)) || 
     1806+        lslot = &cache->slots[i]; 
     1807+        /* every slot lives for exactly TTL seconds */ 
     1808+        if((lslot->original && lslot->creation_time < (t - cache->ttl)) || 
    18021809+                cache->generation != cache->shmcache->header->expunges) { 
    1803 +            free_local_slot(cache, &cache->slots[i]); 
     1810+            free_local_slot(cache, lslot); 
    18041811+        } 
    18051812+    } 
     
    18571864+                goto not_found; 
    18581865+            } 
     1866+            cache->num_hits++; 
     1867+            lslot->num_hits++; 
     1868+            lslot->original->access_time = t; /* unlocked write, but last write wins */ 
    18591869+            return lslot->value; 
    18601870+        } else if(key.type == APC_CACHE_KEY_FPFILE) { 
    18611871+            if(!memcmp(slot->key.data.fpfile.fullpath, key.data.fpfile.fullpath, key.data.fpfile.fullpath_len+1)) { 
     1872+                cache->num_hits++; 
     1873+                lslot->num_hits++; 
     1874+                lslot->original->access_time = t; /* unlocked write, but last write wins */ 
    18621875+                return lslot->value; 
    18631876+            } 
     
    18761889+    if(lslot->original == NULL || (lslot->original->num_hits + lslot->num_hits)  < slot->num_hits) { 
    18771890+        free_local_slot(cache, lslot); 
    1878 +        make_local_slot(cache, lslot, slot);  
     1891+        make_local_slot(cache, lslot, slot, t);  
    18791892+        return lslot->value; 
    18801893+    } 
     
    18911904+ * vim<600: expandtab sw=4 ts=4 sts=4 
    18921905+ */ 
    1893 Index: php-5.2.4/ext/apc/apc_cache.h 
    1894 =================================================================== 
    1895 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    1896 +++ php-5.2.4/ext/apc/apc_cache.h       2007-09-02 12:24:46.000000000 +0200 
    1897 @@ -0,0 +1,313 @@ 
     1906diff -ubrN php-5.2.5-orig/ext/apc/apc_cache.h php-5.2.5/ext/apc/apc_cache.h 
     1907--- php-5.2.5-orig/ext/apc/apc_cache.h  1969-12-31 18:00:00.000000000 -0600 
     1908+++ php-5.2.5/ext/apc/apc_cache.h       2007-12-26 16:51:32.000000000 -0600 
     1909@@ -0,0 +1,312 @@ 
    18981910+/* 
    18991911+  +----------------------------------------------------------------------+ 
     
    19241936+ */ 
    19251937+ 
    1926 +/* $Id: apc_cache.h,v 3.45 2007/03/22 16:03:59 gopalv Exp $ */ 
     1938+/* $Id: apc_cache.h,v 3.46 2007/10/05 23:06:56 gopalv Exp $ */ 
    19271939+ 
    19281940+#ifndef APC_CACHE_H 
     
    19912003+    apc_cache_entry_value_t data; 
    19922004+    unsigned char type; 
    1993 +    unsigned char autofiltered; 
    19942005+    unsigned char local; 
    19952006+    int ref_count; 
     
    22092220+ * vim<600: expandtab sw=4 ts=4 sts=4 
    22102221+ */ 
    2211 Index: php-5.2.4/ext/apc/apc_compile.c 
    2212 =================================================================== 
    2213 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    2214 +++ php-5.2.4/ext/apc/apc_compile.c     2007-09-02 12:24:46.000000000 +0200 
    2215 @@ -0,0 +1,2530 @@ 
     2222diff -ubrN php-5.2.5-orig/ext/apc/apc_compile.c php-5.2.5/ext/apc/apc_compile.c 
     2223--- php-5.2.5-orig/ext/apc/apc_compile.c        1969-12-31 18:00:00.000000000 -0600 
     2224+++ php-5.2.5/ext/apc/apc_compile.c     2007-12-26 16:51:32.000000000 -0600 
     2225@@ -0,0 +1,2529 @@ 
    22162226+/* 
    22172227+  +----------------------------------------------------------------------+ 
     
    22442254+ */ 
    22452255+ 
    2246 +/* $Id: apc_compile.c,v 3.85 2007/03/28 07:35:55 gopalv Exp $ */ 
     2256+/* $Id: apc_compile.c,v 3.87 2007/08/25 13:09:13 gopalv Exp $ */ 
    22472257+ 
    22482258+#include "apc_compile.h" 
     
    34823492+                (zo->op1.op_type == IS_CONST && zo->op1.u.constant.type == IS_STRING)) { 
    34833493+                /* constant includes */ 
    3484 +                if(!IS_ABSOLUTE_PATH(Z_STRVAL_P(&zo->op1.u.constant),len)) {  
     3494+                if(!IS_ABSOLUTE_PATH(Z_STRVAL_P(&zo->op1.u.constant),Z_STRLEN_P(&zo->op1.u.constant))) {  
    34853495+                    if (apc_search_paths(Z_STRVAL_P(&zo->op1.u.constant), PG(include_path), &fileinfo) == 0) { 
    3486 +                        if((IS_ABSOLUTE_PATH(fileinfo.fullpath, strlen(fileinfo.fullpath)) && (fullpath = fileinfo.fullpath)) 
    3487 +                                || (fullpath = realpath(fileinfo.fullpath, canon_path))) { 
    3488 +                            /* is either an absolute path or it goes through a realpath() */ 
     3496+                        if((fullpath = realpath(fileinfo.fullpath, canon_path))) { 
     3497+                            /* everything has to go through a realpath() */ 
    34893498+                            zend_op *dzo = &(dst->opcodes[i]); 
    34903499+                            deallocate(dzo->op1.u.constant.value.str.val); 
     
    47444753+ * vim<600: expandtab sw=4 ts=4 sts=4 
    47454754+ */ 
    4746 Index: php-5.2.4/ext/apc/apc_compile.h 
    4747 =================================================================== 
    4748 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    4749 +++ php-5.2.4/ext/apc/apc_compile.h     2007-09-02 12:24:46.000000000 +0200 
     4755diff -ubrN php-5.2.5-orig/ext/apc/apc_compile.h php-5.2.5/ext/apc/apc_compile.h 
     4756--- php-5.2.5-orig/ext/apc/apc_compile.h        1969-12-31 18:00:00.000000000 -0600 
     4757+++ php-5.2.5/ext/apc/apc_compile.h     2007-12-26 16:51:32.000000000 -0600 
    47504758@@ -0,0 +1,134 @@ 
    47514759+/* 
     
    48834891+ * vim<600: expandtab sw=4 ts=4 sts=4 
    48844892+ */ 
    4885 Index: php-5.2.4/ext/apc/apc_debug.c 
    4886 =================================================================== 
    4887 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    4888 +++ php-5.2.4/ext/apc/apc_debug.c       2007-09-02 12:24:46.000000000 +0200 
     4893diff -ubrN php-5.2.5-orig/ext/apc/apc_debug.c php-5.2.5/ext/apc/apc_debug.c 
     4894--- php-5.2.5-orig/ext/apc/apc_debug.c  1969-12-31 18:00:00.000000000 -0600 
     4895+++ php-5.2.5/ext/apc/apc_debug.c       2007-12-26 16:51:32.000000000 -0600 
    48894896@@ -0,0 +1,57 @@ 
    48904897+/* 
     
    49454952+#endif 
    49464953+} 
    4947 Index: php-5.2.4/ext/apc/apc_debug.h 
    4948 =================================================================== 
    4949 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    4950 +++ php-5.2.4/ext/apc/apc_debug.h       2007-09-02 12:24:46.000000000 +0200 
     4954diff -ubrN php-5.2.5-orig/ext/apc/apc_debug.h php-5.2.5/ext/apc/apc_debug.h 
     4955--- php-5.2.5-orig/ext/apc/apc_debug.h  1969-12-31 18:00:00.000000000 -0600 
     4956+++ php-5.2.5/ext/apc/apc_debug.h       2007-12-26 16:51:32.000000000 -0600 
    49514957@@ -0,0 +1 @@ 
    49524958+void dump(zend_op_array * TSRMLS_DC); 
    4953 Index: php-5.2.4/ext/apc/apc.dsp 
    4954 =================================================================== 
    4955 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    4956 +++ php-5.2.4/ext/apc/apc.dsp   2007-09-02 12:24:46.000000000 +0200 
     4959diff -ubrN php-5.2.5-orig/ext/apc/apc.dsp php-5.2.5/ext/apc/apc.dsp 
     4960--- php-5.2.5-orig/ext/apc/apc.dsp      1969-12-31 18:00:00.000000000 -0600 
     4961+++ php-5.2.5/ext/apc/apc.dsp   2007-12-26 16:51:32.000000000 -0600 
    49574962@@ -0,0 +1,207 @@ 
    49584963+# Microsoft Developer Studio Project File - Name="apc" - Package Owner=<4> 
     
    51635168+# End Target 
    51645169+# End Project 
    5165 Index: php-5.2.4/ext/apc/apc_fcntl.c 
    5166 =================================================================== 
    5167 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    5168 +++ php-5.2.4/ext/apc/apc_fcntl.c       2007-09-02 12:24:46.000000000 +0200 
     5170diff -ubrN php-5.2.5-orig/ext/apc/apc_fcntl.c php-5.2.5/ext/apc/apc_fcntl.c 
     5171--- php-5.2.5-orig/ext/apc/apc_fcntl.c  1969-12-31 18:00:00.000000000 -0600 
     5172+++ php-5.2.5/ext/apc/apc_fcntl.c       2007-12-26 16:51:32.000000000 -0600 
    51695173@@ -0,0 +1,118 @@ 
    51705174+/* 
     
    52865290+ * vim<600: expandtab sw=4 ts=4 sts=4 
    52875291+ */ 
    5288 Index: php-5.2.4/ext/apc/apc_fcntl.h 
    5289 =================================================================== 
    5290 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    5291 +++ php-5.2.4/ext/apc/apc_fcntl.h       2007-09-02 12:24:46.000000000 +0200 
     5292diff -ubrN php-5.2.5-orig/ext/apc/apc_fcntl.h php-5.2.5/ext/apc/apc_fcntl.h 
     5293--- php-5.2.5-orig/ext/apc/apc_fcntl.h  1969-12-31 18:00:00.000000000 -0600 
     5294+++ php-5.2.5/ext/apc/apc_fcntl.h       2007-12-26 16:51:32.000000000 -0600 
    52925295@@ -0,0 +1,50 @@ 
    52935296+/* 
     
    53415344+ * vim<600: expandtab sw=4 ts=4 sts=4 
    53425345+ */ 
    5343 Index: php-5.2.4/ext/apc/apc_fcntl_win32.c 
    5344 =================================================================== 
    5345 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    5346 +++ php-5.2.4/ext/apc/apc_fcntl_win32.c 2007-09-02 12:24:46.000000000 +0200 
     5346diff -ubrN php-5.2.5-orig/ext/apc/apc_fcntl_win32.c php-5.2.5/ext/apc/apc_fcntl_win32.c 
     5347--- php-5.2.5-orig/ext/apc/apc_fcntl_win32.c    1969-12-31 18:00:00.000000000 -0600 
     5348+++ php-5.2.5/ext/apc/apc_fcntl_win32.c 2007-12-26 16:51:32.000000000 -0600 
    53475349@@ -0,0 +1,117 @@ 
    53485350+/* 
     
    54635465+ * vim<600: expandtab sw=4 ts=4 sts=4 
    54645466+ */ 
    5465 Index: php-5.2.4/ext/apc/apc_futex.c 
    5466 =================================================================== 
    5467 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    5468 +++ php-5.2.4/ext/apc/apc_futex.c       2007-09-02 12:24:46.000000000 +0200 
     5467diff -ubrN php-5.2.5-orig/ext/apc/apc_futex.c php-5.2.5/ext/apc/apc_futex.c 
     5468--- php-5.2.5-orig/ext/apc/apc_futex.c  1969-12-31 18:00:00.000000000 -0600 
     5469+++ php-5.2.5/ext/apc/apc_futex.c       2007-12-26 16:51:32.000000000 -0600 
    54695470@@ -0,0 +1,116 @@ 
    54705471+/* 
     
    55845585+ * vim<600: expandtab sw=4 ts=4 sts=4 
    55855586+ */ 
    5586 Index: php-5.2.4/ext/apc/apc_futex.h 
    5587 =================================================================== 
    5588 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    5589 +++ php-5.2.4/ext/apc/apc_futex.h       2007-09-02 12:24:46.000000000 +0200 
     5587diff -ubrN php-5.2.5-orig/ext/apc/apc_futex.h php-5.2.5/ext/apc/apc_futex.h 
     5588--- php-5.2.5-orig/ext/apc/apc_futex.h  1969-12-31 18:00:00.000000000 -0600 
     5589+++ php-5.2.5/ext/apc/apc_futex.h       2007-12-26 16:51:32.000000000 -0600 
    55905590@@ -0,0 +1,55 @@ 
    55915591+/* 
     
    56445644+ * vim<600: expandtab sw=4 ts=4 sts=4 
    56455645+ */ 
    5646 Index: php-5.2.4/ext/apc/apc_globals.h 
    5647 =================================================================== 
    5648 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    5649 +++ php-5.2.4/ext/apc/apc_globals.h     2007-09-02 12:24:46.000000000 +0200 
    5650 @@ -0,0 +1,110 @@ 
     5646diff -ubrN php-5.2.5-orig/ext/apc/apc_globals.h php-5.2.5/ext/apc/apc_globals.h 
     5647--- php-5.2.5-orig/ext/apc/apc_globals.h        1969-12-31 18:00:00.000000000 -0600 
     5648+++ php-5.2.5/ext/apc/apc_globals.h     2007-12-26 16:51:32.000000000 -0600 
     5649@@ -0,0 +1,119 @@ 
    56515650+/* 
    56525651+  +----------------------------------------------------------------------+ 
     
    56805679+ */ 
    56815680+ 
    5682 +/* $Id: apc_globals.h,v 3.59 2007/03/21 21:07:28 rasmus Exp $ */ 
     5681+/* $Id: apc_globals.h,v 3.70 2007/12/26 22:46:33 rasmus Exp $ */ 
    56835682+ 
    56845683+#ifndef APC_GLOBALS_H 
    56855684+#define APC_GLOBALS_H 
    56865685+ 
    5687 +#define APC_VERSION "3.0.14" 
     5686+#define APC_VERSION "3.0.16" 
    56885687+ 
    56895688+#include "apc_cache.h" 
     
    57255724+#ifdef MULTIPART_EVENT_FORMDATA 
    57265725+    zend_bool rfc1867;           /* Flag to enable rfc1867 handler */ 
     5726+    char* rfc1867_prefix;        /* Key prefix */ 
     5727+    char* rfc1867_name;          /* Name of hidden field to activate upload progress/key suffix */ 
     5728+    double rfc1867_freq;         /* Update frequency as percentage or bytes */ 
    57275729+#endif 
    57285730+    HashTable *copied_zvals;     /* my_copy recursion detection list */ 
     
    57335735+    long localcache_size;        /* size of fast cache */ 
    57345736+    apc_local_cache_t* lcache;   /* unlocked local cache */ 
     5737+    zend_bool force_file_update; /* force files to be updated during apc_compile_file */ 
     5738+    char canon_path[MAXPATHLEN]; /* canonical path for key data */ 
     5739+#if APC_FILEHITS 
     5740+    zval *filehits;             /* Files that came from the cache for this request */ 
     5741+#endif 
     5742+    zend_bool coredump_unmap;    /* Trap signals that coredump and unmap shared memory */ 
    57355743+ZEND_END_MODULE_GLOBALS(apc) 
    57365744+ 
     
    57595767+ * vim<600: expandtab sw=4 ts=4 sts=4 
    57605768+ */ 
    5761 Index: php-5.2.4/ext/apc/apc.h 
    5762 =================================================================== 
    5763 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    5764 +++ php-5.2.4/ext/apc/apc.h     2007-09-02 12:24:46.000000000 +0200 
     5769diff -ubrN php-5.2.5-orig/ext/apc/apc.h php-5.2.5/ext/apc/apc.h 
     5770--- php-5.2.5-orig/ext/apc/apc.h        1969-12-31 18:00:00.000000000 -0600 
     5771+++ php-5.2.5/ext/apc/apc.h     2007-12-26 16:51:32.000000000 -0600 
    57655772@@ -0,0 +1,126 @@ 
    57665773+/* 
     
    58905897+ * vim<600: expandtab sw=4 ts=4 sts=4 
    58915898+ */ 
    5892 Index: php-5.2.4/ext/apc/apc_lock.h 
    5893 =================================================================== 
    5894 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    5895 +++ php-5.2.4/ext/apc/apc_lock.h        2007-09-02 12:24:46.000000000 +0200 
     5899diff -ubrN php-5.2.5-orig/ext/apc/apc_lock.h php-5.2.5/ext/apc/apc_lock.h 
     5900--- php-5.2.5-orig/ext/apc/apc_lock.h   1969-12-31 18:00:00.000000000 -0600 
     5901+++ php-5.2.5/ext/apc/apc_lock.h        2007-12-26 16:51:32.000000000 -0600 
    58965902@@ -0,0 +1,105 @@ 
    58975903+/* 
     
    60006006+ 
    60016007+#endif 
    6002 Index: php-5.2.4/ext/apc/apc_main.c 
    6003 =================================================================== 
    6004 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    6005 +++ php-5.2.4/ext/apc/apc_main.c        2007-09-02 12:24:46.000000000 +0200 
    6006 @@ -0,0 +1,681 @@ 
     6008diff -ubrN php-5.2.5-orig/ext/apc/apc_main.c php-5.2.5/ext/apc/apc_main.c 
     6009--- php-5.2.5-orig/ext/apc/apc_main.c   1969-12-31 18:00:00.000000000 -0600 
     6010+++ php-5.2.5/ext/apc/apc_main.c        2007-12-26 16:51:32.000000000 -0600 
     6011@@ -0,0 +1,701 @@ 
    60076012+/* 
    60086013+  +----------------------------------------------------------------------+ 
     
    60356040+ */ 
    60366041+ 
    6037 +/* $Id: apc_main.c,v 3.97 2007/03/22 16:03:59 gopalv Exp $ */ 
     6042+/* $Id: apc_main.c,v 3.103 2007/11/14 19:46:46 shire Exp $ */ 
    60386043+ 
    60396044+#include "apc_php.h" 
     
    62656270+default_compile: 
    62666271+ 
    6267 +    cache_entry->autofiltered = 1; 
    62686272+    if(APCG(report_autofilter)) { 
    62696273+        apc_wprint("Autofiltering %s", h->opened_path); 
     
    62776281+     
    62786282+    apc_stack_pop(APCG(cache_stack)); /* pop out cache_entry */ 
     6283+     
     6284+    apc_cache_release(apc_cache, cache_entry); 
    62796285+ 
    62806286+    /* cannot free up cache data yet, it maybe in use */ 
     
    62836289+     
    62846290+    h->type = ZEND_HANDLE_FILENAME; 
    6285 +     
    6286 +    return old_compile_file(h, type TSRMLS_CC); 
     6291+ 
     6292+    return NULL; 
    62876293+} 
    62886294+/* }}} */ 
     
    63186324+    } 
    63196325+ 
    6320 +#if PHP_API_VERSION <= 20041225 
     6326+#if PHP_API_VERSION < 20041225 
    63216327+#if HAVE_APACHE && defined(APC_PHP4_STAT) 
    63226328+    t = ((request_rec *)SG(server_context))->request_time; 
     
    63376343+    } 
    63386344+ 
    6339 +    if(APCG(localcache)) { 
    6340 +        /* search for the file in the local cache */ 
    6341 +        cache_entry = apc_local_cache_find(APCG(lcache), key, t); 
     6345+ 
     6346+    if(!APCG(force_file_update)) { 
     6347+        if(APCG(localcache)) { 
     6348+            /* search for the file in the local cache */ 
     6349+            cache_entry = apc_local_cache_find(APCG(lcache), key, t); 
     6350+        } else { 
     6351+            /* search for the file in the cache */ 
     6352+            cache_entry = apc_cache_find(apc_cache, key, t); 
     6353+        } 
    63426354+    } else { 
    6343 +        /* search for the file in the cache */ 
    6344 +        cache_entry = apc_cache_find(apc_cache, key, t); 
    6345 +    } 
    6346 + 
    6347 +    if (cache_entry != NULL && !cache_entry->autofiltered) { 
     6355+        cache_entry = NULL; 
     6356+    } 
     6357+ 
     6358+    if (cache_entry != NULL) { 
    63486359+        int dummy = 1; 
    63496360+        if (h->opened_path == NULL) { 
     
    63536364+        zend_llist_add_element(&CG(open_files), h); /* XXX kludge */ 
    63546365+        apc_stack_push(APCG(cache_stack), cache_entry); 
    6355 +        return cached_compile(h, type TSRMLS_CC); 
    6356 +    } 
    6357 +    else if(cache_entry != NULL && cache_entry->autofiltered) { 
    6358 +        /* nobody else is using this cache_entry */  
    6359 +        if(cache_entry->ref_count == 1) { 
    6360 +            if(cache_entry->data.file.op_array) { 
    6361 +                apc_free_op_array(cache_entry->data.file.op_array, apc_sma_free); 
    6362 +                cache_entry->data.file.op_array = NULL; 
    6363 +            } 
    6364 +            if(cache_entry->data.file.functions) { 
    6365 +                apc_free_functions(cache_entry->data.file.functions, apc_sma_free); 
    6366 +                cache_entry->data.file.functions = NULL; 
    6367 +            } 
    6368 +            if(cache_entry->data.file.classes) { 
    6369 +                apc_free_classes(cache_entry->data.file.classes, apc_sma_free); 
    6370 +                cache_entry->data.file.classes = NULL;         
    6371 +            } 
    6372 +        } 
    6373 +        /* We never push this into the cache_stack, so we have to do a release */ 
    6374 +        apc_cache_release(apc_cache, cache_entry); 
    6375 +        return old_compile_file(h, type TSRMLS_CC); 
     6366+        op_array = cached_compile(h, type TSRMLS_CC); 
     6367+        if(op_array) { 
     6368+#ifdef APC_FILEHITS 
     6369+            /* If the file comes from the cache, add it to the global request file list */ 
     6370+            add_next_index_string(APCG(filehits), h->filename, 1); 
     6371+#endif 
     6372+            return op_array; 
     6373+        } 
     6374+        if(APCG(report_autofilter)) { 
     6375+            apc_wprint("Recompiling %s", h->opened_path); 
     6376+        } 
     6377+        /* TODO: check what happens with EG(included_files) */ 
    63766378+    } 
    63776379+     
     
    64076409+            return op_array; 
    64086410+        } 
     6411+    } 
     6412+ 
     6413+    /* Make sure the mtime reflects the files last known mtime in the case of fpstat==0 */ 
     6414+    if(key.type == APC_CACHE_KEY_FPFILE) { 
     6415+        apc_fileinfo_t fileinfo; 
     6416+        struct stat *tmp_buf = NULL; 
     6417+        if(!strcmp(SG(request_info).path_translated, h->filename)) { 
     6418+            tmp_buf = sapi_get_stat(TSRMLS_C);  /* Apache has already done this stat() for us */ 
     6419+        } 
     6420+        if(tmp_buf) {  
     6421+            fileinfo.st_buf = *tmp_buf; 
     6422+        } else { 
     6423+            if (apc_search_paths(h->filename, PG(include_path), &fileinfo) != 0) { 
     6424+#ifdef __DEBUG_APC__ 
     6425+                fprintf(stderr,"Stat failed %s - bailing (%s) (%d)\n",filename,SG(request_info).path_translated); 
     6426+#endif 
     6427+                return op_array; 
     6428+            } 
     6429+        } 
     6430+        key.mtime = fileinfo.st_buf.st_mtime; 
    64096431+    } 
    64106432+ 
     
    66086630+    APCG(slam_rand) = -1; 
    66096631+    APCG(copied_zvals) = NULL; 
     6632+ 
     6633+#ifdef APC_FILEHITS 
     6634+    ALLOC_INIT_ZVAL(APCG(filehits)); 
     6635+    array_init(APCG(filehits)); 
     6636+#endif 
     6637+ 
    66106638+    return 0; 
    66116639+} 
     
    66146642+{ 
    66156643+    apc_deactivate(TSRMLS_C); 
     6644+ 
     6645+#ifdef APC_FILEHITS 
     6646+    zval_ptr_dtor(&APCG(filehits)); 
     6647+#endif 
     6648+ 
    66166649+    return 0; 
    66176650+} 
     
    66356668+        apc_cache_entry_t* cache_entry = 
    66366669+            (apc_cache_entry_t*) apc_stack_pop(APCG(cache_stack)); 
    6637 + 
    6638 +        if (cache_entry->data.file.functions) { 
    6639 +            for (i = 0; cache_entry->data.file.functions[i].function != NULL; i++) { 
    6640 +                zend_hash_del(EG(function_table), 
    6641 +                    cache_entry->data.file.functions[i].name, 
    6642 +                    cache_entry->data.file.functions[i].name_len+1); 
    6643 +            } 
    6644 +        } 
    66456670+ 
    66466671+        if (cache_entry->data.file.classes) { 
     
    66866711+ * vim<600: expandtab sw=4 ts=4 sts=4 
    66876712+ */ 
    6688 Index: php-5.2.4/ext/apc/apc_main.h 
    6689 =================================================================== 
    6690 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    6691 +++ php-5.2.4/ext/apc/apc_main.h        2007-09-02 12:24:46.000000000 +0200 
     6713diff -ubrN php-5.2.5-orig/ext/apc/apc_main.h php-5.2.5/ext/apc/apc_main.h 
     6714--- php-5.2.5-orig/ext/apc/apc_main.h   1969-12-31 18:00:00.000000000 -0600 
     6715+++ php-5.2.5/ext/apc/apc_main.h        2007-12-26 16:51:32.000000000 -0600 
    66926716@@ -0,0 +1,67 @@ 
    66936717+/* 
     
    67586782+ * vim<600: expandtab sw=4 ts=4 sts=4 
    67596783+ */ 
    6760 Index: php-5.2.4/ext/apc/apc_mmap.c 
    6761 =================================================================== 
    6762 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    6763 +++ php-5.2.4/ext/apc/apc_mmap.c        2007-09-02 12:24:46.000000000 +0200 
    6764 @@ -0,0 +1,137 @@ 
     6784diff -ubrN php-5.2.5-orig/ext/apc/apc_mmap.c php-5.2.5/ext/apc/apc_mmap.c 
     6785--- php-5.2.5-orig/ext/apc/apc_mmap.c   1969-12-31 18:00:00.000000000 -0600 
     6786+++ php-5.2.5/ext/apc/apc_mmap.c        2007-12-26 16:51:32.000000000 -0600 
     6787@@ -0,0 +1,139 @@ 
    67656788+/* 
    67666789+  +----------------------------------------------------------------------+ 
     
    67906813+ */ 
    67916814+ 
    6792 +/* $Id: apc_mmap.c,v 3.5 2006/03/12 00:31:45 rasmus Exp $ */ 
     6815+/* $Id: apc_mmap.c,v 3.7 2007/12/20 23:00:51 shire Exp $ */ 
    67936816+ 
    67946817+#include "apc.h" 
     
    68116834+#endif 
    68126835+ 
    6813 +void *apc_mmap(char *file_mask, int size) 
     6836+void *apc_mmap(char *file_mask, size_t size) 
    68146837+{ 
    68156838+    void* shmaddr;  /* the shared memory address */ 
     
    68856908+} 
    68866909+ 
    6887 +void apc_unmap(void* shmaddr, int size) 
    6888 +{ 
    6889 +    munmap(shmaddr, size); 
     6910+void apc_unmap(void* shmaddr, size_t size) 
     6911+{ 
     6912+    if (munmap(shmaddr, size) < 0) { 
     6913+        apc_wprint("apc_unmap: munmap failed:"); 
     6914+    } 
    68906915+} 
    68916916+ 
     
    69006925+ * vim<600: expandtab sw=4 ts=4 sts=4 
    69016926+ */ 
    6902 Index: php-5.2.4/ext/apc/apc.php 
    6903 =================================================================== 
    6904 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    6905 +++ php-5.2.4/ext/apc/apc.php   2007-09-02 12:24:46.000000000 +0200 
    6906 @@ -0,0 +1,1313 @@ 
     6927diff -ubrN php-5.2.5-orig/ext/apc/apc.php php-5.2.5/ext/apc/apc.php 
     6928--- php-5.2.5-orig/ext/apc/apc.php      1969-12-31 18:00:00.000000000 -0600 
     6929+++ php-5.2.5/ext/apc/apc.php   2007-12-26 16:51:32.000000000 -0600 
     6930@@ -0,0 +1,1326 @@ 
    69076931+<?php 
    69086932+/* 
     
    69296953+ */ 
    69306954+ 
    6931 +$VERSION='$Id: apc.php,v 3.65 2006/10/27 18:32:52 shire Exp $'; 
     6955+$VERSION='$Id: apc.php,v 3.68 2007/07/22 00:25:48 gopalv Exp $'; 
    69326956+ 
    69336957+////////// READ OPTIONAL CONFIGURATION FILE //////////// 
     
    69666990+// rewrite $PHP_SELF to block XSS attacks 
    69676991+// 
    6968 +$PHP_SELF= isset($_SERVER['PHP_SELF']) ? htmlentities(strip_tags($_SERVER['PHP_SELF'],'')) : ''; 
     6992+$PHP_SELF= isset($_SERVER['PHP_SELF']) ? htmlentities(strip_tags($_SERVER['PHP_SELF'],''), ENT_QUOTES) : ''; 
    69696993+$time = time(); 
    69706994+$host = getenv('HOSTNAME'); 
     
    69827006+       'OB'    => '/^\d+$/',                   // operational mode switch 
    69837007+       'CC'    => '/^[01]$/',                  // clear cache requested 
     7008+       'DU'    => '/^.*$/',                    // Delete User Key 
    69847009+       'SH'    => '/^[a-z0-9]+$/',             // shared object description 
    69857010+ 
     
    69927017+       'SORT2' => '/^[DA]$/',                  // second sort key 
    69937018+       'AGGR'  => '/^\d+$/',                   // aggregation by dir level 
    6994 +       'SEARCH'        => '/^.*$/'                     // aggregation by dir level 
     7019+       'SEARCH'        => '~^[a-zA-Z0-1/_.-]*$~'                       // aggregation by dir level 
    69957020+); 
    69967021+ 
     
    70217046+       if (!isset($_REQUEST[$var])) { 
    70227047+               $MYREQUEST[$var]=NULL; 
    7023 +       } else if (!is_array($_REQUEST[$var]) && preg_match($dom,$_REQUEST[$var])) { 
     7048+       } else if (!is_array($_REQUEST[$var]) && preg_match($dom.'D',$_REQUEST[$var])) { 
    70247049+               $MYREQUEST[$var]=$_REQUEST[$var]; 
    70257050+       } else { 
     
    70847109+if ($AUTHENTICATED && isset($MYREQUEST['CC']) && $MYREQUEST['CC']) { 
    70857110+       apc_clear_cache($cache_mode); 
     7111+} 
     7112+ 
     7113+if ($AUTHENTICATED && !empty($MYREQUEST['DU'])) { 
     7114+       apc_delete($MYREQUEST['DU']); 
    70867115+} 
    70877116+ 
     
    78367865+       $fieldkey='info'; 
    78377866+ 
    7838 + 
    78397867+// ----------------------------------------------- 
    78407868+// System Cache Entries                 
     
    80008028+            echo '<td class="td-n center">None</td>'; 
    80018029+        } 
    8002 +        echo 
    8003 +          '<td class="td-last center">',$entry['deletion_time'] ? date(DATE_FORMAT,$entry['deletion_time']) : '-','</td>', 
    8004 +          '</tr>'; 
     8030+        if ($entry['deletion_time']) { 
     8031+ 
     8032+          echo '<td class="td-last center">', date(DATE_FORMAT,$entry['deletion_time']), '</td>'; 
     8033+        } else if ($MYREQUEST['OB'] == OB_USER_CACHE) { 
     8034+ 
     8035+          echo '<td class="td-last center">'; 
     8036+          echo '[<a href="', $MY_SELF, '&OB=', $MYREQUEST['OB'], '&DU=', urlencode($entry[$fieldkey]), '">Delete Now</a>]'; 
     8037+          echo '</td>'; 
     8038+        } else { 
     8039+          echo '<td class="td-last center"> &nbsp; </td>'; 
     8040+        } 
     8041+        echo '</tr>'; 
    80058042+        $i++; 
    80068043+        if ($i == $MYREQUEST['COUNT']) 
     
    82188255+</body> 
    82198256+</html> 
    8220 Index: php-5.2.4/ext/apc/apc_php.h 
    8221 =================================================================== 
    8222 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    8223 +++ php-5.2.4/ext/apc/apc_php.h 2007-09-02 12:24:46.000000000 +0200 
     8257diff -ubrN php-5.2.5-orig/ext/apc/apc_php.h php-5.2.5/ext/apc/apc_php.h 
     8258--- php-5.2.5-orig/ext/apc/apc_php.h    1969-12-31 18:00:00.000000000 -0600 
     8259+++ php-5.2.5/ext/apc/apc_php.h 2007-12-26 16:51:32.000000000 -0600 
    82248260@@ -0,0 +1,71 @@ 
    82258261+/* 
     
    82948330+ * vim<600: expandtab sw=4 ts=4 sts=4 
    82958331+ */ 
    8296 Index: php-5.2.4/ext/apc/apc_pthreadmutex.c 
    8297 =================================================================== 
    8298 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    8299 +++ php-5.2.4/ext/apc/apc_pthreadmutex.c        2007-09-02 12:24:46.000000000 +0200 
    8300 @@ -0,0 +1,104 @@ 
     8332diff -ubrN php-5.2.5-orig/ext/apc/apc_pthreadmutex.c php-5.2.5/ext/apc/apc_pthreadmutex.c 
     8333--- php-5.2.5-orig/ext/apc/apc_pthreadmutex.c   1969-12-31 18:00:00.000000000 -0600 
     8334+++ php-5.2.5/ext/apc/apc_pthreadmutex.c        2007-12-26 16:51:32.000000000 -0600 
     8335@@ -0,0 +1,111 @@ 
    83018336+/* 
    83028337+  +----------------------------------------------------------------------+ 
     
    83188353+ */ 
    83198354+ 
    8320 +/* $Id: apc_pthreadmutex.c,v 3.2 2007/02/15 21:40:45 shire Exp $ */ 
     8355+/* $Id: apc_pthreadmutex.c,v 3.3 2007/12/21 01:36:51 shire Exp $ */ 
    83218356+ 
    83228357+#include "apc_pthreadmutex.h" 
     
    83388373+        apc_eprint("pthread mutex error: attr is an invalid pointer."); 
    83398374+    }  
     8375+ 
     8376+#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP 
     8377+       result = pthread_mutexattr_settype(attr, PTHREAD_MUTEX_ADAPTIVE_NP); 
     8378+       if (result == EINVAL) { 
     8379+               apc_eprint("pthread_mutexattr_settype: unable to set adaptive mutexes"); 
     8380+       } 
     8381+#endif 
    83408382+ 
    83418383+    /* pthread_mutexattr_settype(attr, PTHREAD_MUTEX_ERRORCHECK); */ 
     
    84038445+ * vim<600: expandtab sw=4 ts=4 sts=4 
    84048446+ */ 
    8405 Index: php-5.2.4/ext/apc/apc_pthreadmutex.h 
    8406 =================================================================== 
    8407 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    8408 +++ php-5.2.4/ext/apc/apc_pthreadmutex.h        2007-09-02 12:24:46.000000000 +0200 
     8447diff -ubrN php-5.2.5-orig/ext/apc/apc_pthreadmutex.h php-5.2.5/ext/apc/apc_pthreadmutex.h 
     8448--- php-5.2.5-orig/ext/apc/apc_pthreadmutex.h   1969-12-31 18:00:00.000000000 -0600 
     8449+++ php-5.2.5/ext/apc/apc_pthreadmutex.h        2007-12-26 16:51:32.000000000 -0600 
    84098450@@ -0,0 +1,48 @@ 
    84108451+/* 
     
    84568497+ * vim<600: expandtab sw=4 ts=4 sts=4 
    84578498+ */ 
    8458 Index: php-5.2.4/ext/apc/apc_rfc1867.c 
    8459 =================================================================== 
    8460 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    8461 +++ php-5.2.4/ext/apc/apc_rfc1867.c     2007-09-02 12:24:46.000000000 +0200 
    8462 @@ -0,0 +1,175 @@ 
     8499diff -ubrN php-5.2.5-orig/ext/apc/apc_rfc1867.c php-5.2.5/ext/apc/apc_rfc1867.c 
     8500--- php-5.2.5-orig/ext/apc/apc_rfc1867.c        1969-12-31 18:00:00.000000000 -0600 
     8501+++ php-5.2.5/ext/apc/apc_rfc1867.c     2007-12-26 16:51:32.000000000 -0600 
     8502@@ -0,0 +1,195 @@ 
    84638503+/* 
    84648504+  +----------------------------------------------------------------------+ 
     
    84888528+ */ 
    84898529+ 
    8490 +/* $Id: apc_rfc1867.c,v 3.4 2007/02/24 11:45:29 rasmus Exp $*/ 
     8530+/* $Id: apc_rfc1867.c,v 3.12 2007/10/18 20:37:20 rasmus Exp $*/ 
    84918531+ 
    84928532+#include "apc.h" 
     8533+#include "apc_globals.h" 
    84938534+#include "rfc1867.h" 
     8535+ 
     8536+#ifdef PHP_WIN32 
     8537+#include "win32/time.h" 
     8538+#endif 
    84948539+ 
    84958540+#ifdef MULTIPART_EVENT_FORMDATA 
     
    85008545+    double t; 
    85018546+    gettimeofday(&a, NULL); 
    8502 +    t = a.tv_sec + (a.tv_usec/1000000); 
     8547+    t = a.tv_sec + (a.tv_usec/1000000.00); 
    85038548+    return t; 
    85048549+} 
     
    85148559+    static double start_time; 
    85158560+    static size_t bytes_processed = 0; 
     8561+    static size_t prev_bytes_processed = 0; 
     8562+    static int update_freq = 0; 
    85168563+    static double rate; 
    85178564+    zval *track = NULL; 
     
    85318578+                bytes_processed = 0; 
    85328579+                rate = 0; 
     8580+                update_freq = APCG(rfc1867_freq); 
     8581+                if(update_freq < 0) {  // frequency is a percentage, not bytes 
     8582+                    update_freq = content_length * APCG(rfc1867_freq) / 100;  
     8583+                } 
    85338584+                       } 
    85348585+                       break; 
     
    85368587+               case MULTIPART_EVENT_FORMDATA: 
    85378588+                       { 
     8589+                int prefix_len = strlen(APCG(rfc1867_prefix)); 
    85388590+                multipart_event_formdata *data = (multipart_event_formdata *) event_data; 
    8539 + 
    8540 +                               if(data->name && !strncasecmp(data->name,"apc_upload_progress",19) && data->value && data->length && data->length < 58) { 
    8541 +                    strlcat(tracking_key, "upload_", 63); 
     8591+                               if(data->name && !strncasecmp(data->name, APCG(rfc1867_name), strlen(APCG(rfc1867_name))) && data->value && data->length && data->length < sizeof(tracking_key) - prefix_len) { 
     8592+                    strlcat(tracking_key, APCG(rfc1867_prefix), 63); 
    85428593+                    strlcat(tracking_key, *data->value, 63); 
    8543 +                    key_length = data->length+7; 
     8594+                    key_length = data->length + prefix_len; 
    85448595+                    bytes_processed = data->post_bytes_processed; 
    85458596+                               } 
     
    85628613+                add_assoc_string(track, "name", name, 1); 
    85638614+                add_assoc_long(track, "done", 0); 
     8615+                add_assoc_double(track, "start_time", start_time); 
    85648616+                _apc_store(tracking_key, key_length, track, 3600, 0 TSRMLS_CC); 
    85658617+                zval_ptr_dtor(&track); 
     
    85788630+                add_assoc_string(track, "name", name, 1); 
    85798631+                add_assoc_long(track, "done", 0); 
    8580 +                _apc_store(tracking_key, key_length, track, 3600, 0 TSRMLS_CC); 
     8632+                add_assoc_double(track, "start_time", start_time); 
     8633+                if(bytes_processed - prev_bytes_processed > update_freq) { 
     8634+                    _apc_store(tracking_key, key_length, track, 3600, 0 TSRMLS_CC); 
     8635+                    prev_bytes_processed = bytes_processed; 
     8636+                } 
    85818637+                zval_ptr_dtor(&track); 
    85828638+                       } 
     
    85988654+                add_assoc_long(track, "cancel_upload", cancel_upload); 
    85998655+                add_assoc_long(track, "done", 0); 
     8656+                add_assoc_double(track, "start_time", start_time); 
    86008657+                _apc_store(tracking_key, key_length, track, 3600, 0 TSRMLS_CC); 
    86018658+                zval_ptr_dtor(&track); 
     
    86178674+                add_assoc_string(track, "filename", filename, 1); 
    86188675+                add_assoc_string(track, "name", name, 1); 
    8619 +                add_assoc_string(track, "temp_filename", temp_filename, 1); 
     8676+                if(temp_filename) { 
     8677+                    add_assoc_string(track, "temp_filename", temp_filename, 1); 
     8678+                } 
    86208679+                add_assoc_long(track, "cancel_upload", cancel_upload); 
    86218680+                add_assoc_long(track, "done", 1); 
     8681+                add_assoc_double(track, "start_time", start_time); 
    86228682+                _apc_store(tracking_key, key_length, track, 3600, 0 TSRMLS_CC); 
    86238683+                zval_ptr_dtor(&track); 
     
    86368696+ * vim<600: expandtab sw=4 ts=4 sts=4 
    86378697+ */ 
    8638 Index: php-5.2.4/ext/apc/apc_sem.c 
    8639 =================================================================== 
    8640 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    8641 +++ php-5.2.4/ext/apc/apc_sem.c 2007-09-02 12:24:46.000000000 +0200 
     8698diff -ubrN php-5.2.5-orig/ext/apc/apc_sem.c php-5.2.5/ext/apc/apc_sem.c 
     8699--- php-5.2.5-orig/ext/apc/apc_sem.c    1969-12-31 18:00:00.000000000 -0600 
     8700+++ php-5.2.5/ext/apc/apc_sem.c 2007-12-26 16:51:32.000000000 -0600 
    86428701@@ -0,0 +1,177 @@ 
    86438702+/* 
     
    88188877+ * vim<600: expandtab sw=4 ts=4 sts=4 
    88198878+ */ 
    8820 Index: php-5.2.4/ext/apc/apc_sem.h 
    8821 =================================================================== 
    8822 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    8823 +++ php-5.2.4/ext/apc/apc_sem.h 2007-09-02 12:24:46.000000000 +0200 
     8879diff -ubrN php-5.2.5-orig/ext/apc/apc_sem.h php-5.2.5/ext/apc/apc_sem.h 
     8880--- php-5.2.5-orig/ext/apc/apc_sem.h    1969-12-31 18:00:00.000000000 -0600 
     8881+++ php-5.2.5/ext/apc/apc_sem.h 2007-12-26 16:51:32.000000000 -0600 
    88248882@@ -0,0 +1,51 @@ 
    88258883+/* 
     
    88748932+ * vim<600: expandtab sw=4 ts=4 sts=4 
    88758933+ */ 
    8876 Index: php-5.2.4/ext/apc/apc_shm.c 
    8877 =================================================================== 
    8878 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    8879 +++ php-5.2.4/ext/apc/apc_shm.c 2007-09-02 12:24:46.000000000 +0200 
    8880 @@ -0,0 +1,111 @@ 
     8934diff -ubrN php-5.2.5-orig/ext/apc/apc_shm.c php-5.2.5/ext/apc/apc_shm.c 
     8935--- php-5.2.5-orig/ext/apc/apc_shm.c    1969-12-31 18:00:00.000000000 -0600 
     8936+++ php-5.2.5/ext/apc/apc_shm.c 2007-12-26 16:51:32.000000000 -0600 
     8937@@ -0,0 +1,110 @@ 
    88818938+/* 
    88828939+  +----------------------------------------------------------------------+ 
     
    89078964+ */ 
    89088965+ 
    8909 +/* $Id: apc_shm.c,v 3.10 2006/05/31 22:24:48 rasmus Exp $ */ 
     8966+/* $Id: apc_shm.c,v 3.11 2007/05/09 22:15:33 shire Exp $ */ 
    89108967+ 
    89118968+#include "apc_shm.h" 
    89128969+#include "apc.h" 
    8913 +#include <sys/types.h> 
    89148970+#ifdef PHP_WIN32 
    89158971+/* shm functions are available in TSRM */ 
     
    89298985+#endif 
    89308986+ 
    8931 +int apc_shm_create(const char* pathname, int proj, int size) 
     8987+int apc_shm_create(const char* pathname, int proj, size_t size) 
    89328988+{ 
    89338989+    int shmid;  /* shared memory id */ 
     
    89909046+ * vim<600: expandtab sw=4 ts=4 sts=4 
    89919047+ */ 
    8992 Index: php-5.2.4/ext/apc/apc_shm.h 
    8993 =================================================================== 
    8994 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    8995 +++ php-5.2.4/ext/apc/apc_shm.h 2007-09-02 12:24:46.000000000 +0200 
    8996 @@ -0,0 +1,49 @@ 
     9048diff -ubrN php-5.2.5-orig/ext/apc/apc_shm.h php-5.2.5/ext/apc/apc_shm.h 
     9049--- php-5.2.5-orig/ext/apc/apc_shm.h    1969-12-31 18:00:00.000000000 -0600 
     9050+++ php-5.2.5/ext/apc/apc_shm.h 2007-12-26 16:51:32.000000000 -0600 
     9051@@ -0,0 +1,54 @@ 
    89979052+/* 
    89989053+  +----------------------------------------------------------------------+ 
     
    90229077+ */ 
    90239078+ 
    9024 +/* $Id: apc_shm.h,v 3.6 2006/03/12 00:31:45 rasmus Exp $ */ 
     9079+/* $Id: apc_shm.h,v 3.8 2007/05/23 01:23:21 auroraeosrose Exp $ */ 
    90259080+ 
    90269081+#ifndef APC_SHM_H 
    90279082+#define APC_SHM_H 
    90289083+ 
     9084+#include <sys/types.h> 
     9085+#ifdef PHP_WIN32 
     9086+#include <time.h> 
     9087+#endif 
     9088+ 
    90299089+/* Wrapper functions for unix shared memory */ 
    90309090+ 
    9031 +extern int apc_shm_create(const char* name, int proj, int size); 
     9091+extern int apc_shm_create(const char* name, int proj, size_t size); 
    90329092+extern void apc_shm_destroy(int shmid); 
    90339093+extern void* apc_shm_attach(int shmid); 
     
    90449104+ * vim<600: expandtab sw=4 ts=4 sts=4 
    90459105+ */ 
    9046 Index: php-5.2.4/ext/apc/apc_sma.c 
    9047 =================================================================== 
    9048 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    9049 +++ php-5.2.4/ext/apc/apc_sma.c 2007-09-02 12:24:46.000000000 +0200 
    9050 @@ -0,0 +1,624 @@ 
     9106diff -ubrN php-5.2.5-orig/ext/apc/apc_signal.c php-5.2.5/ext/apc/apc_signal.c 
     9107--- php-5.2.5-orig/ext/apc/apc_signal.c 1969-12-31 18:00:00.000000000 -0600 
     9108+++ php-5.2.5/ext/apc/apc_signal.c      2007-12-26 16:51:32.000000000 -0600 
     9109@@ -0,0 +1,178 @@ 
    90519110+/* 
    90529111+  +----------------------------------------------------------------------+ 
     
    90639122+  | license@php.net so we can mail you a copy immediately.               | 
    90649123+  +----------------------------------------------------------------------+ 
     9124+  | Authors: Lucas Nealan <lucas@php.net>                                | 
     9125+  +----------------------------------------------------------------------+ 
     9126+ 
     9127+   This software was contributed to PHP by Facebook Inc. in 2007. 
     9128+    
     9129+   Future revisions and derivatives of this source code must acknowledge 
     9130+   Facebook Inc. as the original contributor of this module by leaving 
     9131+   this note intact in the source code. 
     9132+ 
     9133+   All other licensing and usage conditions are those of the PHP Group. 
     9134+ */ 
     9135+ 
     9136+ /* $Id: apc_signal.c,v 1.2 2007/12/26 22:38:43 rasmus Exp $ */ 
     9137+ 
     9138+ /* Allows apc to install signal handlers and maintain signalling 
     9139+    to already registered handlers. Registers all signals that 
     9140+    coredump by default and unmaps the shared memory segment 
     9141+    before the coredump. Note: PHP module init is called before  
     9142+    signals are set by Apache and thus apc_set_signals should 
     9143+    be called in request init (RINIT) 
     9144+  */ 
     9145+ 
     9146+#include <signal.h> 
     9147+#include "apc_globals.h" 
     9148+#include "apc_sma.h" 
     9149+#include "apc_signal.h" 
     9150+ 
     9151+static apc_signal_info_t apc_signal_info = {0}; 
     9152+ 
     9153+static int apc_register_signal(int signo, void (*handler)(int, siginfo_t*, void*)); 
     9154+static void apc_rehandle_signal(int signo, siginfo_t *siginfo, void *context); 
     9155+static void apc_core_unmap(int signo, siginfo_t *siginfo, void *context); 
     9156+ 
     9157+/* {{{ apc_core_unmap  
     9158+ *  Coredump signal handler, unmaps shm and calls previously installed handlers  
     9159+ */ 
     9160+static void apc_core_unmap(int signo, siginfo_t *siginfo, void *context)  
     9161+{ 
     9162+    apc_sma_cleanup(); 
     9163+    apc_rehandle_signal(signo, siginfo, context); 
     9164+ 
     9165+#if !defined(WIN32) && !defined(NETWARE) 
     9166+    kill(getpid(), signo); 
     9167+#else 
     9168+    raise(signo); 
     9169+#endif 
     9170+} /* }}} */ 
     9171+ 
     9172+/* {{{ apc_rehandle_signal 
     9173+ *  Call the previously registered handler for a signal 
     9174+ */ 
     9175+static void apc_rehandle_signal(int signo, siginfo_t *siginfo, void *context) 
     9176+{ 
     9177+    int i; 
     9178+    apc_signal_entry_t p_sig = {0}; 
     9179+ 
     9180+    for (i=0;  (i < apc_signal_info.installed && p_sig.signo != signo);  i++) { 
     9181+        p_sig = *apc_signal_info.prev[i]; 
     9182+        if (p_sig.signo == signo) { 
     9183+            if (p_sig.siginfo) { 
     9184+                (*(void (*)(int, siginfo_t*, void*))p_sig.handler)(signo, siginfo, context); 
     9185+            } else { 
     9186+                (*(void (*)(int))p_sig.handler)(signo); 
     9187+            } 
     9188+        } 
     9189+    } 
     9190+ 
     9191+} /* }}} */ 
     9192+ 
     9193+/* {{{ apc_register_signal 
     9194+ *  Set a handler for a previously installed signal and save so we can  
     9195+ *  callback when handled  
     9196+ */ 
     9197+static int apc_register_signal(int signo, void (*handler)(int, siginfo_t*, void*)) 
     9198+{ 
     9199+#if HAVE_SIGACTION 
     9200+    struct sigaction sa = {0}; 
     9201+    apc_signal_entry_t p_sig = {0}; 
     9202+ 
     9203+    if (sigaction(signo, NULL, &sa) == 0) { 
     9204+        if ((void*)sa.sa_handler == (void*)handler) { 
     9205+            return SUCCESS; 
     9206+        } 
     9207+ 
     9208+        if (sa.sa_handler != SIG_ERR && sa.sa_handler != SIG_DFL && sa.sa_handler != SIG_IGN) { 
     9209+            p_sig.signo = signo; 
     9210+            p_sig.siginfo = ((sa.sa_flags & SA_SIGINFO) == SA_SIGINFO); 
     9211+            p_sig.handler = (void *)sa.sa_handler; 
     9212+            
     9213+            apc_signal_info.prev = (apc_signal_entry_t **)apc_erealloc(apc_signal_info.prev, (apc_signal_info.installed+1)*sizeof(apc_signal_entry_t *)); 
     9214+            apc_signal_info.prev[apc_signal_info.installed] = (apc_signal_entry_t *)apc_emalloc(sizeof(apc_signal_entry_t)); 
     9215+            *apc_signal_info.prev[apc_signal_info.installed++] = p_sig; 
     9216+        } else { 
     9217+            /* inherit flags and mask if already set */ 
     9218+            sigemptyset(&sa.sa_mask); 
     9219+            sa.sa_flags = 0; 
     9220+            sa.sa_flags |= SA_SIGINFO; /* we'll use a siginfo handler */ 
     9221+#if defined(SA_ONESHOT) 
     9222+            sa.sa_flags = SA_ONESHOT; 
     9223+#elif defined(SA_RESETHAND) 
     9224+            sa.sa_flags = SA_RESETHAND; 
     9225+#endif 
     9226+        } 
     9227+        sa.sa_handler = (void*)handler; 
     9228+ 
     9229+        if (sigaction(signo, &sa, NULL) < 0) { 
     9230+            apc_wprint("Error installing apc signal handler for %d", signo); 
     9231+        } 
     9232+ 
     9233+        return SUCCESS; 
     9234+    } 
     9235+#endif 
     9236+    return FAILURE; 
     9237+} /* }}} */ 
     9238+ 
     9239+/* {{{ apc_set_signals 
     9240+ *  Install our signal handlers */ 
     9241+void apc_set_signals(TSRMLS_D)  
     9242+{ 
     9243+    if (APCG(coredump_unmap) && apc_signal_info.installed == 0) { 
     9244+        /* ISO C standard signals that coredump */ 
     9245+        apc_register_signal(SIGSEGV, apc_core_unmap); 
     9246+        apc_register_signal(SIGABRT, apc_core_unmap); 
     9247+        apc_register_signal(SIGFPE, apc_core_unmap); 
     9248+        apc_register_signal(SIGILL, apc_core_unmap); 
     9249+        /* extended signals that coredump */ 
     9250+#ifdef SIGBUS 
     9251+        apc_register_signal(SIGBUS, apc_core_unmap); 
     9252+#endif 
     9253+#ifdef SIGABORT 
     9254+        apc_register_signal(SIGABORT, apc_core_unmap); 
     9255+#endif 
     9256+#ifdef SIGEMT 
     9257+        apc_register_signal(SIGEMT, apc_core_unmap); 
     9258+#endif 
     9259+#ifdef SIGIOT 
     9260+        apc_register_signal(SIGIOT, apc_core_unmap); 
     9261+#endif 
     9262+#ifdef SIGQUIT 
     9263+        apc_register_signal(SIGQUIT, apc_core_unmap); 
     9264+#endif 
     9265+#ifdef SIGSYS 
     9266+        apc_register_signal(SIGSYS, apc_core_unmap); 
     9267+#endif 
     9268+#ifdef SIGTRAP 
     9269+        apc_register_signal(SIGTRAP, apc_core_unmap); 
     9270+#endif 
     9271+#ifdef SIGXCPU 
     9272+        apc_register_signal(SIGXCPU, apc_core_unmap); 
     9273+#endif 
     9274+#ifdef SIGXFSZ 
     9275+        apc_register_signal(SIGXFSZ, apc_core_unmap); 
     9276+#endif 
     9277+    } 
     9278+} /* }}} */ 
     9279+ 
     9280+/* 
     9281+ * Local variables: 
     9282+ * tab-width: 4 
     9283+ * c-basic-offset: 4 
     9284+ * End: 
     9285+ * vim600: expandtab sw=4 ts=4 sts=4 fdm=marker 
     9286+ * vim<600: expandtab sw=4 ts=4 sts=4 
     9287+ */ 
     9288diff -ubrN php-5.2.5-orig/ext/apc/apc_signal.h php-5.2.5/ext/apc/apc_signal.h 
     9289--- php-5.2.5-orig/ext/apc/apc_signal.h 1969-12-31 18:00:00.000000000 -0600 
     9290+++ php-5.2.5/ext/apc/apc_signal.h      2007-12-26 16:51:32.000000000 -0600 
     9291@@ -0,0 +1,50 @@ 
     9292+/* 
     9293+  +----------------------------------------------------------------------+ 
     9294+  | APC                                                                  | 
     9295+  +----------------------------------------------------------------------+ 
     9296+  | Copyright (c) 2006 The PHP Group                                     | 
     9297+  +----------------------------------------------------------------------+ 
     9298+  | This source file is subject to version 3.01 of the PHP license,      | 
     9299+  | that is bundled with this package in the file LICENSE, and is        | 
     9300+  | available through the world-wide-web at the following url:           | 
     9301+  | http://www.php.net/license/3_01.txt                                  | 
     9302+  | If you did not receive a copy of the PHP license and are unable to   | 
     9303+  | obtain it through the world-wide-web, please send a note to          | 
     9304+  | license@php.net so we can mail you a copy immediately.               | 
     9305+  +----------------------------------------------------------------------+ 
     9306+  | Authors: Lucas Nealan <lucas@php.net>                                | 
     9307+  +----------------------------------------------------------------------+ 
     9308+ 
     9309+ */ 
     9310+ 
     9311+/* $Id: apc_signal.h,v 1.1 2007/12/26 22:36:06 rasmus Exp $ */ 
     9312+ 
     9313+#ifndef APC_SIGNAL_H 
     9314+#define APC_SIGNAL_H 
     9315+ 
     9316+#include "apc.h" 
     9317+#include "apc_php.h" 
     9318+ 
     9319+typedef struct apc_signal_entry_t { 
     9320+    int signo;          /* signal number */ 
     9321+    int siginfo;        /* siginfo style handler calling */ 
     9322+    void* handler;      /* signal handler */ 
     9323+} apc_signal_entry_t; 
     9324+ 
     9325+typedef struct apc_signal_info_t { 
     9326+    int installed;                  /* How many signals we've installed handles for */ 
     9327+    apc_signal_entry_t **prev;      /* Previous signal handlers */ 
     9328+} apc_signal_info_t; 
     9329+ 
     9330+void apc_set_signals(TSRMLS_D); 
     9331+ 
     9332+#endif 
     9333+ 
     9334+/* 
     9335+ * Local variables: 
     9336+ * tab-width: 4 
     9337+ * c-basic-offset: 4 
     9338+ * End: 
     9339+ * vim600: expandtab sw=4 ts=4 sts=4 fdm=marker 
     9340+ * vim<600: expandtab sw=4 ts=4 sts=4 
     9341+ */ 
     9342diff -ubrN php-5.2.5-orig/ext/apc/apc_sma.c php-5.2.5/ext/apc/apc_sma.c 
     9343--- php-5.2.5-orig/ext/apc/apc_sma.c    1969-12-31 18:00:00.000000000 -0600 
     9344+++ php-5.2.5/ext/apc/apc_sma.c 2007-12-26 16:51:32.000000000 -0600 
     9345@@ -0,0 +1,628 @@ 
     9346+/* 
     9347+  +----------------------------------------------------------------------+ 
     9348+  | APC                                                                  | 
     9349+  +----------------------------------------------------------------------+ 
     9350+  | Copyright (c) 2006 The PHP Group                                     | 
     9351+  +----------------------------------------------------------------------+ 
     9352+  | This source file is subject to version 3.01 of the PHP license,      | 
     9353+  | that is bundled with this package in the file LICENSE, and is        | 
     9354+  | available through the world-wide-web at the following url:           | 
     9355+  | http://www.php.net/license/3_01.txt                                  | 
     9356+  | If you did not receive a copy of the PHP license and are unable to   | 
     9357+  | obtain it through the world-wide-web, please send a note to          | 
     9358+  | license@php.net so we can mail you a copy immediately.               | 
     9359+  +----------------------------------------------------------------------+ 
    90659360+  | Authors: Daniel Cowgill <dcowgill@communityconnect.com>              | 
    90669361+  |          Rasmus Lerdorf <rasmus@php.net>                             | 
     
    90779372+ */ 
    90789373+ 
    9079 +/* $Id: apc_sma.c,v 1.63 2007/04/02 09:02:57 gopalv Exp $ */ 
     9374+/* $Id: apc_sma.c,v 1.69 2007/12/26 21:35:39 gopalv Exp $ */ 
    90809375+ 
    90819376+#include "apc_sma.h" 
     
    90869381+#include <limits.h> 
    90879382+#if APC_MMAP 
    9088 +void *apc_mmap(char *file_mask, int size); 
    9089 +void apc_unmap(void* shmaddr, int size); 
     9383+void *apc_mmap(char *file_mask, size_t size); 
     9384+void apc_unmap(void* shmaddr, size_t size); 
    90909385+#endif 
    90919386+ 
     
    91019396+static unsigned int sma_numseg;     /* number of shm segments to allow */ 
    91029397+static size_t sma_segsize;          /* size of each shm segment */ 
    9103 +static int* sma_segments;           /* array of shm segment ids */ 
     9398+static size_t* sma_segments;        /* array of shm segment ids */ 
    91049399+static void** sma_shmaddrs;         /* array of shm segment addresses */ 
    91059400+static int sma_lastseg = 0;         /* index of MRU segment */ 
     
    92019496+    if(header->nfoffset) { 
    92029497+        prv = BLOCKAT(header->nfoffset); 
     9498+        /* if prv is the last block, jump to the beginning */ 
     9499+        if(prv->next == 0) { 
     9500+            prv = BLOCKAT(ALIGNWORD(sizeof(header_t))); 
     9501+            wrapped = 1; 
     9502+        } 
    92039503+    } else {     
    9204 +        prv = BLOCKAT(sizeof(header_t)); 
     9504+        prv = BLOCKAT(ALIGNWORD(sizeof(header_t))); 
    92059505+    } 
    92069506+    
     
    92239523+        /* Check to see if we need to wrap around and search from the top */ 
    92249524+        if(header->nfoffset && prv->next == 0) { 
    9225 +            prv = BLOCKAT(sizeof(header_t)); 
     9525+            prv = BLOCKAT(ALIGNWORD(sizeof(header_t))); 
    92269526+#ifdef __APC_SMA_DEBUG__ 
    92279527+            CHECK_CANARY(prv); 
     
    92989598+    /* find position of new block in free list */ 
    92999599+    cur = BLOCKAT(offset); 
    9300 +    prv = BLOCKAT(sizeof(header_t)); 
     9600+    prv = BLOCKAT(ALIGNWORD(sizeof(header_t))); 
    93019601+    
    93029602+    CHECK_CANARY(cur); 
     
    93579657+/* {{{ apc_sma_init */ 
    93589658+ 
    9359 +void apc_sma_init(int numseg, int segsize, char *mmap_file_mask) 
     9659+void apc_sma_init(int numseg, size_t segsize, char *mmap_file_mask) 
    93609660+{ 
    93619661+    int i; 
     
    93849684+    sma_segsize = segsize > 0 ? segsize : DEFAULT_SEGSIZE; 
    93859685+ 
    9386 +    sma_segments = (int*) apc_emalloc(sma_numseg*sizeof(int)); 
     9686+    sma_segments = (size_t*) apc_emalloc(sma_numseg*sizeof(size_t)); 
    93879687+    sma_shmaddrs = (void**) apc_emalloc(sma_numseg*sizeof(void*)); 
    93889688+     
     
    94059705+        apc_lck_create(NULL, 0, 1, header->sma_lock); 
    94069706+        header->segsize = sma_segsize; 
    9407 +        header->avail = sma_segsize - sizeof(header_t) - sizeof(block_t) - 
    9408 +                        ALIGNWORD(sizeof(int)); 
     9707+        header->avail = sma_segsize - ALIGNWORD(sizeof(header_t)) - ALIGNWORD(sizeof(block_t)); 
    94099708+        header->nfoffset = 0; 
    94109709+#if ALLOC_DISTRIBUTION 
     
    94149713+        } 
    94159714+#endif  
    9416 +        block = BLOCKAT(sizeof(header_t)); 
     9715+        block = BLOCKAT(ALIGNWORD(sizeof(header_t))); 
    94179716+        block->size = 0; 
    9418 +        block->next = sizeof(header_t) + sizeof(block_t); 
     9717+        block->next = ALIGNWORD(sizeof(header_t)) + ALIGNWORD(sizeof(block_t)); 
    94199718+        SET_CANARY(block); 
    94209719+#ifdef __APC_SMA_DEBUG__ 
     
    94739772+ 
    94749773+    for (i = 0; i < sma_numseg; i++) { 
    9475 +        LOCK(((header_t*)sma_shmaddrs[i])->sma_lock); 
    94769774+        if (i == sma_lastseg) { 
    94779775+            continue; 
    94789776+        } 
     9777+        LOCK(((header_t*)sma_shmaddrs[i])->sma_lock); 
    94799778+        off = sma_allocate(sma_shmaddrs[i], n); 
    94809779+        if (off != -1) { 
     
    95619860+    info = (apc_sma_info_t*) apc_emalloc(sizeof(apc_sma_info_t)); 
    95629861+    info->num_seg = sma_numseg; 
    9563 +    info->seg_size = sma_segsize - sizeof(header_t) - sizeof(block_t) - ALIGNWORD(sizeof(int)); 
     9862+    info->seg_size = sma_segsize - ALIGNWORD(sizeof(header_t)) - ALIGNWORD(sizeof(block_t)); 
    95649863+ 
    95659864+    info->list = apc_emalloc(info->num_seg * sizeof(apc_sma_link_t*)); 
     
    95749873+        RDLOCK(((header_t*)sma_shmaddrs[i])->sma_lock); 
    95759874+        shmaddr = sma_shmaddrs[i]; 
    9576 +        prv = BLOCKAT(sizeof(header_t)); 
     9875+        prv = BLOCKAT(ALIGNWORD(sizeof(header_t))); 
    95779876+ 
    95789877+        link = &info->list[i]; 
     
    96199918+ 
    96209919+/* {{{ apc_sma_get_avail_mem */ 
    9621 +int apc_sma_get_avail_mem() 
    9622 +{ 
    9623 +    int avail_mem = 0; 
     9920+size_t apc_sma_get_avail_mem() 
     9921+{ 
     9922+    size_t avail_mem = 0; 
    96249923+    int i; 
    96259924+     
     
    96499948+        char* shmaddr = sma_shmaddrs[i]; 
    96509949+        header_t* header = (header_t*) shmaddr; 
    9651 +        block_t* prv = BLOCKAT(sizeof(header_t)); 
     9950+        block_t* prv = BLOCKAT(ALIGNWORD(sizeof(header_t))); 
    96529951+        int avail = 0; 
    96539952+ 
     
    96739972+ * vim<600: expandtab sw=4 ts=4 sts=4 
    96749973+ */ 
    9675 Index: php-5.2.4/ext/apc/apc_sma.h 
    9676 =================================================================== 
    9677 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    9678 +++ php-5.2.4/ext/apc/apc_sma.h 2007-09-02 12:24:46.000000000 +0200 
     9974diff -ubrN php-5.2.5-orig/ext/apc/apc_sma.h php-5.2.5/ext/apc/apc_sma.h 
     9975--- php-5.2.5-orig/ext/apc/apc_sma.h    1969-12-31 18:00:00.000000000 -0600 
     9976+++ php-5.2.5/ext/apc/apc_sma.h 2007-12-26 16:51:32.000000000 -0600 
    96799977@@ -0,0 +1,82 @@ 
    96809978+/* 
     
    970510003+ */ 
    970610004+ 
    9707 +/* $Id: apc_sma.h,v 1.16 2007/02/24 11:59:40 rasmus Exp $ */ 
     10005+/* $Id: apc_sma.h,v 1.18 2007/05/11 01:46:31 shire Exp $ */ 
    970810006+ 
    970910007+#ifndef APC_SMA_H 
     
    971610014+/* Simple shared memory allocator */ 
    971710015+ 
    9718 +extern void apc_sma_init(int numseg, int segsize, char *mmap_file_mask); 
     10016+extern void apc_sma_init(int numseg, size_t segsize, char *mmap_file_mask); 
    971910017+extern void apc_sma_cleanup(); 
    972010018+extern void* apc_sma_malloc(size_t size); 
     
    972910027+typedef struct apc_sma_link_t apc_sma_link_t; 
    973010028+struct apc_sma_link_t { 
    9731 +    int size;               /* size of this free block */ 
    9732 +    int offset;             /* offset in segment of this block */ 
     10029+    long size;               /* size of this free block */ 
     10030+    long offset;             /* offset in segment of this block */ 
    973310031+    apc_sma_link_t* next;   /* link to next free block */ 
    973410032+}; 
     
    973910037+struct apc_sma_info_t { 
    974010038+    int num_seg;            /* number of shared memory segments */ 
    9741 +    int seg_size;           /* size of each shared memory segment */ 
     10039+    long seg_size;           /* size of each shared memory segment */ 
    974210040+    apc_sma_link_t** list;  /* there is one list per segment */ 
    974310041+}; 
     
    974710045+extern void apc_sma_free_info(apc_sma_info_t* info); 
    974810046+ 
    9749 +extern int apc_sma_get_avail_mem(); 
     10047+extern size_t apc_sma_get_avail_mem(); 
    975010048+extern void apc_sma_check_integrity(); 
    975110049+ 
     
    976010058+ * vim<600: expandtab sw=4 ts=4 sts=4 
    976110059+ */ 
    9762 Index: php-5.2.4/ext/apc/apc_spin.c 
    9763 =================================================================== 
    9764 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    9765 +++ php-5.2.4/ext/apc/apc_spin.c        2007-09-02 12:24:46.000000000 +0200 
     10060diff -ubrN php-5.2.5-orig/ext/apc/apc_spin.c php-5.2.5/ext/apc/apc_spin.c 
     10061--- php-5.2.5-orig/ext/apc/apc_spin.c   1969-12-31 18:00:00.000000000 -0600 
     10062+++ php-5.2.5/ext/apc/apc_spin.c        2007-12-26 16:51:32.000000000 -0600 
    976610063@@ -0,0 +1,65 @@ 
    976710064+/* 
     
    983010127+ * vim<600: expandtab sw=4 ts=4 sts=4 
    983110128+ */ 
    9832 Index: php-5.2.4/ext/apc/apc_spin.h 
    9833 =================================================================== 
    9834 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    9835 +++ php-5.2.4/ext/apc/apc_spin.h        2007-09-02 12:24:46.000000000 +0200 
     10129diff -ubrN php-5.2.5-orig/ext/apc/apc_spin.h php-5.2.5/ext/apc/apc_spin.h 
     10130--- php-5.2.5-orig/ext/apc/apc_spin.h   1969-12-31 18:00:00.000000000 -0600 
     10131+++ php-5.2.5/ext/apc/apc_spin.h        2007-12-26 16:51:32.000000000 -0600 
    983610132@@ -0,0 +1,48 @@ 
    983710133+/* 
     
    988310179+ * vim<600: expandtab sw=4 ts=4 sts=4 
    988410180+ */ 
    9885 Index: php-5.2.4/ext/apc/apc_stack.c 
    9886 =================================================================== 
    9887 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    9888 +++ php-5.2.4/ext/apc/apc_stack.c       2007-09-02 12:24:46.000000000 +0200 
     10181diff -ubrN php-5.2.5-orig/ext/apc/apc_stack.c php-5.2.5/ext/apc/apc_stack.c 
     10182--- php-5.2.5-orig/ext/apc/apc_stack.c  1969-12-31 18:00:00.000000000 -0600 
     10183+++ php-5.2.5/ext/apc/apc_stack.c       2007-12-26 16:51:32.000000000 -0600 
    988910184@@ -0,0 +1,105 @@ 
    989010185+/* 
     
    999310288+ * vim<600: expandtab sw=4 ts=4 sts=4 
    999410289+ */ 
    9995 Index: php-5.2.4/ext/apc/apc_stack.h 
    9996 =================================================================== 
    9997 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    9998 +++ php-5.2.4/ext/apc/apc_stack.h       2007-09-02 12:24:46.000000000 +0200 
     10290diff -ubrN php-5.2.5-orig/ext/apc/apc_stack.h php-5.2.5/ext/apc/apc_stack.h 
     10291--- php-5.2.5-orig/ext/apc/apc_stack.h  1969-12-31 18:00:00.000000000 -0600 
     10292+++ php-5.2.5/ext/apc/apc_stack.h       2007-12-26 16:51:32.000000000 -0600 
    999910293@@ -0,0 +1,58 @@ 
    1000010294+/* 
     
    1005610350+ * vim<600: expandtab sw=4 ts=4 sts=4 
    1005710351+ */ 
    10058 Index: php-5.2.4/ext/apc/apc_zend.c 
    10059 =================================================================== 
    10060 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    10061 +++ php-5.2.4/ext/apc/apc_zend.c        2007-09-02 12:24:46.000000000 +0200 
     10352diff -ubrN php-5.2.5-orig/ext/apc/apc_zend.c php-5.2.5/ext/apc/apc_zend.c 
     10353--- php-5.2.5-orig/ext/apc/apc_zend.c   1969-12-31 18:00:00.000000000 -0600 
     10354+++ php-5.2.5/ext/apc/apc_zend.c        2007-12-26 16:51:32.000000000 -0600 
    1006210355@@ -0,0 +1,277 @@ 
    1006310356+/* 
     
    1033810631+ * vim<600: expandtab sw=4 ts=4 sts=4 
    1033910632+ */ 
    10340 Index: php-5.2.4/ext/apc/apc_zend.h 
    10341 =================================================================== 
    10342 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    10343 +++ php-5.2.4/ext/apc/apc_zend.h        2007-09-02 12:24:46.000000000 +0200 
     10633diff -ubrN php-5.2.5-orig/ext/apc/apc_zend.h php-5.2.5/ext/apc/apc_zend.h 
     10634--- php-5.2.5-orig/ext/apc/apc_zend.h   1969-12-31 18:00:00.000000000 -0600 
     10635+++ php-5.2.5/ext/apc/apc_zend.h        2007-12-26 16:51:32.000000000 -0600 
    1034410636@@ -0,0 +1,53 @@ 
    1034510637+/* 
     
    1039610688+ * vim<600: expandtab sw=4 ts=4 sts=4 
    1039710689+ */ 
    10398 Index: php-5.2.4/ext/apc/CHANGELOG 
    10399 =================================================================== 
    10400 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    10401 +++ php-5.2.4/ext/apc/CHANGELOG 2007-09-02 12:24:46.000000000 +0200 
    10402 @@ -0,0 +1,192 @@ 
     10690diff -ubrN php-5.2.5-orig/ext/apc/arch/atomic.h php-5.2.5/ext/apc/arch/atomic.h 
     10691--- php-5.2.5-orig/ext/apc/arch/atomic.h        1969-12-31 18:00:00.000000000 -0600 
     10692+++ php-5.2.5/ext/apc/arch/atomic.h     2007-12-26 16:51:32.000000000 -0600 
     10693@@ -0,0 +1,38 @@ 
     10694+/* 
     10695+  +----------------------------------------------------------------------+ 
     10696+  | APC                                                                  | 
     10697+  +----------------------------------------------------------------------+ 
     10698+  | Copyright (c) 2006 The PHP Group                                     | 
     10699+  +----------------------------------------------------------------------+ 
     10700+  | This source file is subject to version 3.01 of the PHP license,      | 
     10701+  | that is bundled with this package in the file LICENSE, and is        | 
     10702+  | available through the world-wide-web at the following url:           | 
     10703+  | http://www.php.net/license/3_01.txt                                  | 
     10704+  | If you did not receive a copy of the PHP license and are unable to   | 
     10705+  | obtain it through the world-wide-web, please send a note to          | 
     10706+  | license@php.net so we can mail you a copy immediately.               | 
     10707+  +----------------------------------------------------------------------+ 
     10708+  | Authors: Brian Shire <shire@php.net>                                 | 
     10709+  +----------------------------------------------------------------------+ 
     10710+ 
     10711+ */ 
     10712+ 
     10713+/* $Id: atomic.h,v 1.1 2006/09/29 07:13:01 shire Exp $ */ 
     10714+ 
     10715+#ifndef APC_ARCH_ATOMIC_H 
     10716+ 
     10717+#define APC_ARCH_ATOMIC_H 
     10718+ 
     10719+#if defined __x86_64__ 
     10720+#include "x86_64/atomic.h" 
     10721+ 
     10722+#elif defined __i386__ 
     10723+#include "i386/atomic.h" 
     10724+ 
     10725+#else 
     10726+#error "Unknown or Unsupported Architecture.  If you would like futex suupport for your architecture, please file a request at http://pecl.php.net/bugs/report.php?package=APC" 
     10727+ 
     10728+#endif 
     10729+ 
     10730+ 
     10731+#endif 
     10732diff -ubrN php-5.2.5-orig/ext/apc/arch/i386/atomic.h php-5.2.5/ext/apc/arch/i386/atomic.h 
     10733--- php-5.2.5-orig/ext/apc/arch/i386/atomic.h   1969-12-31 18:00:00.000000000 -0600 
     10734+++ php-5.2.5/ext/apc/arch/i386/atomic.h        2007-12-26 16:51:32.000000000 -0600 
     10735@@ -0,0 +1,79 @@ 
     10736+/* 
     10737+  +----------------------------------------------------------------------+ 
     10738+  | APC                                                                  | 
     10739+  +----------------------------------------------------------------------+ 
     10740+  | Copyright (c) 2006 The PHP Group                                     | 
     10741+  +----------------------------------------------------------------------+ 
     10742+  | This source file is subject to version 3.01 of the PHP license,      | 
     10743+  | that is bundled with this package in the file LICENSE, and is        | 
     10744+  | available through the world-wide-web at the following url:           | 
     10745+  | http://www.php.net/license/3_01.txt                                  | 
     10746+  | If you did not receive a copy of the PHP license and are unable to   | 
     10747+  | obtain it through the world-wide-web, please send a note to          | 
     10748+  | license@php.net so we can mail you a copy immediately.               | 
     10749+  +----------------------------------------------------------------------+ 
     10750+  | Authors: Brian Shire <shire@php.net>                                 | 
     10751+  +----------------------------------------------------------------------+ 
     10752+ 
     10753+ */ 
     10754+ 
     10755+/* $Id: atomic.h,v 1.1 2006/09/29 07:13:01 shire Exp $ */ 
     10756+ 
     10757+ 
     10758+#include <sys/syscall.h> 
     10759+#include <sys/time.h> 
     10760+#include <linux/futex.h> 
     10761+ 
     10762+/* int sys_futex (void *futex, int op, int val, const struct timespec *timeout); */ 
     10763+static inline long int apc_sys_futex(void *futex, int op, int val, const struct timespec *timeout) { 
     10764+ 
     10765+  long int ret; 
     10766+ 
     10767+  /* i386 system calls are performed with nt 80h operation. 
     10768+   *  the argument order is a, b, c, d, S, D   
     10769+   */  
     10770+  asm volatile ("int $0x80"  
     10771+       : "=a" (ret) 
     10772+       : "0" (SYS_futex),  
     10773+         "b" (futex),  
     10774+         "c" (op),  
     10775+         "d" (val), 
     10776+         "S" (timeout) 
     10777+       : "memory" 
     10778+      ); 
     10779+ 
     10780+  return ret; 
     10781+ 
     10782+}  
     10783+ 
     10784+ 
     10785+static inline int apc_cmpxchg(volatile int *ptr, int old, int new) { 
     10786+ 
     10787+    int prev; 
     10788+ 
     10789+    asm volatile ("LOCK cmpxchgl %1, %2" 
     10790+                   : "=a" (prev) 
     10791+                   : "r" (new),  
     10792+                     "m" (*(ptr)),  
     10793+                     "0"(old) 
     10794+                   : "memory", "cc" 
     10795+                 ); 
     10796+ 
     10797+    return prev; 
     10798+} 
     10799+ 
     10800+static inline int apc_xchg(volatile int *ptr, int new) { 
     10801+ 
     10802+  int ret; 
     10803 
     10804+  asm volatile ("LOCK xchgl %[new], %[ptr]" 
     10805+                : "=a" (ret) 
     10806+                : [new] "0" (new),  
     10807+                  [ptr] "m" (*(ptr)) 
     10808+                : "memory" 
     10809+               ); 
     10810+ 
     10811+  return ret; 
     10812 
     10813+} 
     10814+ 
     10815diff -ubrN php-5.2.5-orig/ext/apc/arch/x86_64/atomic.h php-5.2.5/ext/apc/arch/x86_64/atomic.h 
     10816--- php-5.2.5-orig/ext/apc/arch/x86_64/atomic.h 1969-12-31 18:00:00.000000000 -0600 
     10817+++ php-5.2.5/ext/apc/arch/x86_64/atomic.h      2007-12-26 16:51:32.000000000 -0600 
     10818@@ -0,0 +1,80 @@ 
     10819+/* 
     10820+  +----------------------------------------------------------------------+ 
     10821+  | APC                                                                  | 
     10822+  +----------------------------------------------------------------------+ 
     10823+  | Copyright (c) 2006 The PHP Group                                     | 
     10824+  +----------------------------------------------------------------------+ 
     10825+  | This source file is subject to version 3.01 of the PHP license,      | 
     10826+  | that is bundled with this package in the file LICENSE, and is        | 
     10827+  | available through the world-wide-web at the following url:           | 
     10828+  | http://www.php.net/license/3_01.txt                                  | 
     10829+  | If you did not receive a copy of the PHP license and are unable to   | 
     10830+  | obtain it through the world-wide-web, please send a note to          | 
     10831+  | license@php.net so we can mail you a copy immediately.               | 
     10832+  +----------------------------------------------------------------------+ 
     10833+  | Authors: Brian Shire <shire@php.net>                                 | 
     10834+  +----------------------------------------------------------------------+ 
     10835+ 
     10836+ */ 
     10837+ 
     10838+/* $Id: atomic.h,v 1.1 2006/09/29 07:13:01 shire Exp $ */ 
     10839+ 
     10840+ 
     10841+#include <sys/syscall.h> 
     10842+#include <sys/time.h> 
     10843+#include <linux/futex.h> 
     10844+ 
     10845+/* int sys_futex (void *futex, int op, int val, const struct timespec *timeout); */ 
     10846+static inline long int apc_sys_futex(void *futex, int op, int val, const struct timespec *timeout) { 
     10847+ 
     10848+  long int ret; 
     10849+ 
     10850+  /* x86_64 system calls are performed with the faster SYSCALL operation. 
     10851+   *  the argument order is D, S, d, c, b, a rather than 
     10852+   *  a, b, c, d, S, D as on the i386 int 80h call.  
     10853+  */  
     10854+  asm volatile ("syscall"  
     10855+       : "=a" (ret) 
     10856+       : "0" (SYS_futex),  
     10857+         "D" (futex),  
     10858+         "S" (op),  
     10859+         "d" (val), 
     10860+         "c" (timeout) 
     10861+       : "r11", "rcx", "memory" 
     10862+      ); 
     10863+ 
     10864+  return ret; 
     10865+ 
     10866+}  
     10867+ 
     10868+ 
     10869+static inline int apc_cmpxchg(volatile int *ptr, int old, int new) { 
     10870+ 
     10871+    int prev; 
     10872+ 
     10873+    asm volatile ("LOCK cmpxchgl %1, %2" 
     10874+                   : "=a" (prev) 
     10875+                   : "r" (new),  
     10876+                     "m" (*(ptr)),  
     10877+                     "0"(old) 
     10878+                   : "memory", "cc" 
     10879+                 ); 
     10880+ 
     10881+    return prev; 
     10882+} 
     10883+ 
     10884+static inline int apc_xchg(volatile int *ptr, int new) { 
     10885+ 
     10886+    int ret; 
     10887 
     10888+    asm volatile ("LOCK xchgl %[new], %[ptr]" 
     10889+                  : "=a" (ret) 
     10890+                  : [new] "0" (new),  
     10891+                    [ptr] "m" (*(ptr)) 
     10892+                  : "memory" 
     10893+                 ); 
     10894+ 
     10895+    return ret; 
     10896+     
     10897+} 
     10898+ 
     10899diff -ubrN php-5.2.5-orig/ext/apc/CHANGELOG php-5.2.5/ext/apc/CHANGELOG 
     10900--- php-5.2.5-orig/ext/apc/CHANGELOG    1969-12-31 18:00:00.000000000 -0600 
     10901+++ php-5.2.5/ext/apc/CHANGELOG 2007-12-26 16:51:32.000000000 -0600 
     10902@@ -0,0 +1,211 @@ 
     10903+3.0.16: 2007-12-26 
     10904+- Fix for longstanding cache-full crash (Christian Seiler) 
     10905+  http://news.php.net/php.pecl.dev/4951 for the details 
     10906+- Added optional shm unmap on a fatal signal feature (Lucas Nealan) 
     10907+- Added PTHREAD_MUTEX_ADAPTIVE_NP option pthread locks (Paul Saab) 
     10908+- Minor cleanups (Lucas Nealan) 
     10909+- Added configure option to enable apc_cache_info('filehits') (Shire) 
     10910+ 
     10911+3.0.15: 2007-10-18 
     10912+- Eliminate a per-request time() syscall (Rasmus) 
     10913+- Added rfc1867 prefix, name, and freq ini options (Shire) 
     10914+- Allow deletion of individual user cache entries via apc.php (Sara) 
     10915+- Fix overzealous cleanup during RSHUTDOWN (Gopal) 
     10916+- Fix memory alignment and locking issues (Gopal)  
     10917+- Make apc_compile insert/replace entries (Shire) 
     10918+- Make mixed inheritance recompile & cache afresh  (Gopal) 
     10919+- Make nostat mode search include_path for canonicalization (Gopal) 
     10920+- ZTS & other compile fixes (Gopal, Edin, Shire) 
     10921 
    1040310922+3.0.14: 2007-03-21 
    1040410923+- Build fix (Shire) 
     
    1059311112+1.0.1: 
    1059411113+- added optional file modification time check [djc 2001-01-12] 
    10595 Index: php-5.2.4/ext/apc/config.m4 
    10596 =================================================================== 
    10597 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    10598 +++ php-5.2.4/ext/apc/config.m4 2007-09-02 12:24:46.000000000 +0200 
    10599 @@ -0,0 +1,214 @@ 
     11114diff -ubrN php-5.2.5-orig/ext/apc/config.m4 php-5.2.5/ext/apc/config.m4 
     11115--- php-5.2.5-orig/ext/apc/config.m4    1969-12-31 18:00:00.000000000 -0600 
     11116+++ php-5.2.5/ext/apc/config.m4 2007-12-26 16:51:32.000000000 -0600 
     11117@@ -0,0 +1,238 @@ 
    1060011118+dnl 
    10601 +dnl $Id: config.m4,v 3.25 2007/02/24 15:57:59 rasmus Exp $ 
     11119+dnl $Id: config.m4,v 3.30 2007/12/26 22:31:20 rasmus Exp $ 
    1060211120+dnl 
    1060311121+ 
     
    1064711165+[  --enable-apc           Enable APC support]) 
    1064811166+ 
     11167+AC_MSG_CHECKING(Checking whether we should enable cache request file info) 
     11168+AC_ARG_ENABLE(apc-filehits, 
     11169+[  --enable-apc-filehits   Enable per request file info about files used from the APC cache (ie: apc_cache_info('filehits')) ], 
     11170+[ 
     11171+  PHP_APC_FILEHITS=$enableval 
     11172+       AC_MSG_RESULT($enableval) 
     11173+],  
     11174+[ 
     11175+  PHP_APC_FILEHITS=no 
     11176+       AC_MSG_RESULT(no) 
     11177+]) 
     11178+ 
     11179+ 
     11180+ 
    1064911181+AC_MSG_CHECKING(Checking whether we should use mmap) 
    1065011182+AC_ARG_ENABLE(apc-mmap, 
     
    1069011222+AC_MSG_CHECKING(Checking whether we should use pthread mutex locking) 
    1069111223+AC_ARG_ENABLE(apc-pthreadmutex, 
    10692 +[  --enable-apc-pthreadmutex 
    10693 +                          Enable pthread mutex locking  EXPERIMENTAL ], 
    10694 +[ 
    10695 +  PHP_APC_PTHREADMUTEX=$enableval 
    10696 +  AC_MSG_RESULT($enableval) 
    10697 +], 
     11224+[  --disable-apc-pthreadmutex 
     11225+                          Disable pthread mutex locking ], 
    1069811226+[ 
    1069911227+  PHP_APC_PTHREADMUTEX=no 
    1070011228+  AC_MSG_RESULT(no) 
     11229+], 
     11230+[ 
     11231+  PHP_APC_PTHREADMUTEX=yes 
     11232+  AC_MSG_RESULT(yes) 
    1070111233+]) 
    1070211234+if test "$PHP_APC_PTHREADMUTEX" != "no"; then 
     
    1071611248+                               } 
    1071711249+                               if(pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED)) {  
    10718 +                                       puts("Unable to set PTHREAD_PROCESS_SHARED (pthread_mutexattr_setpshared), your system may not support shared mutex's which are required. (if you're using threads you should just use the built-in php thread locking)."); 
     11250+                                       puts("Unable to set PTHREAD_PROCESS_SHARED (pthread_mutexattr_setpshared), your system may not support shared mutex's."); 
    1071911251+                                       return -1;  
    1072011252+                               }        
     
    1074011272+                       ], 
    1074111273+                       [ dnl -Failure- 
    10742 +                               AC_MSG_ERROR([It doesn't appear that pthread mutex's are supported on your system, please try a different configuration]) 
     11274+                               AC_MSG_WARN([It doesn't appear that pthread mutex's are supported on your system]) 
     11275+                       PHP_APC_PTHREADMUTEX=no 
    1074311276+                       ], 
    1074411277+                       [ 
     
    1076411297+if test "$PHP_APC" != "no"; then 
    1076511298+  test "$PHP_APC_MMAP" != "no" && AC_DEFINE(APC_MMAP, 1, [ ]) 
    10766 +  test "$PHP_APC_SEM"  != "no" && AC_DEFINE(APC_SEM_LOCKS, 1, [ ]) 
    10767 +  test "$PHP_APC_FUTEX" != "no" && AC_DEFINE(APC_FUTEX_LOCKS, 1, [ ]) 
    10768 +  test "$PHP_APC_PTHREADMUTEX" != "no" && AC_DEFINE(APC_PTHREADMUTEX_LOCKS, 1, [ ]) 
    10769 +  test "$PHP_APC_SPINLOCKS" != "no" && AC_DEFINE(APC_SPIN_LOCKS, 1, [ ])  
    10770 + 
     11299+  test "$PHP_APC_FILEHITS" != "no" && AC_DEFINE(APC_FILEHITS, 1, [ ]) 
     11300+ 
     11301+       if test "$PHP_APC_SEM" != "no"; then 
     11302+               AC_DEFINE(APC_SEM_LOCKS, 1, [ ]) 
     11303+       elif test "$PHP_APC_FUTEX" != "no"; then 
     11304+               AC_DEFINE(APC_FUTEX_LOCKS, 1, [ ]) 
     11305+       elif test "$PHP_APC_SPINLOCKS" != "no"; then 
     11306+               AC_DEFINE(APC_SPIN_LOCKS, 1, [ ])  
     11307+       elif test "$PHP_APC_PTHREADMUTEX" != "no"; then  
     11308+               AC_DEFINE(APC_PTHREADMUTEX_LOCKS, 1, [ ]) 
     11309+       fi 
     11310+ 
     11311+  AC_CHECK_FUNCS(sigaction) 
    1077111312+  AC_CACHE_CHECK(for union semun, php_cv_semun, 
    1077211313+  [ 
     
    1079811339+               apc_futex.c \ 
    1079911340+               apc_pthreadmutex.c \ 
    10800 +                          apc_spin.c \ 
    10801 +                          pgsql_s_lock.c \ 
     11341+               apc_spin.c \ 
     11342+               pgsql_s_lock.c \ 
    1080211343+               apc_sma.c \ 
    1080311344+               apc_stack.c \ 
    1080411345+               apc_zend.c \ 
    10805 +               apc_rfc1867.c " 
     11346+               apc_rfc1867.c \ 
     11347+               apc_signal.c " 
    1080611348+ 
    1080711349+  PHP_CHECK_LIBRARY(rt, shm_open, [PHP_ADD_LIBRARY(rt,,APC_SHARED_LIBADD)]) 
     
    1081211354+fi 
    1081311355+ 
    10814 Index: php-5.2.4/ext/apc/INSTALL 
    10815 =================================================================== 
    10816 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    10817 +++ php-5.2.4/ext/apc/INSTALL   2007-09-02 12:24:46.000000000 +0200 
    10818 @@ -0,0 +1,405 @@ 
     11356diff -ubrN php-5.2.5-orig/ext/apc/INSTALL php-5.2.5/ext/apc/INSTALL 
     11357--- php-5.2.5-orig/ext/apc/INSTALL      1969-12-31 18:00:00.000000000 -0600 
     11358+++ php-5.2.5/ext/apc/INSTALL   2007-12-26 16:51:32.000000000 -0600 
     11359@@ -0,0 +1,422 @@ 
    1081911360+Installation Instructions for APC 
    1082011361+--------------------------------- 
     
    1121011751+                            (Default: 0) 
    1121111752+ 
     11753+    apc.rfc1867_prefix      Key prefix to use for the user cache entry generated by 
     11754+                            rfc1867 upload progress functionality.   
     11755+                            (Default: "upload_") 
     11756+ 
     11757+    apc.rfc1867_name        Specify the hidden form entry name that activates APC upload 
     11758+                            progress and specifies the user cache key suffix. 
     11759+                            (Default: "APC_UPLOAD_PROGRESS") 
     11760+ 
     11761+    apc.rfc1867_freq        The frequency that updates should be made to the user cache 
     11762+                            entry for upload progress.  This can take the form of a  
     11763+                            percentage of the total file size or a size in bytes  
     11764+                            optionally suffixed with 'k', 'm', or 'g' for kilobytes,  
     11765+                            megabytes, or gigabytes respectively (case insensitive).   
     11766+                            A setting of 0 updates as often as possible, which may cause  
     11767+                            slower uploads. 
     11768+                            (Default: 0) 
     11769+ 
    1121211770+    apc.localcache          This enables a lock-free local process shadow-cache which  
    1121311771+                            reduces lock contention when the cache is being written to. 
     
    1122211780+                            expensive system calls used. 
    1122311781+                            (Default: 0) 
    11224 Index: php-5.2.4/ext/apc/LICENSE 
    11225 =================================================================== 
    11226 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    11227 +++ php-5.2.4/ext/apc/LICENSE   2007-09-02 12:24:46.000000000 +0200 
     11782diff -ubrN php-5.2.5-orig/ext/apc/LICENSE php-5.2.5/ext/apc/LICENSE 
     11783--- php-5.2.5-orig/ext/apc/LICENSE      1969-12-31 18:00:00.000000000 -0600 
     11784+++ php-5.2.5/ext/apc/LICENSE   2007-12-26 16:51:32.000000000 -0600 
    1122811785@@ -0,0 +1,68 @@ 
    1122911786+--------------------------------------------------------------------  
     
    1129511852+PHP includes the Zend Engine, freely available at 
    1129611853+<http://www.zend.com>. 
    11297 Index: php-5.2.4/ext/apc/NOTICE 
    11298 =================================================================== 
    11299 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    11300 +++ php-5.2.4/ext/apc/NOTICE    2007-09-02 12:24:46.000000000 +0200 
     11854diff -ubrN php-5.2.5-orig/ext/apc/NOTICE php-5.2.5/ext/apc/NOTICE 
     11855--- php-5.2.5-orig/ext/apc/NOTICE       1969-12-31 18:00:00.000000000 -0600 
     11856+++ php-5.2.5/ext/apc/NOTICE    2007-12-26 16:51:32.000000000 -0600 
    1130111857@@ -0,0 +1,43 @@ 
    1130211858+This is the NOTICE file that holds acknowledgements and stuff. 
     
    1134311899+    Christian Rishøj    help debugging phplib problems 
    1134411900+    Sascha Schumann     memory error bug fix 
    11345 Index: php-5.2.4/ext/apc/pgsql_s_lock.c 
    11346 =================================================================== 
    11347 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    11348 +++ php-5.2.4/ext/apc/pgsql_s_lock.c    2007-09-02 12:24:46.000000000 +0200 
     11901diff -ubrN php-5.2.5-orig/ext/apc/package.xml php-5.2.5/ext/apc/package.xml 
     11902--- php-5.2.5-orig/ext/apc/package.xml  1969-12-31 18:00:00.000000000 -0600 
     11903+++ php-5.2.5/ext/apc/package.xml       2007-12-26 16:51:32.000000000 -0600 
     11904@@ -0,0 +1,534 @@ 
     11905+<?xml version="1.0" encoding="UTF-8"?> 
     11906+<package packagerversion="1.4.9" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd"> 
     11907+ <name>APC</name> 
     11908+ <channel>pecl.php.net</channel> 
     11909+ <summary>Alternative PHP Cache</summary> 
     11910+ <description>APC is a free, open, and robust framework for caching and optimizing PHP intermediate code.</description> 
     11911+ <lead> 
     11912+  <name>Daniel Cowgill</name> 
     11913+  <user>dcowgill</user> 
     11914+  <email>dan@mail.communityconnect.com</email> 
     11915+  <active>no</active> 
     11916+ </lead> 
     11917+ <lead> 
     11918+  <name>George Schlossnagle</name> 
     11919+  <user>gschlossnagle</user> 
     11920+  <email>george@omniti.com</email> 
     11921+  <active>no</active> 
     11922+ </lead> 
     11923+ <lead> 
     11924+  <name>Rasmus Lerdorf</name> 
     11925+  <user>rasmus</user> 
     11926+  <email>rasmus@php.net</email> 
     11927+  <active>yes</active> 
     11928+ </lead> 
     11929+ <lead> 
     11930+  <name>Gopal Vijayaraghavan</name> 
     11931+  <user>gopalv</user> 
     11932+  <email>gopalv@php.net</email> 
     11933+  <active>yes</active> 
     11934+ </lead> 
     11935+ <developer> 
     11936+  <name>Edin Kadribasic</name> 
     11937+  <user>edink</user> 
     11938+  <email>edink@emini.dk</email> 
     11939+  <active>yes</active> 
     11940+ </developer> 
     11941+ <developer> 
     11942+  <name>Ilia Alshanetsky</name> 
     11943+  <user>iliaa</user> 
     11944+  <email>ilia@prohost.org</email> 
     11945+  <active>yes</active> 
     11946+ </developer> 
     11947+ <developer> 
     11948+  <name>Marcus Börger</name> 
     11949+  <user>helly</user> 
     11950+  <email>helly@php.net</email> 
     11951+  <active>yes</active> 
     11952+ </developer> 
     11953+ <developer> 
     11954+  <name>Sara Golemon</name> 
     11955+  <user>pollita</user> 
     11956+  <email>pollita@php.net</email> 
     11957+  <active>yes</active> 
     11958+ </developer> 
     11959+ <developer> 
     11960+  <name>Brian Shire</name> 
     11961+  <user>shire</user> 
     11962+  <email>shire@php.net</email> 
     11963+  <active>yes</active> 
     11964+ </developer> 
     11965+ <date>2007-12-26</date> 
     11966+ <time>14:51:32</time> 
     11967+ <version> 
     11968+  <release>3.0.16</release> 
     11969+  <api>3.0.0</api> 
     11970+ </version> 
     11971+ <stability> 
     11972+  <release>stable</release> 
     11973+  <api>stable</api> 
     11974+ </stability> 
     11975+ <license uri="http://www.php.net/license">PHP License</license> 
     11976+ <notes>* Fix for longstanding cache-full crash (Christian Seiler) 
     11977+  http://news.php.net/php.pecl.dev/4951 for the details 
     11978+* Added optional shm unmap on a fatal signal feature (Lucas Nealan) 
     11979+* Added PTHREAD_MUTEX_ADAPTIVE_NP option pthread locks (Paul Saab) 
     11980+* Minor cleanups (Lucas Nealan) 
     11981+* Added configure option to enable apc_cache_info(&apos;filehits&apos;) (Shire)</notes> 
     11982+ <contents> 
     11983+  <dir name="/"> 
     11984+   <file md5sum="841596cff3b9bd83e79d01ccb591ff55" name="tests/apc_001.phpt" role="test" /> 
     11985+   <file md5sum="cc1dba4e429ff93dce1ca7dea01c2899" name="tests/apc_002.phpt" role="test" /> 
     11986+   <file md5sum="411fdc85b170ec696298d38f93132d6b" name="tests/apc_003.phpt" role="test" /> 
     11987+   <file md5sum="6ecba4154b6bd6f8703000f5198710cc" name="tests/skipif.inc" role="test" /> 
     11988+   <file md5sum="2a2e8b29dba8df697dbd81b306ccbe73" name="arch/i386/atomic.h" role="src" /> 
     11989+   <file md5sum="7f01c5cd3a1742c20d6d285f119596a6" name="arch/x86_64/atomic.h" role="src" /> 
     11990+   <file md5sum="26748a0d6567c5611408eb69fb25c671" name="arch/atomic.h" role="src" /> 
     11991+   <file md5sum="0714a0039d9ea63cfc26043a7d86f04c" name="CHANGELOG" role="doc" /> 
     11992+   <file md5sum="3b6ad608e37fb34b24afb90084b4770b" name="INSTALL" role="doc" /> 
     11993+   <file md5sum="694f49a7e1f276ba75a3dd2c5acd580d" name="LICENSE" role="doc" /> 
     11994+   <file md5sum="eea150699d3dffb2cdf7d243854189d7" name="NOTICE" role="doc" /> 
     11995+   <file md5sum="efa40416571fc54aa59912203c0391e6" name="TODO" role="doc" /> 
     11996+   <file md5sum="b7dd14328e218d3ecc97d85fb83d7ba7" name="TECHNOTES.txt" role="doc" /> 
     11997+   <file md5sum="c4384f370db6a6112d6c21268bc9a278" name="apc.c" role="src" /> 
     11998+   <file md5sum="09a525ff9a3850e6de42eee2adf07463" name="apc.dsp" role="src" /> 
     11999+   <file md5sum="109694ee417962096eb3e962d6bcce8a" name="apc.h" role="src" /> 
     12000+   <file md5sum="ee19b49ef26dbd491b846a19f9bc9e6a" name="apc_cache.c" role="src" /> 
     12001+   <file md5sum="e0a4f0c5a49a0beba10f2f831e1b63b6" name="apc_cache.h" role="src" /> 
     12002+   <file md5sum="7576310688084dd737f7c7bc11c75e22" name="apc_compile.c" role="src" /> 
     12003+   <file md5sum="a0eea1abcf4ec395ea9a195e98c2cc65" name="apc_compile.h" role="src" /> 
     12004+   <file md5sum="64bbe1f8cf18261255ef5874039e76e9" name="apc_debug.c" role="src" /> 
     12005+   <file md5sum="46d182a6122f3c29a1904f62af7cfb51" name="apc_debug.h" role="src" /> 
     12006+   <file md5sum="3dbdb44d0fc2d45ae15719b4fc5746cd" name="apc_fcntl.c" role="src" /> 
     12007+   <file md5sum="f4fc86769ce871d42ce0085fa7323d79" name="apc_fcntl.h" role="src" /> 
     12008+   <file md5sum="9dffe726c9b6cfdd640e07782a0f409b" name="apc_futex.c" role="src" /> 
     12009+   <file md5sum="ff999238a10bfb6b715e4e8f54ec8326" name="apc_futex.h" role="src" /> 
     12010+   <file md5sum="33d241202d41095bc1b6fdafc1063cb9" name="apc_globals.h" role="src" /> 
     12011+   <file md5sum="3e6f98c635b18902aab221f29d8b70ec" name="apc_lock.h" role="src" /> 
     12012+   <file md5sum="0667187c715fea98569b51a491fb445b" name="apc_main.c" role="src" /> 
     12013+   <file md5sum="2e8f99d31b4d088eb14859c6e137544a" name="apc_main.h" role="src" /> 
     12014+   <file md5sum="e9e447ef3994b85d064c9a49f7ed0917" name="apc_mmap.c" role="src" /> 
     12015+   <file md5sum="a22df1256e20fef8160bbf9529723b50" name="apc_php.h" role="src" /> 
     12016+   <file md5sum="c285337c2e0b852de9f79ac5015a3fa7" name="apc_pthreadmutex.c" role="src" /> 
     12017+   <file md5sum="e4e6943b0cfb31facd1148c2dbfc4c93" name="apc_pthreadmutex.h" role="src" /> 
     12018+   <file md5sum="ea3822772adb45e0046faef855c32aba" name="apc_sem.c" role="src" /> 
     12019+   <file md5sum="1a7fb689f8d5b01fad537b277c81d59f" name="apc_sem.h" role="src" /> 
     12020+   <file md5sum="632e60d387e5555f4aa03a8948f52ea7" name="apc_shm.c" role="src" /> 
     12021+   <file md5sum="6de8e94976f01b2f48ef97020a008774" name="apc_shm.h" role="src" /> 
     12022+   <file md5sum="25d3e2a3d1c2f9afa8e103492ca7e89e" name="apc_sma.c" role="src" /> 
     12023+   <file md5sum="fdc0aebc501f2e29389611fa61084da0" name="apc_sma.h" role="src" /> 
     12024+   <file md5sum="ecd6cc1d56d99dbb7364d40c975fca5e" name="apc_spin.c" role="src" /> 
     12025+   <file md5sum="c716852258453471a6927f95a617e30f" name="apc_spin.h" role="src" /> 
     12026+   <file md5sum="17cceda297a61a9185bcafd7d897fad4" name="apc_stack.c" role="src" /> 
     12027+   <file md5sum="db2f213a3e616313d7864222874197ea" name="apc_stack.h" role="src" /> 
     12028+   <file md5sum="8cccb8ecfa2d5a893537b2c1a8b6b718" name="apc_zend.c" role="src" /> 
     12029+   <file md5sum="2ee61624ec5d779d02746ba7254aed14" name="apc_zend.h" role="src" /> 
     12030+   <file md5sum="113d74a5e70119a63fb86815bf50d03b" name="apc_signal.c" role="src" /> 
     12031+   <file md5sum="af4c7d0595ce32346f7ee37707d7dada" name="apc_signal.h" role="src" /> 
     12032+   <file md5sum="5cbb3cbe6477799e7e5fd816eda69937" name="config.m4" role="src" /> 
     12033+   <file md5sum="b748744f64eb4fbe201cce84cc3d7e33" name="php_apc.c" role="src" /> 
     12034+   <file md5sum="8c092033ef0cd8a5d207acb4f6ecec11" name="php_apc.h" role="src" /> 
     12035+   <file md5sum="76fe025ee14897783cee848dc1a77fa6" name="pgsql_s_lock.c" role="src" /> 
     12036+   <file md5sum="b67725b96ecf0e6851eccce632bab289" name="pgsql_s_lock.h" role="src" /> 
     12037+   <file md5sum="298e1c6721b21635ef46094c6a175af5" name="apc_fcntl_win32.c" role="src" /> 
     12038+   <file md5sum="072c127617c90a92331372a3b99494d3" name="apc_rfc1867.c" role="src" /> 
     12039+   <file md5sum="41fb805e7a151dc6edfe78780b5102d0" name="apc.php" role="php" /> 
     12040+  </dir> 
     12041+ </contents> 
     12042+ <dependencies> 
     12043+  <required> 
     12044+   <php> 
     12045+    <min>4.3.0</min> 
     12046+    <exclude>5.0.0</exclude> 
     12047+    <exclude>5.0.1</exclude> 
     12048+    <exclude>5.0.2</exclude> 
     12049+    <exclude>5.0.3</exclude> 
     12050+    <exclude>5.0.4</exclude> 
     12051+    <exclude>5.0.5</exclude> 
     12052+   </php> 
     12053+   <pearinstaller> 
     12054+    <min>1.4.0</min> 
     12055+   </pearinstaller> 
     12056+  </required> 
     12057+ </dependencies> 
     12058+ <providesextension>apc</providesextension> 
     12059+ <extsrcrelease> 
     12060+  <configureoption default="yes" name="with-apxs" prompt="Use apxs to set compile flags (if using APC with Apache)?" /> 
     12061+ </extsrcrelease> 
     12062+ <changelog> 
     12063+  <release> 
     12064+   <stability> 
     12065+    <release>stable</release> 
     12066+    <api>stable</api> 
     12067+   </stability> 
     12068+   <version> 
     12069+    <release>2.0.0</release> 
     12070+    <api>2.0.0</api> 
     12071+   </version> 
     12072+   <date>2003-07-01</date> 
     12073+   <notes>Complete rework.</notes> 
     12074+  </release> 
     12075+  <release> 
     12076+   <stability> 
     12077+    <release>stable</release> 
     12078+    <api>stable</api> 
     12079+   </stability> 
     12080+   <version> 
     12081+    <release>2.0.1</release> 
     12082+    <api>2.0.0</api> 
     12083+   </version> 
     12084+   <date>2003-07-01</date> 
     12085+   <notes>Win32 support added.</notes> 
     12086+  </release> 
     12087+  <release> 
     12088+   <stability> 
     12089+    <release>stable</release> 
     12090+    <api>stable</api> 
     12091+   </stability> 
     12092+   <version> 
     12093+    <release>2.0.2</release> 
     12094+    <api>2.0.0</api> 
     12095+   </version> 
     12096+   <date>2004-03-12</date> 
     12097+   <notes>Fixed non-existant class bug.</notes> 
     12098+  </release> 
     12099+  <release> 
     12100+   <stability> 
     12101+    <release>stable</release> 
     12102+    <api>stable</api> 
     12103+   </stability> 
     12104+   <version> 
     12105+    <release>3.0.0</release> 
     12106+    <api>3.0.0</api> 
     12107+   </version> 
     12108+   <date>2005-07-05</date> 
     12109+   <notes>PHP-5.1 Support and numerous fixes</notes> 
     12110+  </release> 
     12111+  <release> 
     12112+   <stability> 
     12113+    <release>stable</release> 
     12114+    <api>stable</api> 
     12115+   </stability> 
     12116+   <version> 
     12117+    <release>3.0.1</release> 
     12118+    <api>3.0.0</api> 
     12119+   </version> 
     12120+   <date>2005-07-05</date> 
     12121+   <notes>PHP4 build fix</notes> 
     12122+  </release> 
     12123+  <release> 
     12124+   <stability> 
     12125+    <release>stable</release> 
     12126+    <api>stable</api> 
     12127+   </stability> 
     12128+   <version> 
     12129+    <release>3.0.2</release> 
     12130+    <api>3.0.0</api> 
     12131+   </version> 
     12132+   <date>2005-07-05</date> 
     12133+   <notes>Default to mmap and add a better error message for shmget failures</notes> 
     12134+  </release> 
     12135+  <release> 
     12136+   <stability> 
     12137+    <release>stable</release> 
     12138+    <api>stable</api> 
     12139+   </stability> 
     12140+   <version> 
     12141+    <release>3.0.3</release> 
     12142+    <api>3.0.0</api> 
     12143+   </version> 
     12144+   <date>2005-07-07</date> 
     12145+   <notes>Fix compile problem against PHP 5.0.x</notes> 
     12146+  </release> 
     12147+  <release> 
     12148+   <stability> 
     12149+    <release>stable</release> 
     12150+    <api>stable</api> 
     12151+   </stability> 
     12152+   <version> 
     12153+    <release>3.0.4</release> 
     12154+    <api>3.0.0</api> 
     12155+   </version> 
     12156+   <date>2005-07-18</date> 
     12157+   <notes>Add win32 support from Edin. 
     12158+Add --with-apxs switch to work around problem when loading APC into Apache binary compiled with LFS switches 
     12159+A couple of other minor fixes.</notes> 
     12160+  </release> 
     12161+  <release> 
     12162+   <stability> 
     12163+    <release>stable</release> 
     12164+    <api>stable</api> 
     12165+   </stability> 
     12166+   <version> 
     12167+    <release>3.0.5</release> 
     12168+    <api>3.0.0</api> 
     12169+   </version> 
     12170+   <date>2005-07-27</date> 
     12171+   <notes>Make it easier for sapis that only populate file_handle-&gt;filename to use APC. (Rasmus) 
     12172+Support extensions such as bcompiler that need to hook into compile_file. (Val) 
     12173+Ralf Becker&apos;s apcgui code has now become the default apc.php status page. (Ralf, Rasmus, Ilia) 
     12174+Segfault in cache cleanup code (Ilia, Rasmus)</notes> 
     12175+  </release> 
     12176+  <release> 
     12177+   <stability> 
     12178+    <release>stable</release> 
     12179+    <api>stable</api> 
     12180+   </stability> 
     12181+   <version> 
     12182+    <release>3.0.6</release> 
     12183+    <api>3.0.0</api> 
     12184+   </version> 
     12185+   <date>2005-07-30</date> 
     12186+   <notes>Added apc.php to package.xml file. 
     12187+Track per-entry memory usage. (Val) 
     12188+Various apc.php fixes and enhancements. (Ralf, Ilia, Rasmus) 
     12189+fcntl locking robustness fixes. (Rasmus) 
     12190+Shared read-locks where possible. (Rasmus) 
     12191+Added file_update_protection configuration parameter. (Rasmus) 
     12192+Windows ZTS fixes (Frank)</notes> 
     12193+  </release> 
     12194+  <release> 
     12195+   <stability> 
     12196+    <release>stable</release> 
     12197+    <api>stable</api> 
     12198+   </stability> 
     12199+   <version> 
     12200+    <release>3.0.7</release> 
     12201+    <api>3.0.0</api> 
     12202+   </version> 
     12203+   <date>2005-08-16</date> 
     12204+   <notes>Fix to apc.php to show final segment in frag chart. (Ilia) 
     12205+A couple of win32 fixes. (Frank) 
     12206+Add apc.enable_cli ini directive. (Rasmus) 
     12207+Add test cases. (Marcus) 
     12208+Fix apc_define_constants() bug - http://pecl.php.net/bugs/5084 (Rasmus) 
     12209+Simplify user cache handling by removing the user_cache_stack (Rasmus) 
     12210+Fix apc_fetch() memory corruption (Andrei,Rasmus) 
     12211+Added apc.max_file_size INI setting that allows exclusion of large files from being cached. Default file size limit, 1 megabyte. (Ilia)</notes> 
     12212+  </release> 
     12213+  <release> 
     12214+   <stability> 
     12215+    <release>stable</release> 
     12216+    <api>stable</api> 
     12217+   </stability> 
     12218+   <version> 
     12219+    <release>3.0.8</release> 
     12220+    <api>3.0.0</api> 
     12221+   </version> 
     12222+   <date>2005-08-24</date> 
     12223+   <notes>Fix invalid free in globals destructor introduced in 3.0.7 (Rasmus) 
     12224+Cache corruption fix in cache-full cleanup code (Gopal)</notes> 
     12225+  </release> 
     12226+  <release> 
     12227+   <stability> 
     12228+    <release>stable</release> 
     12229+    <api>stable</api> 
     12230+   </stability> 
     12231+   <version> 
     12232+    <release>3.0.9</release> 
     12233+    <api>3.0.0</api> 
     12234+   </version> 
     12235+   <date>2006-03-04</date> 
     12236+   <notes>Eliminate rand() call when slam_defense is not set (Rasmus) 
     12237+Fix for __isset problem (Gopal) 
     12238+Rewrite allocator from a &quot;best fit&quot; to a &quot;next fit&quot; algorithm (Rasmus) 
     12239+Added a Cache Full counter so we have an idea how many times the segment has filled up causing an expunge (Rasmus) 
     12240+Report back the correct number of available bytes in the segment instead of the allocated bytes. (Rasmus) 
     12241+Add cache busy flag which is set when an expunge is underway (Rasmus) 
     12242+Add automatic serialization of objects in apc_store() (Marcus) 
     12243+64-bit .ini flag fix (Rasmus) 
     12244+Static members fix (Gopal) 
     12245+sma_cleanup() mem leak fix (Rasmus) 
     12246+Fix for http://pecl.php.net/bugs/5311 (Rasmus) 
     12247+Fix autoglobals JIT bug (Gopal) 
     12248+Fix instance bug (Gopal) 
     12249+Add a lock cleanup safety net to request shutdown (Rasmus) 
     12250+Fix apc.slam_defense edge-case bug (Rasmus) 
     12251+User entry memory usage tracking support (Ilia) 
     12252+Allow keys used in apc_store/apc_fetch/apc_delete to be binary safe and prevent conflicts between keys that are found at the start of other keys. (Ilia)</notes> 
     12253+  </release> 
     12254+  <release> 
     12255+   <stability> 
     12256+    <release>stable</release> 
     12257+    <api>stable</api> 
     12258+   </stability> 
     12259+   <version> 
     12260+    <release>3.0.10</release> 
     12261+    <api>3.0.0</api> 
     12262+   </version> 
     12263+   <date>2006-03-11</date> 
     12264+   <notes>* Add apc.stat ini flag which defaults to 1.  If set to 0, the main script and any fullpath 
     12265+  includes will not be stat&apos;ed for any changes.  You will have to restart the server if you 
     12266+  change anything.  This mode increases performance quite a bit, especially if you have a 
     12267+  lot of includes. 
     12268+ 
     12269+* Get rid of the lock safety net hack I added in 3.0.9.  It seems to cause more problems 
     12270+  than it solves.  I&apos;ll need to revisit locking and signal handling at some point soon.</notes> 
     12271+  </release> 
     12272+  <release> 
     12273+   <stability> 
     12274+    <release>stable</release> 
     12275+    <api>stable</api> 
     12276+   </stability> 
     12277+   <version> 
     12278+    <release>3.0.11</release> 
     12279+    <api>3.0.0</api> 
     12280+   </version> 
     12281+   <date>2006-08-16</date> 
     12282+   <notes>* Made --enable-apc-mmap the default compile option (for real this time) 
     12283+ 
     12284+* Add an optional flag to apc_cache_info() and some apc.php tweaks to make it 
     12285+  only fetch header information to make it useful when you have tens of 
     12286+  thousands of entries.  (Brian Shire) 
     12287+ 
     12288+* 64-bit fixes (George) 
     12289+ 
     12290+* Don&apos;t mix Full Path and Inode keys (George) 
     12291+ 
     12292+* Override ZEND_INCLUDE_OR_EVAL opcode (when possible) to speed up use of 
     12293+  require_once() and include_once() statements. (Sara) 
     12294+ 
     12295+* Add a non-blocking write_lock for cache inserts.  This is a better approach 
     12296+  to prevent cache slams and deprecates the slam_defense setting. (Rasmus) 
     12297+ 
     12298+* A bit of work on the optimizer.  (Sara) 
     12299+ 
     12300+* Various memory issues resolved. (Gopal)</notes> 
     12301+  </release> 
     12302+  <release> 
     12303+   <stability> 
     12304+    <release>stable</release> 
     12305+    <api>stable</api> 
     12306+   </stability> 
     12307+   <version> 
     12308+    <release>3.0.12</release> 
     12309+    <api>3.0.0</api> 
     12310+   </version> 
     12311+   <date>2006-09-04</date> 
     12312+   <notes>* Fix stray debug message 
     12313+ 
     12314+* Work on the optimizer - still not stable (Gopal, Ilia, Sara) 
     12315+ 
     12316+* Performance boost - Replace multiple loops over the opcode 
     12317+  array with a single loop for copying, jump fixups and auto 
     12318+  global pre-fetches. (Gopal) 
     12319+ 
     12320+* Perform fetch_global checks only in php5 and only if  
     12321+  auto_globals_jit is enabled. (Gopal) 
     12322+ 
     12323+* Fix bug #8579 - scrub php4 classes&apos; function_table and default 
     12324+  properties before inserting into cache. (Gopal) 
     12325+ 
     12326+* Fix bug #8606 - ZEND_FETCH_GLOBAL is not an opcode, but is a  
     12327+  op1-&gt;type.  The opcodes applicable are ZEND_FETCH_R and  
     12328+  ZEND_FETCH_W. (Gopal) 
     12329+ 
     12330+* PHP 5.2 Compatibility (Gopal) 
     12331+ 
     12332+* Make the include_once override optional - default off (Sara) 
     12333+ 
     12334+* Fixed crash when apc run in CLI, but enable_cli is off. (Ilia) 
     12335+ 
     12336+* Ensure that the apc_globals-&gt;cache_stack is cleared before the  
     12337+  shm cache is destroyed. Fixes segfault for corner-case i.e request 
     12338+  shutdown (apc_deactivate) is not called before module shutdown  
     12339+  calls (php_apc_shutdown_globals)  (Gopal) 
     12340+ 
     12341+* TSRM fixes (ensure ts_free_id before apc.so is dlclosed) (Gopal) 
     12342+ 
     12343+* Fix memory leak of apc_cache_info_t-&gt;deleted_list (Gopal)</notes> 
     12344+  </release> 
     12345+  <release> 
     12346+   <stability> 
     12347+    <release>stable</release> 
     12348+    <api>stable</api> 
     12349+   </stability> 
     12350+   <version> 
     12351+    <release>3.0.12p1</release> 
     12352+    <api>3.0.0</api> 
     12353+   </version> 
     12354+   <date>2006-09-05</date> 
     12355+   <notes>* The only change here is a trivial PHP 4 build fix.</notes> 
     12356+  </release> 
     12357+  <release> 
     12358+   <stability> 
     12359+    <release>stable</release> 
     12360+    <api>stable</api> 
     12361+   </stability> 
     12362+   <version> 
     12363+    <release>3.0.12p2</release> 
     12364+    <api>3.0.0</api> 
     12365+   </version> 
     12366+   <date>2006-09-05</date> 
     12367+   <notes>* Let&apos;s get the version number right.  3.0.12p2 now.</notes> 
     12368+  </release> 
     12369+  <release> 
     12370+   <stability> 
     12371+    <release>stable</release> 
     12372+    <api>stable</api> 
     12373+   </stability> 
     12374+   <version> 
     12375+    <release>3.0.13</release> 
     12376+    <api>3.0.0</api> 
     12377+   </version> 
     12378+   <date>2007-02-24</date> 
     12379+   <notes>* PHP 5.2 file upload progress tracking support (Rasmus) 
     12380+* Pthread mutex and spin locks (Shire) 
     12381+* Recursive zval support for apc_fetch/_store (Shire, Gopal) 
     12382+* apc.stat_ctime flag for ctime checks (Rasmus) 
     12383+* Multiple key fetches with apc_fetch (Shire) 
     12384+* Canary checks for shm memory deallocation (Gopal) 
     12385+* Add hooks for external optimizer (Shire) 
     12386+* Obsolete and remove apc optimizer (Gopal) 
     12387+* APC info changes - cache insert rate, hit and miss rates (Shire) 
     12388+* Fix apc_load_constants (Gopal) 
     12389+* Rewrite dump opcode code to use vld (Gopal) 
     12390+* Use apc_[ewn]print functions for error reporting (Shire)  
     12391+* Auto global fixes and refactoring (Gopal, Shire) 
     12392+* Fix memory leaks in object serialization (Ilia) 
     12393+* Memory cleanup code for destructor order (Gopal) 
     12394+* Win32 build fixes (Ilia, Wez) 
     12395+* ZTS and Php 4 build fixes (Bjori) 
     12396+* Add apc_add() function (Rasmus) 
     12397+* Add optional limited flag to apc_sma_info() (Rasmus)</notes> 
     12398+  </release> 
     12399+  <release> 
     12400+   <stability> 
     12401+    <release>stable</release> 
     12402+    <api>stable</api> 
     12403+   </stability> 
     12404+   <version> 
     12405+    <release>3.0.14</release> 
     12406+    <api>3.0.0</api> 
     12407+   </version> 
     12408+   <date>2007-04-02</date> 
     12409+   <notes>* Build fix (Shire) 
     12410+* Don&apos;t hook the upload hook if APC is disabled (Rasmus) 
     12411+* Local shadow cache support (Gopal) 
     12412+* Avoid uneccessary loops over op_arrays for &quot;known&quot; auto-globals (Gopal) 
     12413+* Fix apc_add() to overwrite timed out user entries (Rasmus) 
     12414+* Fix double inclusion of files with conditional classes in php4 (Gopal) 
     12415+* Allocator fixes to reduce fragmentation (Gopal)</notes> 
     12416+  </release> 
     12417+  <release> 
     12418+   <stability> 
     12419+    <release>stable</release> 
     12420+    <api>stable</api> 
     12421+   </stability> 
     12422+   <version> 
     12423+    <release>3.0.15</release> 
     12424+    <api>3.0.0</api> 
     12425+   </version> 
     12426+   <date>2007-10-18</date> 
     12427+   <notes>* Eliminate a per-request time() syscall (Rasmus) 
     12428+* Added rfc1867 prefix, name, and freq ini options (Shire) 
     12429+* Allow deletion of individual user cache entries via apc.php (Sara) 
     12430+* Fix overzealous cleanup during RSHUTDOWN (Gopal) 
     12431+* Fix memory alignment and locking issues (Gopal) 
     12432+* Make apc_compile insert/replace entries (Shire) 
     12433+* Make mixed inheritance recompile &amp; cache afresh  (Gopal) 
     12434+* Make nostat mode search include_path for canonicalization (Gopal) 
     12435+* ZTS &amp; other compile fixes (Gopal, Edin, Shire)</notes> 
     12436+  </release> 
     12437+ </changelog> 
     12438+</package> 
     12439diff -ubrN php-5.2.5-orig/ext/apc/pgsql_s_lock.c php-5.2.5/ext/apc/pgsql_s_lock.c 
     12440--- php-5.2.5-orig/ext/apc/pgsql_s_lock.c       1969-12-31 18:00:00.000000000 -0600 
     12441+++ php-5.2.5/ext/apc/pgsql_s_lock.c    2007-12-26 16:51:32.000000000 -0600 
    1134912442@@ -0,0 +1,481 @@ 
    1135012443+/* 
     
    1182912922+ 
    1183012923+#endif /* APC_SPIN_LOCKS */ 
    11831 Index: php-5.2.4/ext/apc/pgsql_s_lock.h 
    11832 =================================================================== 
    11833 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    11834 +++ php-5.2.4/ext/apc/pgsql_s_lock.h    2007-09-02 12:24:46.000000000 +0200 
     12924diff -ubrN php-5.2.5-orig/ext/apc/pgsql_s_lock.h php-5.2.5/ext/apc/pgsql_s_lock.h 
     12925--- php-5.2.5-orig/ext/apc/pgsql_s_lock.h       1969-12-31 18:00:00.000000000 -0600 
     12926+++ php-5.2.5/ext/apc/pgsql_s_lock.h    2007-12-26 16:51:32.000000000 -0600 
    1183512927@@ -0,0 +1,928 @@ 
    1183612928+/* 
     
    1276213854+ 
    1276313855+#endif  /* S_LOCK_H */ 
    12764 Index: php-5.2.4/ext/apc/php_apc.c 
    12765 =================================================================== 
    12766 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    12767 +++ php-5.2.4/ext/apc/php_apc.c 2007-09-02 12:24:46.000000000 +0200 
    12768 @@ -0,0 +1,957 @@ 
     13856diff -ubrN php-5.2.5-orig/ext/apc/php_apc.c php-5.2.5/ext/apc/php_apc.c 
     13857--- php-5.2.5-orig/ext/apc/php_apc.c    1969-12-31 18:00:00.000000000 -0600 
     13858+++ php-5.2.5/ext/apc/php_apc.c 2007-12-26 16:51:32.000000000 -0600 
     13859@@ -0,0 +1,991 @@ 
    1276913860+/* 
    1277013861+  +----------------------------------------------------------------------+ 
     
    1279513886+ */ 
    1279613887+ 
    12797 +/* $Id: php_apc.c,v 3.140 2007/03/28 07:14:54 gopalv Exp $ */ 
     13888+/* $Id: php_apc.c,v 3.154 2007/12/26 22:31:20 rasmus Exp $ */ 
    1279813889+ 
    1279913890+#include "apc_zend.h" 
     
    1281713908+#endif 
    1281813909+ 
     13910+#if HAVE_SIGACTION 
     13911+#include "apc_signal.h" 
     13912+#endif 
     13913+ 
    1281913914+/* {{{ PHP_FUNCTION declarations */ 
    1282013915+PHP_FUNCTION(apc_cache_info); 
     
    1286113956+    apc_globals->localcache_size = 0; 
    1286213957+    apc_globals->lcache = NULL; 
     13958+    apc_globals->force_file_update = 0; 
     13959+    apc_globals->coredump_unmap = 0; 
    1286313960+} 
    1286413961+ 
     
    1290814005+/* }}} */ 
    1290914006+ 
     14007+#ifdef MULTIPART_EVENT_FORMDATA 
     14008+static PHP_INI_MH(OnUpdateRfc1867Freq) /* {{{ */ 
     14009+{ 
     14010+    int tmp; 
     14011+    tmp = zend_atoi(new_value, new_value_length); 
     14012+    if(tmp < 0) { 
     14013+        apc_eprint("rfc1867_freq must be greater than or equal to zero."); 
     14014+        return FAILURE; 
     14015+    } 
     14016+    if(new_value[new_value_length-1] == '%') { 
     14017+        if(tmp > 100) { 
     14018+            apc_eprint("rfc1867_freq cannot be over 100%%"); 
     14019+            return FAILURE; 
     14020+        } 
     14021+        APCG(rfc1867_freq) = tmp / 100.0; 
     14022+    } else { 
     14023+        APCG(rfc1867_freq) = tmp; 
     14024+    } 
     14025+    return SUCCESS; 
     14026+} 
     14027+/* }}} */ 
     14028+#endif 
    1291014029+ 
    1291114030+#ifdef ZEND_ENGINE_2 
     
    1293814057+#ifdef MULTIPART_EVENT_FORMDATA 
    1293914058+STD_PHP_INI_BOOLEAN("apc.rfc1867", "0", PHP_INI_SYSTEM, OnUpdateBool, rfc1867, zend_apc_globals, apc_globals) 
     14059+STD_PHP_INI_ENTRY("apc.rfc1867_prefix", "upload_", PHP_INI_SYSTEM, OnUpdateStringUnempty, rfc1867_prefix, zend_apc_globals, apc_globals) 
     14060+STD_PHP_INI_ENTRY("apc.rfc1867_name", "APC_UPLOAD_PROGRESS", PHP_INI_SYSTEM, OnUpdateStringUnempty, rfc1867_name, zend_apc_globals, apc_globals) 
     14061+STD_PHP_INI_ENTRY("apc.rfc1867_freq", "0", PHP_INI_SYSTEM, OnUpdateRfc1867Freq, rfc1867_freq, zend_apc_globals, apc_globals) 
    1294014062+#endif 
    1294114063+STD_PHP_INI_BOOLEAN("apc.localcache", "0", PHP_INI_SYSTEM, OnUpdateBool, localcache, zend_apc_globals, apc_globals) 
    1294214064+STD_PHP_INI_ENTRY("apc.localcache.size", "512", PHP_INI_SYSTEM, OnUpdateInt, localcache_size,  zend_apc_globals, apc_globals) 
     14065+STD_PHP_INI_BOOLEAN("apc.coredump_unmap", "0", PHP_INI_SYSTEM, OnUpdateBool, coredump_unmap, zend_apc_globals, apc_globals) 
    1294314066+PHP_INI_END() 
    1294414067+ 
     
    1296814091+    php_info_print_table_row(2, "Locking type", "File Locks"); 
    1296914092+#endif 
    12970 +    php_info_print_table_row(2, "Revision", "$Revision: 3.140 $"); 
     14093+    php_info_print_table_row(2, "Revision", "$Revision: 3.154 $"); 
    1297114094+    php_info_print_table_row(2, "Build Date", __DATE__ " " __TIME__); 
    1297214095+    php_info_print_table_end(); 
     
    1303514158+    if(APCG(enabled)) { 
    1303614159+        apc_request_init(TSRMLS_C); 
     14160+ 
     14161+#if HAVE_SIGACTION 
     14162+        apc_set_signals(); 
     14163+#endif 
    1303714164+    } 
    1303814165+    return SUCCESS; 
     
    1306714194+        if(!strcasecmp(cache_type,"user")) { 
    1306814195+            info = apc_cache_info(apc_user_cache, limited); 
     14196+        } else if(!strcasecmp(cache_type,"filehits")) { 
     14197+#ifdef APC_FILEHITS 
     14198+            RETVAL_ZVAL(APCG(filehits), 1, 0); 
     14199+            return; 
     14200+#else 
     14201+            RETURN_FALSE; 
     14202+#endif 
    1306914203+        } else { 
    1307014204+            info = apc_cache_info(apc_cache, limited); 
     
    1327214406+    size_t mem_size = 0; 
    1327314407+ 
    13274 +#if PHP_API_VERSION <= 20041225 
     14408+#if PHP_API_VERSION < 20041225 
    1327514409+#if HAVE_APACHE && defined(APC_PHP4_STAT) 
    1327614410+    t = ((request_rec *)SG(server_context))->request_time; 
     
    1340714541+    } 
    1340814542+ 
    13409 +#if PHP_API_VERSION <= 20041225 
     14543+#if PHP_API_VERSION < 20041225 
    1341014544+#if HAVE_APACHE && defined(APC_PHP4_STAT) 
    1341114545+    t = ((request_rec *)SG(server_context))->request_time; 
     
    1356414698+    if(!strkey_len) RETURN_FALSE; 
    1356514699+ 
    13566 +#if PHP_API_VERSION <= 20041225 
     14700+#if PHP_API_VERSION < 20041225 
    1356714701+#if HAVE_APACHE && defined(APC_PHP4_STAT) 
    1356814702+    t = ((request_rec *)SG(server_context))->request_time; 
     
    1360714741+    if(!filename) RETURN_FALSE; 
    1360814742+ 
    13609 +    /* If slam defense is active, temporarily disable */ 
    13610 +    if(APCG(slam_defense)) { 
    13611 +        slam_defense = APCG(slam_defense); 
    13612 +        APCG(slam_defense) = 0; 
    13613 +    } 
     14743+    /* reset slam defense, filters, and cache_by_default */ 
     14744+    slam_defense = APCG(slam_defense); 
     14745+    APCG(slam_defense) = 0; 
    1361414746+    
    13615 +    /* If filter is active, temporarily disable */ 
    13616 +    if(APCG(filters) != NULL) { 
    13617 +        filters = APCG(filters); 
    13618 +        APCG(filters) = NULL; 
    13619 +    } 
    13620 + 
    13621 +    /* If cache_by_default is off, temporarily enable */ 
    13622 +    if(!APCG(cache_by_default)) { 
    13623 +        cache_by_default = APCG(cache_by_default); 
    13624 +        APCG(cache_by_default) = 1; 
    13625 +    } 
     14747+    filters = APCG(filters); 
     14748+    APCG(filters) = NULL; 
     14749+ 
     14750+    cache_by_default = APCG(cache_by_default); 
     14751+    APCG(cache_by_default) = 1; 
    1362614752+ 
    1362714753+    /* Replace function/class tables to avoid namespace conflicts */ 
     
    1363214758+    cg_orig_class_table = CG(class_table); 
    1363314759+    CG(class_table) = &cg_class_table; 
    13634 +    zend_hash_init_ex(&eg_function_table, 100, NULL, ZEND_FUNCTION_DTOR, 1, 0); 
    1363514760+    eg_orig_function_table = EG(function_table); 
    13636 +    EG(function_table) = &eg_function_table; 
    13637 +    zend_hash_init_ex(&eg_class_table, 10, NULL, ZEND_CLASS_DTOR, 1, 0); 
     14761+    EG(function_table) = CG(function_table); 
    1363814762+    eg_orig_class_table = EG(class_table); 
    13639 +    EG(class_table) = &eg_class_table; 
     14763+    EG(class_table) = CG(class_table); 
     14764+    APCG(force_file_update) = 1; 
    1364014765+     
    1364114766+    /* Compile the file, loading it into the cache */ 
     
    1364714772+        op_array = zend_compile_file(&file_handle, ZEND_INCLUDE TSRMLS_CC); 
    1364814773+    } zend_catch { 
    13649 +        apc_eprint("Error compiling %s in apc_compile_file.", filename); 
     14774+        apc_wprint("Error compiling %s in apc_compile_file.", filename); 
    1365014775+        op_array = NULL; 
    1365114776+    } zend_end_try(); 
    1365214777+ 
    1365314778+    /* Return class/function tables to previous states, destroy temp tables */ 
     14779+    APCG(force_file_update) = 0; 
    1365414780+    CG(function_table) = cg_orig_function_table; 
    1365514781+    zend_hash_destroy(&cg_function_table); 
     
    1365714783+    zend_hash_destroy(&cg_class_table); 
    1365814784+    EG(function_table) = eg_orig_function_table; 
    13659 +    zend_hash_destroy(&eg_function_table); 
    1366014785+    EG(class_table) = eg_orig_class_table; 
    13661 +    zend_hash_destroy(&eg_class_table); 
    1366214786+     
    1366314787+    /* Restore global settings */ 
     
    1369214816+       PHP_FE(apc_load_constants,      NULL) 
    1369314817+       PHP_FE(apc_compile_file,        NULL) 
     14818+       PHP_FE(apc_add,                 NULL) 
    1369414819+       {NULL,          NULL,                           NULL} 
    1369514820+}; 
     
    1372414849+ * vim<600: expandtab sw=4 ts=4 sts=4 
    1372514850+ */ 
    13726 Index: php-5.2.4/ext/apc/php_apc.h 
    13727 =================================================================== 
    13728 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    13729 +++ php-5.2.4/ext/apc/php_apc.h 2007-09-02 12:24:46.000000000 +0200 
     14851diff -ubrN php-5.2.5-orig/ext/apc/php_apc.h php-5.2.5/ext/apc/php_apc.h 
     14852--- php-5.2.5-orig/ext/apc/php_apc.h    1969-12-31 18:00:00.000000000 -0600 
     14853+++ php-5.2.5/ext/apc/php_apc.h 2007-12-26 16:51:32.000000000 -0600 
    1373014854@@ -0,0 +1,52 @@ 
    1373114855+/* 
     
    1378114905+ * vim<600: expandtab sw=4 ts=4 sts=4 
    1378214906+ */ 
    13783 Index: php-5.2.4/ext/apc/TECHNOTES.txt 
    13784 =================================================================== 
    13785 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    13786 +++ php-5.2.4/ext/apc/TECHNOTES.txt     2007-09-02 12:24:46.000000000 +0200 
    13787 @@ -0,0 +1,357 @@ 
     14907diff -ubrN php-5.2.5-orig/ext/apc/TECHNOTES.txt php-5.2.5/ext/apc/TECHNOTES.txt 
     14908--- php-5.2.5-orig/ext/apc/TECHNOTES.txt        1969-12-31 18:00:00.000000000 -0600 
     14909+++ php-5.2.5/ext/apc/TECHNOTES.txt     2007-12-26 16:51:32.000000000 -0600 
     14910@@ -0,0 +1,361 @@ 
    1378814911+APC Quick-Start Braindump 
    1378914912+ 
     
    1387114994+     typedef struct block_t block_t; 
    1387214995+     struct block_t { 
    13873 +         int size;       /* size of this block */ 
    13874 +         int next;       /* offset in segment of next free block */ 
     14996+         size_t size;       /* size of this block */ 
     14997+         size_t next;       /* offset in segment of next free block */ 
     14998+         size_t canary;     /* canary to check for memory overwrites */ 
     14999+#ifdef __APC_SMA_DEBUG__ 
     15000+         int id;         /* identifier for the memory block */ 
     15001+#endif 
    1387515002+     }; 
    1387615003+ 
     
    1414315270+the code.  I skimmed over a lot of things, so plan on spending some time reading through the code. 
    1414415271+ 
    14145 Index: php-5.2.4/ext/apc/tests/apc_001.phpt 
    14146 =================================================================== 
    14147 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    14148 +++ php-5.2.4/ext/apc/tests/apc_001.phpt        2007-09-02 12:24:46.000000000 +0200 
     15272diff -ubrN php-5.2.5-orig/ext/apc/tests/apc_001.phpt php-5.2.5/ext/apc/tests/apc_001.phpt 
     15273--- php-5.2.5-orig/ext/apc/tests/apc_001.phpt   1969-12-31 18:00:00.000000000 -0600 
     15274+++ php-5.2.5/ext/apc/tests/apc_001.phpt        2007-12-26 16:51:32.000000000 -0600 
    1414915275@@ -0,0 +1,27 @@ 
    1415015276+--TEST-- 
     
    1417515301+string(4) "nice" 
    1417615302+===DONE=== 
    14177 Index: php-5.2.4/ext/apc/tests/apc_002.phpt 
    14178 =================================================================== 
    14179 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    14180 +++ php-5.2.4/ext/apc/tests/apc_002.phpt        2007-09-02 12:24:46.000000000 +0200 
     15303diff -ubrN php-5.2.5-orig/ext/apc/tests/apc_002.phpt php-5.2.5/ext/apc/tests/apc_002.phpt 
     15304--- php-5.2.5-orig/ext/apc/tests/apc_002.phpt   1969-12-31 18:00:00.000000000 -0600 
     15305+++ php-5.2.5/ext/apc/tests/apc_002.phpt        2007-12-26 16:51:32.000000000 -0600 
    1418115306@@ -0,0 +1,34 @@ 
    1418215307+--TEST-- 
     
    1421415339+} 
    1421515340+===DONE=== 
    14216 Index: php-5.2.4/ext/apc/tests/apc_003.phpt 
    14217 =================================================================== 
    14218 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    14219 +++ php-5.2.4/ext/apc/tests/apc_003.phpt        2007-09-02 12:24:46.000000000 +0200 
     15341diff -ubrN php-5.2.5-orig/ext/apc/tests/apc_003.phpt php-5.2.5/ext/apc/tests/apc_003.phpt 
     15342--- php-5.2.5-orig/ext/apc/tests/apc_003.phpt   1969-12-31 18:00:00.000000000 -0600 
     15343+++ php-5.2.5/ext/apc/tests/apc_003.phpt        2007-12-26 16:51:32.000000000 -0600 
    1422015344@@ -0,0 +1,112 @@ 
    1422115345+--TEST-- 
     
    1433115455+} 
    1433215456+===DONE=== 
    14333 Index: php-5.2.4/ext/apc/tests/skipif.inc 
    14334 =================================================================== 
    14335 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    14336 +++ php-5.2.4/ext/apc/tests/skipif.inc  2007-09-02 12:24:46.000000000 +0200 
     15457diff -ubrN php-5.2.5-orig/ext/apc/tests/skipif.inc php-5.2.5/ext/apc/tests/skipif.inc 
     15458--- php-5.2.5-orig/ext/apc/tests/skipif.inc     1969-12-31 18:00:00.000000000 -0600 
     15459+++ php-5.2.5/ext/apc/tests/skipif.inc  2007-12-26 16:51:32.000000000 -0600 
    1433715460@@ -0,0 +1,6 @@ 
    1433815461+<?php 
     
    1434215465+ 
    1434315466+?> 
    14344 Index: php-5.2.4/ext/apc/TODO 
    14345 =================================================================== 
    14346 --- /dev/null   1970-01-01 00:00:00.000000000 +0000 
    14347 +++ php-5.2.4/ext/apc/TODO      2007-09-02 12:24:46.000000000 +0200 
     15467diff -ubrN php-5.2.5-orig/ext/apc/TODO php-5.2.5/ext/apc/TODO 
     15468--- php-5.2.5-orig/ext/apc/TODO 1969-12-31 18:00:00.000000000 -0600 
     15469+++ php-5.2.5/ext/apc/TODO      2007-12-26 16:51:32.000000000 -0600 
    1434815470@@ -0,0 +1,30 @@ 
    1434915471+Known Bugs 
Note: See TracChangeset for help on using the changeset viewer.