Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 85258ac002a9cce76f19b45b92c00da559c3e49d
https://github.com/WebKit/WebKit/commit/85258ac002a9cce76f19b45b92c00da559c3e49d
Author: Keith Miller <[email protected]>
Date: 2026-05-16 (Sat, 16 May 2026)
Changed paths:
M Source/JavaScriptCore/Configurations/Base.xcconfig
Log Message:
-----------
[JSC] Restore JavaScriptCore.framework's top-level Helpers symlink in
sandboxed builds
https://bugs.webkit.org/show_bug.cgi?id=314957
rdar://177250677
Reviewed by Yusuke Suzuki.
The "Create Versions/Current/Helpers symlink" build phase on the All
aggregate target silently fails under user-script sandboxing, leaving
JavaScriptCore.framework without a top-level Helpers symlink pointing
at Versions/Current/Helpers.
The phase declares its output as $(BUILT_PRODUCTS_DIR)/$(WRAPPER_NAME)/Helpers,
but aggregate targets have no WRAPPER_NAME, so the sandbox only grants
write access to $(BUILT_PRODUCTS_DIR)/Helpers. The script itself writes
inside the framework via $(JAVASCRIPTCORE_HELPERS_DIR)/../../.., which
the sandbox blocks. The phase always ends with a 0 exit status, so the
failure goes unreported and the build succeeds with a missing symlink.
This regressed run-jsc-stress-tests after 312482@main, whose new
jscOutsideFramework heuristic checks File.file?(framework + "Helpers" +
"jsc") to detect CMake mac builds. Without the top-level Helpers
symlink, that check incorrectly identifies Xcode builds as CMake
builds and stages jsc outside the framework. I don't believe this
changes production builds since those still seem to have a
Versions/Current/Helpers directory containing `jsc`
Add the phase to EXCLUDED_USER_SCRIPT_SANDBOXING_PHASE_NAMES, matching
the treatment of its sibling phases on the same aggregate target
("Copy jsc into JavaScriptCore.framework", "Check For Inappropriate
Files In Framework", "Audit SPI use").
* Source/JavaScriptCore/Configurations/Base.xcconfig:
Canonical link: https://commits.webkit.org/313367@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications