Skip to content

Zend: fix undefined symbol 'execute_ex' on Windows ARM64 Issue#19064 #19068

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

Closed
wants to merge 3 commits into from

Conversation

hyh19962008
Copy link
Contributor

ext/gd: fix emmintrin.h not found on Windows ARM64. emmintrin.h is x86 specific.

ext/gd: fix emmintrin.h not found on Windows ARM64
@hyh19962008 hyh19962008 changed the title Zend: fix undefined symbol 'execute_ex' on Windows ARM64 #19064 Zend: fix undefined symbol 'execute_ex' on Windows ARM64 Issue#19064 Jul 8, 2025
@devnexen
Copy link
Member

devnexen commented Jul 8, 2025

Nice catch ! we do not have windows arm64 CI. @cmb69 does it look good to you ?

@cmb69
Copy link
Member

cmb69 commented Jul 8, 2025

This looks generally good to me, but zend_vm_execute.h needs to be regenerated since zend_vm_execute.h has been changed (see zend_vm_gen.php).

I'm not quite sure what to do about gd_interpolation.c; upstream doesn't have these lines, and I think they are superfluous; but it doesn't hurt to apply this patch for now.

Copy link
Member

@nielsdos nielsdos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VM change is fine in any case

@@ -62,7 +62,7 @@
#include "gdhelpers.h"
#include "gd_intern.h"

#ifdef _MSC_VER
#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have a matching pragma optimize down below.
Probably, the include should just be dropped?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The upstream libgd has removed these lines, it might be safe to remove them?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I removed them.

Copy link
Member

@cmb69 cmb69 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@nielsdos
Copy link
Member

The pragma optimize at the bottom of the file is now likely also useless; however, upstream also has this and we'd like to be as close to upstream as reasonably possible, so whatever. This is good.

nielsdos added a commit that referenced this pull request Jul 10, 2025
nielsdos added a commit that referenced this pull request Jul 10, 2025
* PHP-8.4:
  Update NEWS for GH-19068
  ext/gd: Drop useless and doubtful MSVC specific code (libgd/libgd@f1480ab)
  Zend: fix undefined symbol 'execute_ex' on Windows ARM64 #19064; ext/gd: fix emmintrin.h not found on Windows ARM64
@nielsdos
Copy link
Member

Merged, thanks!

@nielsdos nielsdos closed this Jul 10, 2025
@nielsdos
Copy link
Member

I'll cherry-pick your gd change into 8.3 as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Undefined symbol 'execute_ex' on Windows ARM64
4 participants