-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Fix phpize build of the opcache extension (jit/zend_jit.lo not found) #6589
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
I feel we need a test to validate the bug and the fix. Perhaps if the build fails on certain systems, we'd need a job in the pipeline to build on that systems, as to catch those bugs. Can the maintainers chime in on this? |
@afilina i think it should be extra-easy ti reproduce, just by bulding this extension standalone and not as part of php build. |
I just ran:
And this worked fine for me. |
Could this be due to a FreeBSD-specific difference in If that's the case, I think it might be better to adjust PHP_ADD_MAKEFILE_FRAGMENT to replace |
Let me try to reproduce this on Linux.... |
It seems that you right. I was not able to reproduce that on Linux (ubuntu)
And it works! This ubuntu using |
@nikic this is true, error happens only with BSD make and does not happens with GNU make. We can either fix it as "non-fix" and suggest to use GNU make here, or just to apply this patch if you dont see any downsides from it. |
Yes, BSD make want exact match of the target name: This is sample Makefile:
And test results:
|
I'm okay with just applying this patch. It's a bit of a hack, but I think we understand now why it's needed and it seems pretty harmless. |
I found that jit is not build correctly on my FreeBSD machine using
phpize
command in the extension directory.Reason is that in the Makefile i have referenced
jit/zend_jit.lo
as dependency, but target was mentioned as./jit/zend_jit.lo
. This fix adds additional target w/o path which is used on local builds withphpize