[packages/php/PHP_5_3] adjust x32 patch for 5.3 branch
glen
glen at pld-linux.org
Sat Feb 28 01:06:47 CET 2015
commit fc339d799625cacf91e66c26a2dbca4a22a458d5
Author: Elan Ruusamäe <glen at delfi.ee>
Date: Sat Feb 28 01:59:26 2015 +0200
adjust x32 patch for 5.3 branch
see also https://github.com/php/php-src/pull/1127
x32.patch | 32 +++++++++++++-------------------
1 file changed, 13 insertions(+), 19 deletions(-)
---
diff --git a/x32.patch b/x32.patch
index a5cfb7f..5e4a89a 100644
--- a/x32.patch
+++ b/x32.patch
@@ -7,10 +7,8 @@ X-Git-Url: http://72.52.91.13:8000/?p=php-src.git;a=commitdiff_plain;h=514afd67b
Fix bug #64729: compilation failure on x32
---
-diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c
-index 605e396..0bbd59a 100644
---- a/Zend/zend_alloc.c
-+++ b/Zend/zend_alloc.c
+--- php-5.3.29/Zend/zend_alloc.c~ 2015-02-28 01:32:39.000000000 +0200
++++ php-5.3.29/Zend/zend_alloc.c 2015-02-28 01:35:13.896183585 +0200
@@ -672,7 +672,7 @@ static inline unsigned int zend_mm_high_bit(size_t _size)
#elif defined(__GNUC__) && defined(__x86_64__)
unsigned long n;
@@ -35,11 +33,11 @@ index 605e396..0bbd59a 100644
#else
static const int offset[16] = {4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0};
unsigned int n;
-@@ -2481,12 +2481,22 @@ static inline size_t safe_address(size_t nmemb, size_t size, size_t offset)
+@@ -2406,12 +2406,22 @@
size_t res = nmemb;
unsigned long overflow = 0;
-- __asm__ ("mulq %3\n\taddq %4,%0\n\tadcq %1,%1"
+- __asm__ ("mulq %3\n\taddq %4,%0\n\tadcq $0,%1"
+#ifdef __ILP32__ /* x32 */
+# define LP_SUFF "l"
+#else /* amd64 */
@@ -48,7 +46,7 @@ index 605e396..0bbd59a 100644
+
+ __asm__ ("mul" LP_SUFF " %3\n\t"
+ "add %4,%0\n\t"
-+ "adc %1,%1"
++ "adc $0,%1"
: "=&a"(res), "=&d" (overflow)
: "%0"(res),
"rm"(size),
@@ -59,18 +57,14 @@ index 605e396..0bbd59a 100644
if (UNEXPECTED(overflow)) {
zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (%zu * %zu + %zu)", nmemb, size, offset);
return 0;
-diff --git a/Zend/zend_multiply.h b/Zend/zend_multiply.h
-index c3c9657..092d3cd 100644
---- a/Zend/zend_multiply.h
-+++ b/Zend/zend_multiply.h
-@@ -35,8 +35,8 @@
+--- php-5.3.29/Zend/zend_multiply.h~ 2014-08-13 22:22:50.000000000 +0300
++++ php-5.3.29/Zend/zend_multiply.h 2015-02-28 01:57:48.989051739 +0200
+@@ -19,7 +19,7 @@
+
+ /* $Id$ */
+
+-#if defined(__i386__) && defined(__GNUC__)
++#if (defined(__i386__) || defined(__x86_64__)) && defined(__GNUC__)
#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \
long __tmpvar; \
-- __asm__ ("imulq %3,%0\n" \
-- "adcq $0,%1" \
-+ __asm__ ("imul %3,%0\n" \
-+ "adc $0,%1" \
- : "=r"(__tmpvar),"=r"(usedval) \
- : "0"(a), "r"(b), "1"(0)); \
- if (usedval) (dval) = (double) (a) * (double) (b); \
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/php.git/commitdiff/fc339d799625cacf91e66c26a2dbca4a22a458d5
More information about the pld-cvs-commit
mailing list