Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: adb96155be5e75707c6d831c3329b72b0afcc2b1 https://github.com/WebKit/WebKit/commit/adb96155be5e75707c6d831c3329b72b0afcc2b1 Author: Elliott Williams <e...@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 _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes