Edit report at https://bugs.php.net/bug.php?id=69693&edit=1
ID: 69693
Updated by: php-bugs@lists.php.net
Reported by: bugs at tmarques dot com
Summary: Compatibility with x32 ABI
-Status: Feedback
+Status: No Feedback
Type: Bug
Package: *General Issues
Operating System: Linux x32
PHP Version: 5.6.23
Assigned To: cmb
Private report: N
New Comment:
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Re-Opened". Thank you.
Previous Comments:
------------------------------------------------------------------------
[2021-11-10 12:16:31] cmb@php.net
What is the status of the actively supported PHP versions[1]
regarding x32 ABI? If anything would need to be fixed, I suggest
you submit a pull request[2].
[1] <https://www.php.net/supported-versions.php>
[2] <https://github.com/php/php-src/pulls>
------------------------------------------------------------------------
[2016-07-12 23:12:03] bugs at tmarques dot com
Hey there,
Been trying x32 on PHP 7 and it has various bugs that keep it from working. I've been trying to
fix some stuff but still have problems with PHAR during compilation, which seems to stem from a
memcpy().
Would it be possible to merge this updated patch below? I backported some changes from the assembly
in PHP 7 that seems to fix a movb that was malformed. It works on both 5.5.37 and 5.6.23.
There are some 32-bit tests that fail because time values are expected to overflow and don't,
which haven't tracked but may be related to x32 having 64-bit time values.
https://github.com/tmarques/overlay_x32-abi/raw/master/dev-lang/php/files/zend_operators_x32-5.patch
------------------------------------------------------------------------
[2015-10-17 14:14:02] bugs at tmarques dot com
Hey there,
Had been looking at the date bugs I posted before from the test suite but everything seemed fine
where I looked. Today I tried the zend operators patch on 5.6.13 and those are gone. Tests below
configured with:
=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
Bug #53437 DateInterval unserialize bad data, 32 bit [ext/date/tests/bug53437_var3.phpt]
Bug #64146 (serialize incorrectly saving objects when they are cloned)
[ext/standard/tests/serialize/bug64146.phpt]
=====================================================================
WARNED TEST SUMMARY
---------------------------------------------------------------------
Bug #70172 - Use After Free Vulnerability in unserialize()
[ext/standard/tests/serialize/bug70172.phpt] (warn: XFAIL section but test passes)
=====================================================================
Compiled on i686 to check for differences and the i686 versions shows one more failed test but is
otherwise the same. I imagine this is due to some fix related to x86-64.
=====================================================================
Bug #41655 (open_basedir bypass via glob()) 1/2 [ext/standard/tests/file/bug41655_1.phpt]
chroot() [ext/standard/tests/file/chroot_001.phpt]
Test glob() function: ensure no platform difference, variation 3
[ext/standard/tests/file/glob_variation5.phpt]
=====================================================================
At this time, the zend_operators patch seems to work for these versions, so could it possibly be
merged?
Glad to hear PHP7 is looking good on x32! As for the integer size, it would be better to be 32bit to
be consistent with C and be able to make use of both of 32 and 64bit registers, which is one of the
performance benefits. My understanding is that PHP only supports one integer size, so being 64bit is
probably better if the programmer can't choose.
------------------------------------------------------------------------
[2015-05-25 09:01:46] nikic@php.net
For the record, PHP 7 is now mostly working on x32 as well. I've landed some tweaks in https://github.com/php/php-src/commit/f3dde29394831c59fc927bd5e7a7800a3fbe8519
which make nearly all tests pass - there's two or three failures left due to wrong
size_t/zend_long usage resulting in overflows.
I went for making PHP integers 64bit - this integrates very nicely with how zend_long is currently
used (all our assembly is still correct) and I think this is what PHP programmers would want to
have. But not totally sure if this is the right choice.
------------------------------------------------------------------------
[2015-05-25 01:32:12] bugs at tmarques dot com
Forgot to mention I'll be looking at the rest of the tests to see if I can fix them. Pointers
to the Date issues would be useful.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=69693
--
Edit this bug report at https://bugs.php.net/bug.php?id=69693&edit=1