[webkit-changes] [WebKit/WebKit] adb961: Avoid using __TIMESTAMP__ when building for a comp...
Elliott Williams
noreply at github.com
Thu Nov 17 17:46:46 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: adb96155be5e75707c6d831c3329b72b0afcc2b1
https://github.com/WebKit/WebKit/commit/adb96155be5e75707c6d831c3329b72b0afcc2b1
Author: Elliott Williams <emw at apple.com>
Date: 2022-11-17 (Thu, 17 Nov 2022)
Changed paths:
M Source/JavaScriptCore/CMakeLists.txt
M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
M Source/JavaScriptCore/Sources.txt
M Source/JavaScriptCore/runtime/CachedTypes.cpp
A Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.cpp.in
A Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.h
M Source/ThirdParty/libwebrtc/Source/third_party/yasm/frontends/yasm/yasm.c
Log Message:
-----------
Avoid using __TIMESTAMP__ when building for a compilation cache
https://bugs.webkit.org/show_bug.cgi?id=247622
rdar://102056857
Reviewed by Mark Lam.
For Xcode-based ports, add a build rule to generate a
"JSCBytecodeCacheVersion.cpp" source file, which contains a SHA1 hash of
CachedTypes.o and JSCBuiltins.o, plus a production source version string
if specified. This is a belt-and-suspenders approach to try and ensure
that the version hash changes any time the JSC sources change, while
still being reproducible.
Because of its input and output dependencies, XCBuild runs the build
rule after CachedTypes.cpp and JSCBuiltins.cpp are compiled, then
subsequently compiles the source file the build rule generates.
For CMake + Ninja, it doesn't seem to be easily possible to do achieve
the same build ordering without splitting CachedTypes and JSCBuiltins
out to a separate target. For now, continue to use __TIMESTAMP__.
* Source/JavaScriptCore/CMakeLists.txt:
* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj: Add
build rule and source references.
* Source/JavaScriptCore/Sources.txt: Remove CachedTypes.cpp and
JSCBuiltins.cpp from the unified source set, so that they get their
own object files.
* Source/JavaScriptCore/runtime/CachedTypes.cpp:
(JSC::GenericCacheEntry::isUpToDate const):
(JSC::jscBytecodeCacheVersion): Deleted.
* Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.cpp.in: Added.
Template file, contains a CACHED_TYPES_CKSUM token which is replaces
with the actual checksum by the build rule.
* Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.h: Added.
* Source/ThirdParty/libwebrtc/Source/third_party/yasm/frontends/yasm/yasm.c:
Remove __DATE__ macro used in assembler output.
Canonical link: https://commits.webkit.org/256816@main
More information about the webkit-changes
mailing list