Bug 240650

Summary: Missing JSCInlines.h header for non-unified 2.36.2 build
Product: WebKit Reporter: Dennis Nezic <dennisn>
Component: WebKitGTKAssignee: Adrian Perez <aperez>
Status: ASSIGNED ---    
Severity: Normal CC: aperez, bugs-noreply, mcatanzaro, webkit-bug-importer
Priority: P2    
Version: WebKit Nightly Build   
Hardware: PC   
OS: Linux   
See Also: https://bugs.webkit.org/show_bug.cgi?id=241123

Description Dennis Nezic 2022-05-19 07:53:15 PDT
These files seem to be missing  #include "JSCInlines.h"

Source/JavaScriptCore/dfg/DFGCapabilities.cpp
Source/JavaScriptCore/jit/JITDisassembler.cpp
Source/JavaScriptCore/jit/JITPlan.cpp
Source/JavaScriptCore/llint/LLIntEntrypoint.cpp
Source/JavaScriptCore/runtime/FileBasedFuzzerAgentBase.cpp
Source/JavaScriptCore/wasm/js/WebAssemblyFunctionBase.cpp

The compilation/linking errors look like:

Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/dfg/DFGCapabilities.cpp.o: in function `JSC::DFG::capabilityLevel(JSC::CodeBlock*)':
DFGCapabilities.cpp:(.text+0x4ea): undefined reference to `JSC::JSCell::structure() const
Comment 1 Adrian Perez 2022-05-26 15:36:46 PDT
(In reply to Dennis Nezic from comment #0)
> These files seem to be missing  #include "JSCInlines.h"
> 
> Source/JavaScriptCore/dfg/DFGCapabilities.cpp
> Source/JavaScriptCore/jit/JITDisassembler.cpp
> Source/JavaScriptCore/jit/JITPlan.cpp
> Source/JavaScriptCore/llint/LLIntEntrypoint.cpp
> Source/JavaScriptCore/runtime/FileBasedFuzzerAgentBase.cpp
> Source/JavaScriptCore/wasm/js/WebAssemblyFunctionBase.cpp
> 
> The compilation/linking errors look like:
> 
> Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/dfg/DFGCapabilities.cpp.
> o: in function `JSC::DFG::capabilityLevel(JSC::CodeBlock*)':
> DFGCapabilities.cpp:(.text+0x4ea): undefined reference to
> `JSC::JSCell::structure() const

Could you share the CMake invocation you are using? I have tried the
following but have not been able to reproduce the issue:

  cmake -Bbuild -S. -DPORT=GTK -DENABLE_UNIFIED_BUILDS=OFF -GNinja
  ninja -Cbuild

If you could also indicate if you are defining CFLAGS, CXXFLAGS, LDFLAGS,
and/or CPPFLAGS in the environment when running CMake, that may help us
reproduce and fix your issue.
Comment 2 Adrian Perez 2022-05-28 07:28:02 PDT
FWIW, we just released version 2.36.3 which includes a flurry of
build fixes. You may want to try it instead:

  https://webkitgtk.org/2022/05/28/webkitgtk2.36.3-released.html
Comment 3 Dennis Nezic 2022-05-29 10:52:57 PDT
Same issue with 2.36.3. I'm assuming you tested with DENABLE_UNIFIED_BUILDS=no ?
Comment 4 Dennis Nezic 2022-05-29 10:54:15 PDT
Err, woops, ofc you did. Any tips on how I can figure out which other -DENABLE flag might be causing this? Maybe it's my -DENABLE_VIDEO=no
Comment 5 Dennis Nezic 2022-05-29 11:06:39 PDT
Ie. to clarify / rephrase the question, where is that undefined reference to JSC::JSCell supposed to have been included/defined? Ie. where was it included/defined during YOUR compilation?
Comment 6 Adrian Perez 2022-05-31 00:28:16 PDT
(In reply to Dennis Nezic from comment #4)
> Err, woops, ofc you did. Any tips on how I can figure out which other
> -DENABLE flag might be causing this? Maybe it's my -DENABLE_VIDEO=no

It's quite likely this. Thanks for mentioning it, I will do a test build
with video support disabled and fix any issues found with that configuration.
For the record, we do not officially support building with ENABLE_VIDEO
disabled; but when issues appear with it disabled appear we do try to fix
them in a best-effort basis -- so thanks for reporting the issue!
Comment 7 Michael Catanzaro 2022-05-31 06:29:47 PDT
(In reply to Adrian Perez from comment #6)
> For the record, we do not officially support building with ENABLE_VIDEO
> disabled; but when issues appear with it disabled appear we do try to fix
> them in a best-effort basis -- so thanks for reporting the issue!

Bug #241128
Comment 8 Adrian Perez 2022-05-31 12:53:31 PDT
(In reply to Adrian Perez from comment #6)
> (In reply to Dennis Nezic from comment #4)
> > Err, woops, ofc you did. Any tips on how I can figure out which other
> > -DENABLE flag might be causing this? Maybe it's my -DENABLE_VIDEO=no
> 
> It's quite likely this. Thanks for mentioning it, I will do a test build
> with video support disabled and fix any issues found with that configuration.
> For the record, we do not officially support building with ENABLE_VIDEO
> disabled; but when issues appear with it disabled appear we do try to fix
> them in a best-effort basis -- so thanks for reporting the issue!

So I tried -DENABLE_VIDEO=OFF and also a different build adding
the -DENABLE_WEB_RTC=OFF option using 2.36.3, but I could not
reproduce your build issue.

Could you please share your full CMake invocation, indicate what
is your target hardware, and whether you are cross-compiling WebKit
or not?
Comment 9 Dennis Nezic 2022-05-31 13:26:47 PDT
(In reply to Michael Catanzaro from comment #7)
> (In reply to Adrian Perez from comment #6)
> > For the record, we do not officially support building with ENABLE_VIDEO
> > disabled; but when issues appear with it disabled appear we do try to fix
> > them in a best-effort basis -- so thanks for reporting the issue!
> 
> Bug #241128

Hm. Youtube doesn't work at all (not even to read/post comments) without ENABLE_VIDEO? https://imgur.com/a/Qznz74j (ie. all the greyed-out boxes.) Sigh.