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

Reply via email to