Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: dd186f5a3502de386ee96ceba7dfd3202d5c3466
https://github.com/WebKit/WebKit/commit/dd186f5a3502de386ee96ceba7dfd3202d5c3466
Author: Richard Robinson <[email protected]>
Date: 2026-07-04 (Sat, 04 Jul 2026)
Changed paths:
M Source/JavaScriptCore/runtime/DeferredWorkTimer.h
Log Message:
-----------
[CMake] Fix the CMake build after 316448@main
https://bugs.webkit.org/show_bug.cgi?id=318590
rdar://181368662
Reviewed by Pascoe.
316448@main moved DeferredWorkTimer::create() into an inline definition in
the class body of DeferredWorkTimer.h (the JSC-internal
DeferredWorkTimerInlines.h
was deleted). create() calls the out-of-line, non-exported private constructor
DeferredWorkTimer(VM&).
Because create() is now inline in a header included across the JSC/WebKit dylib
boundary, the CMake build emits a definition of create() into the shared
precompiled-header object (WebKitUIProcess_pch_obj.cpp.o, produced via clang's
-building-pch-with-obj codegen mode). That definition references the
constructor,
which is hidden (local) in the JavaScriptCore dylib, so linking WebKitUIProcess
fails with:
Undefined symbols for architecture arm64:
"JSC::DeferredWorkTimer::DeferredWorkTimer(JSC::VM&)", referenced from:
JSC::DeferredWorkTimer::create(JSC::VM&) in
WebKitUIProcess_pch_obj.cpp.o
The Xcode build is unaffected because it does not use the shared PCH-object
codegen mode, so create() is only emitted where it is actually used (VM.cpp,
inside JSC).
Mark the constructor JS_EXPORT_PRIVATE so the exported symbol is available to
the header-inlined create() outside the JavaScriptCore dylib.
* Source/JavaScriptCore/runtime/DeferredWorkTimer.h:
Canonical link: https://commits.webkit.org/316504@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications