Environment
- spc nightly
spc-macos-aarch64 (sha256 e04f9658…, built after a488606 on 2026-08-22)
- Target:
aarch64-apple-darwin, macOS 14 arm64 runner
- Extensions: bcmath,bz2,ctype,curl,dom,exif,ffi,fileinfo,filter,ftp,gd,gettext,gmp,iconv,intl,ldap,mbstring,memcached,mysqli,mysqlnd,opcache,openssl,pcntl,pdo,pdo_mysql,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,redis,session,simplexml,soap,sockets,sodium,sqlite3,tokenizer,xml,xmlreader,xmlwriter,xsl,yaml,zip,zlib (cli only)
Problem
Since a488606 ("fix pgsql and other polyfill libs leaking into configure"), configureForUnix() runs php's ./configure with:
'LIBS' => SystemTarget::getRuntimeLibs(), // = '-lresolv' on Darwin
instead of the previous makeVars()['EXTRA_LIBS'], which included the macOS -framework CoreFoundation -framework CoreServices -framework SystemConfiguration flags (curl.yml declares these under frameworks).
The static libcurl.a conftest link in php's ext/curl check then fails:
checking for cURL support... yes
checking for libcurl >= 7.61.0... yes
checking for SSL support in libcurl... yes
checking for curl_easy_perform in -lcurl... no
configure: error: The libcurl check failed.
config.log shows ld: symbol(s) not found for architecture arm64 — the unresolved symbols are the CoreFoundation/SystemConfiguration references inside libcurl.a. Linux builds are unaffected (no frameworks there), which is why this only bites Darwin targets.
Workaround we use
Pass the frameworks back via SPC_EXTRA_PHP_VARS="LIBS='-lresolv -framework CoreFoundation -framework CoreServices -framework SystemConfiguration'".
Suggestion
Either include declared frameworks of resolved packages in the configure-stage LIBS, or add them to the pkg-config closure used for conftest links, so static-lib link checks succeed on Darwin without leaking the full polyfill lib set.
First seen in production builds here: https://github.com/moyerdestroyer/phpvm-runtimes (all aarch64-apple-darwin catalog builds failed starting 2026-08-27).
Environment
spc-macos-aarch64(sha256e04f9658…, built after a488606 on 2026-08-22)aarch64-apple-darwin, macOS 14 arm64 runnerProblem
Since a488606 ("fix pgsql and other polyfill libs leaking into configure"),
configureForUnix()runs php's./configurewith:instead of the previous
makeVars()['EXTRA_LIBS'], which included the macOS-framework CoreFoundation -framework CoreServices -framework SystemConfigurationflags (curl.yml declares these underframeworks).The static
libcurl.aconftest link in php's ext/curl check then fails:config.log shows
ld: symbol(s) not found for architecture arm64— the unresolved symbols are the CoreFoundation/SystemConfiguration references inside libcurl.a. Linux builds are unaffected (no frameworks there), which is why this only bites Darwin targets.Workaround we use
Pass the frameworks back via
SPC_EXTRA_PHP_VARS="LIBS='-lresolv -framework CoreFoundation -framework CoreServices -framework SystemConfiguration'".Suggestion
Either include declared
frameworksof resolved packages in the configure-stage LIBS, or add them to the pkg-config closure used for conftest links, so static-lib link checks succeed on Darwin without leaking the full polyfill lib set.First seen in production builds here: https://github.com/moyerdestroyer/phpvm-runtimes (all aarch64-apple-darwin catalog builds failed starting 2026-08-27).