WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
279227
watchOS arm64_32 build broken due to ThreadSafeRefCounted layout
https://bugs.webkit.org/show_bug.cgi?id=279227
Summary
watchOS arm64_32 build broken due to ThreadSafeRefCounted layout
Elliott Williams
Reported
2024-09-05 14:24:56 PDT
With debug assertions enabled (a config that EWS and post-commit do not test), watchOS for arm64_32 fails a static assertion in GeneratedSerializers.mm:
Attachments
Add attachment
proposed patch, testcase, etc.
Elliott Williams
Comment 1
2024-09-05 14:28:33 PDT
/Volumes/Data/OpenSource/WebKitBuild/Debug-watchos/DerivedSources/WebKit/GeneratedSerializers.mm:31638:19: error: static assertion failed due to requirement 'sizeof(ShouldBeSameSizeAsThreadSafeDataBufferImpl) == sizeof(WebC ore::ThreadSafeDataBufferImpl)' 31638 | static_assert(sizeof(ShouldBeSameSizeAsThreadSafeDataBufferImpl) == sizeof(WebCore::ThreadSafeDataBufferImpl)); /Volumes/Data/OpenSource/WebKitBuild/Debug-watchos/DerivedSources/WebKit/GeneratedSerializers.mm:31638:70: note: expression evaluates to '28 == 24' 31638 | static_assert(sizeof(ShouldBeSameSizeAsThreadSafeDataBufferImpl) == sizeof(WebCore::ThreadSafeDataBufferImpl)); /Volumes/Data/OpenSource/WebKitBuild/Debug-watchos/DerivedSources/WebKit/GeneratedSerializers.mm:47320:19: error: static assertion failed due to requirement 'sizeof(ShouldBeSameSizeAsSerializedScriptValue) == sizeof(WebCore ::SerializedScriptValue)' 47320 | static_assert(sizeof(ShouldBeSameSizeAsSerializedScriptValue) == sizeof(WebCore::SerializedScriptValue)); /Volumes/Data/OpenSource/WebKitBuild/Debug-watchos/DerivedSources/WebKit/GeneratedSerializers.mm:47320:67: note: expression evaluates to '100 == 96' 47320 | static_assert(sizeof(ShouldBeSameSizeAsSerializedScriptValue) == sizeof(WebCore::SerializedScriptValue)); 2 errors generated. I believe that the root problem is that WebCore::ThreadSafeDataBufferImpl is a WTF::ThreadSafeRefCounted, whereas the generated ShouldBeSameSizeAsThreadSafeDataBufferImpl is a WTF::RefCounted. The latter class has m_isOwnedByMainThread, m_areThreadingChecksEnabled, and m_adoptionIsRequired boolean fields that are implement runtime assertion checks. On platforms with 8-byte pointers, these bits seem to get packed in without affecting the overall size of the class, but on arm64_32 they make it a byte larger.
Radar WebKit Bug Importer
Comment 2
2024-09-05 14:28:44 PDT
<
rdar://problem/135371304
>
Elliott Williams
Comment 3
2024-09-05 14:38:13 PDT
Pull request:
https://github.com/WebKit/WebKit/pull/33209
EWS
Comment 4
2024-09-05 20:53:26 PDT
Committed
283247@main
(02f9d93edf29): <
https://commits.webkit.org/283247@main
> Reviewed commits have been landed. Closing PR #33209 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug