Bug 213713 - Build error in JavaScriptCore due to invalid use of incomplete type 'struct JSC::JSGeneratorTraits'
Summary: Build error in JavaScriptCore due to invalid use of incomplete type 'struct J...
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: Other
Hardware: Other Linux
: P2 Blocker
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-06-29 01:21 PDT by magnabosco.luca
Modified: 2022-06-30 16:26 PDT (History)
4 users (show)

See Also:


Attachments
Compilation error logs (516.52 KB, application/x-zip-compressed)
2020-06-29 01:21 PDT, magnabosco.luca
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description magnabosco.luca 2020-06-29 01:21:11 PDT
Created attachment 403034 [details]
Compilation error logs

Hi,

cross-compiling wpewebkit using Yocto for a Beaglebone board (SoC ARM TI3358) the compilation stops due to a build error in JavaScriptCore.

See the related issue on https://github.com/Igalia/meta-webkit/issues/191.

The log basically says:

```
...
/home/qem/Yocto/bbg/build/tmp/work/armv7at2hf-neon-poky-linux-gnueabi/wpewebkit/2.28.2-r0/wpewebkit-2.28.2/Source/JavaScriptCore/bytecompiler/BytecodeGeneratorBase.h: In instantiation of 'class JSC::BytecodeGeneratorBase<JSC::JSGeneratorTraits>':
/home/qem/Yocto/bbg/build/tmp/work/armv7at2hf-neon-poky-linux-gnueabi/wpewebkit/2.28.2-r0/wpewebkit-2.28.2/Source/JavaScriptCore/bytecompiler/Label.h:79:48:   required from 'int JSC::GenericBoundLabel<BytecodeGenerator>::target() [with Traits = JSC::JSGeneratorTraits]'
/home/qem/Yocto/bbg/build/tmp/work/armv7at2hf-neon-poky-linux-gnueabi/wpewebkit/2.28.2-r0/wpewebkit-2.28.2/Source/JavaScriptCore/bytecompiler/Label.h:108:33:   required from 'JSC::GenericBoundLabel<BytecodeGenerator>::operator int() [with Traits = JSC::JSGeneratorTraits]'
/home/qem/Yocto/bbg/build/tmp/work/armv7at2hf-neon-poky-linux-gnueabi/wpewebkit/2.28.2-r0/wpewebkit-2.28.2/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp:77:76:   required from here
/home/qem/Yocto/bbg/build/tmp/work/armv7at2hf-neon-poky-linux-gnueabi/wpewebkit/2.28.2-r0/wpewebkit-2.28.2/Source/JavaScriptCore/bytecompiler/BytecodeGeneratorBase.h:50:5: error: invalid use of incomplete type 'struct JSC::JSGeneratorTraits'
   50 |     BytecodeGeneratorBase(typename Traits::CodeBlock, uint32_t virtualRegisterCountForCalleeSaves);
      |     ^~~~~~~~~~~~~~~~~~~~~
...
/home/qem/Yocto/bbg/build/tmp/work/armv7at2hf-neon-poky-linux-gnueabi/wpewebkit/2.28.2-r0/wpewebkit-2.28.2/Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1571:69: error: explicit instantiation of 'void JSC::JIT::emit_op_put_by_val(const JSC::Instruction*) [with Op = JSC::OpPutByVal]' but no definition available [-fpermissive]
...
```

I see the error compiling both:
- https://wpewebkit.org/releases/wpewebkit-2.28.1.tar.xz
- https://wpewebkit.org/releases/wpewebkit-2.28.2.tar.xz

Compiler version: GCC 9.2

Some basics Yocto configuration options

```
Build Configuration:
BB_VERSION           = "1.44.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "arm-poky-linux-gnueabi"
MACHINE              = "beaglebone"
...
TUNE_FEATURES        = "arm armv7a vfp thumb neon callconvention-hard"
TARGET_FPU           = "hard"
```
Comment 1 Brent Fulgham 2022-06-30 16:26:42 PDT
Does this still happen? We cannot reproduce on Apple systems, but perhaps a Linux build issue remains?