c9s/Pux — pull request #59 by jbboehr (2014-10-17 19:46:58+00:00)
Title: PHP 5.3 Compatibility

Not sure if you're interested in supporting PHP 5.3, but if so I've made the necessary adjustments. Should probably at least run the unit tests on 5.3 and 5.5; for the two LTS versions of Ubuntu, PHP 5.4 is not used on either - 12.04 uses 5.3.10 and 14.04 uses 5.5.9.

I've been getting intermittent segfaults running the unit tests against PHP 5.3, but only on TravisCI. I recompiled PHP 5.3 on my local install with just about the same configuration options, but was unable to replicate the issue. GDB output:

```
Program received signal SIGSEGV, Segmentation fault.
zend_mm_remove_from_free_list (heap=0x111ca30, mm_block=0x1c032a0) at /tmp/php-build/source/5.3.29/Zend/zend_alloc.c:845
845	/tmp/php-build/source/5.3.29/Zend/zend_alloc.c: No such file or directory.
#0 zend_mm_remove_from_free_list (heap=0x111ca30, mm_block=0x1c032a0) at /tmp/php-build/source/5.3.29/Zend/zend_alloc.c:845
#1 0x0000000000832589 in _zend_mm_free_int (heap=0x111ca30, p=0x1c032b0) at /tmp/php-build/source/5.3.29/Zend/zend_alloc.c:2029
#2 0x00000000008641c5 in zend_hash_destroy (ht=0x1c13858) at /tmp/php-build/source/5.3.29/Zend/zend_hash.c:532
#3 0x000000000084b32c in destroy_zend_class (pce=) at /tmp/php-build/source/5.3.29/Zend/zend_opcode.c:188
#4 0x0000000000862ce5 in zend_hash_apply_deleter (ht=0x111e6a0, p=0x17d6070) at /tmp/php-build/source/5.3.29/Zend/zend_hash.c:612
#5 0x000000000086463f in zend_hash_reverse_apply (ht=0x111e6a0, apply_func=0x845a00 , tsrm_ls=0x11190c0) at /tmp/php-build/source/5.3.29/Zend/zend_hash.c:762
#6 0x0000000000846643 in shutdown_executor (tsrm_ls=0x11190c0) at /tmp/php-build/source/5.3.29/Zend/zend_execute_API.c:310
#7 0x0000000000855bd7 in zend_deactivate (tsrm_ls=0x11190c0) at /tmp/php-build/source/5.3.29/Zend/zend.c:891
#8 0x00000000007f36ad in php_request_shutdown (dummy=) at /tmp/php-build/source/5.3.29/main/main.c:1669
#9 0x000000000043daf3 in main (argc=63, argv=0x7fffffffd5e8) at /tmp/php-build/source/5.3.29/sapi/cli/php_cli.c:1368
```

Note: sudo apt-get update is needed in the TravisCI config or you might get 404s on packages.