Skip to content

php: build the four extensions phoronix-test-suite requires - #733

Merged
staalmannen merged 1 commit into
mainfrom
claude/upgrade-ape-c-library-mmZGd
Nov 5, 2026
Merged

staalmannen merged 1 commit into
mainfrom
claude/upgrade-ape-c-library-mmZGd

Conversation

@staalmannen

Copy link
Copy Markdown
Owner

libxml, dom, simplexml and zlib -- 44 objects against lib/xml2' (2.15.2) and lib/z', both already in the tree. All 559 translation units compile under the host kencc mirror and `--undefined' resolves every symbol the program wants from outside php.

The list is derived from pts-core.php:208's own pts_needed_extensions()' rather than from its error message: it requires JSON (already built), DOM, SimpleXML, and `extension_loaded('zip') || extension_loaded('zlib')' -- so ext/zlib satisfies the "MISSING ZIP" line and libzip is not needed.

libxml goes first in both the OFILES list and
internal_functions_cli.c', because it is the glue both dom and simplexml declare a PHP_ADD_EXTENSION_DEP' on and the module order is the registration order.

libxml2 is linked the Plan 9 way: #pragma lib' in <libxml/xmlversion.h>', which 42 of the 46 installed <libxml/*.h>' include (the other three are empty deprecation stubs that declare nothing). <zlib.h>' already carried the same arrangement. No `LIB=' line in the mkfile as a result.

BIN=' was missing, so mkone's `cp $prereq $BIN/$TARG' was a null list in an rc concatenation -- nothing could notice until a link succeeded.

apfunc-sweep.py' takes repeatable --root DIR' so the sweep can be asked about libxml2 and zlib beside libap; the default is unchanged and its control still fires on all three states.

Also: HAVE_FUNC_GETHOSTBYNAME_R_6' and the four HAVE_*' answers for the new extensions.

Three derivation faults are recorded in docs/notes/php.md': an awk pattern that could not match a path with a slash, dropping two objects, with a completeness check (ls *.c') that shared the same wrong assumption and so agreed; and a widened pattern that then missed a directory with a hyphen in it.

Claude-Session: https://claude.ai/code/session_01WGAwvvTwDg2yknFkmZ3qzs

libxml, dom, simplexml and zlib -- 44 objects against `lib/xml2'
(2.15.2) and `lib/z', both already in the tree.  All 559 translation
units compile under the host kencc mirror and `--undefined' resolves
every symbol the program wants from outside php.

The list is derived from `pts-core.php:208's own
`pts_needed_extensions()' rather than from its error message: it
requires JSON (already built), DOM, SimpleXML, and
`extension_loaded('zip') || extension_loaded('zlib')' -- so ext/zlib
satisfies the "MISSING ZIP" line and libzip is not needed.

libxml goes first in both the OFILES list and
`internal_functions_cli.c', because it is the glue both dom and
simplexml declare a `PHP_ADD_EXTENSION_DEP' on and the module order
is the registration order.

libxml2 is linked the Plan 9 way: `#pragma lib' in
`<libxml/xmlversion.h>', which 42 of the 46 installed `<libxml/*.h>'
include (the other three are empty deprecation stubs that declare
nothing).  `<zlib.h>' already carried the same arrangement.  No `LIB='
line in the mkfile as a result.

`BIN=' was missing, so `mkone's `cp $prereq $BIN/$TARG' was a null
list in an rc concatenation -- nothing could notice until a link
succeeded.

`apfunc-sweep.py' takes repeatable `--root DIR' so the sweep can be
asked about libxml2 and zlib beside libap; the default is unchanged
and its control still fires on all three states.

Also: `HAVE_FUNC_GETHOSTBYNAME_R_6' and the four `HAVE_*' answers for
the new extensions.

Three derivation faults are recorded in `docs/notes/php.md': an awk
pattern that could not match a path with a slash, dropping two
objects, with a completeness check (`ls *.c') that shared the same
wrong assumption and so agreed; and a widened pattern that then
missed a directory with a hyphen in it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WGAwvvTwDg2yknFkmZ3qzs
@staalmannen
staalmannen merged commit a25a4e9 into main Nov 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants