ext/libxml: Fix build failure with libxml2 2.15.#22755
Open
devnexen wants to merge 2 commits into
Open
Conversation
Fix phpGH-22752 libxml2 2.15 removed the built-in HTTP client, the FTP module, the functions in xmlunicode.h, the shell and several other legacy symbols. The Windows export list php_libxml2.def still referenced them, so the statically linked build failed with hundreds of unresolved external symbols. Move the removed symbols into a separate php_libxml2_legacy.def and add it only when building against libxml2 < 2.15, keeping the exports intact for 2.11 through 2.14.
Member
|
I think we should keep the existing export file intact as This still leaves several removed symbols in the 2.15 path and the build fails. See logs. Alternatively, it might be a good idea to remove the def files completely for libxml2. That might require xsl and soap extensions to link directly with libxml2. |
The first attempt left 85 removed symbols in the 2.15 export list, so the link still failed: the SAX1 callbacks, the legacy.h helpers, the global accessors and the xmlIOFTP/xmlLs helpers were all missed. Windows CI reported the full set (LNK1120: 85 unresolved). Keep php_libxml2_legacy.def as the original export list, unchanged, and make php_libxml2.def the clean 2.15+ list, selecting one or the other rather than appending the two, which is easier to review. Suggested by shivammathur.
Member
Author
|
I think that removing .def seems to belong to master branch but I agree otherwise. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix GH-22752
libxml2 2.15 removed the built-in HTTP client, the FTP module, the functions in xmlunicode.h, the shell and several other legacy symbols. The Windows export list php_libxml2.def still referenced them, so the statically linked build failed with hundreds of unresolved external symbols.
Move the removed symbols into a separate php_libxml2_legacy.def and add it only when building against libxml2 < 2.15, keeping the exports intact for 2.11 through 2.14.