Bug 254506
| Summary: | [WPE] [2.40.0] Fails to build in mipsel: invalid use of incomplete type 'class JSC::GenericTypedArrayView<JSC::Float32Adaptor>' | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Alberto Garcia <berto> |
| Component: | WPE WebKit | Assignee: | Adrian Perez <aperez> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | aperez, bugs-noreply |
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Alberto Garcia
WebKitGTK 2.40.0 works fine however, this is only a problem with WPE WebKit.
The full build log is here (note: 16MB): https://buildd.debian.org/status/fetch.php?pkg=wpewebkit&arch=mipsel&ver=2.40.0-1&stamp=1679502401&raw=0
This is the error itself:
---------------------------------------------------------
In file included from wpewebkit-2.40.0/obj-mipsel-linux-gnu/WTF/Headers/wtf/HashFunctions.h:26,
from wpewebkit-2.40.0/obj-mipsel-linux-gnu/WTF/Headers/wtf/CompactPtr.h:32,
from wpewebkit-2.40.0/obj-mipsel-linux-gnu/WTF/Headers/wtf/text/StringImpl.h:29,
from wpewebkit-2.40.0/obj-mipsel-linux-gnu/WTF/Headers/wtf/text/WTFString.h:28,
from wpewebkit-2.40.0/Source/WebCore/dom/Exception.h:30,
from wpewebkit-2.40.0/Source/WebCore/dom/ExceptionOr.h:29,
from wpewebkit-2.40.0/Source/WebCore/Modules/webaudio/AudioBuffer.h:33,
from wpewebkit-2.40.0/Source/WebCore/Modules/webaudio/AudioBufferSourceOptions.h:29,
from wpewebkit-2.40.0/obj-mipsel-linux-gnu/WebCore/DerivedSources/JSAudioBufferSourceOptions.h:25,
from wpewebkit-2.40.0/obj-mipsel-linux-gnu/WebCore/DerivedSources/JSAudioBufferSourceOptions.cpp:25:
wpewebkit-2.40.0/obj-mipsel-linux-gnu/WTF/Headers/wtf/RefPtr.h: In instantiation of 'static void WTF::DefaultRefDerefTraits< <template-parameter-1-1> >::derefIfNotNull(T*) [with T = JSC::GenericTypedArrayView<JSC::Float32Adaptor>]':
wpewebkit-2.40.0/obj-mipsel-linux-gnu/WTF/Headers/wtf/RefPtr.h:74:61: required from 'WTF::RefPtr<T, <template-parameter-1-2>, <template-parameter-1-3> >::~RefPtr() [with T = JSC::GenericTypedArrayView<JSC::Float32Adaptor>; _PtrTraits = WTF::RawPtrTraits<JSC::GenericTypedArrayView<JSC::Float32Adaptor> >; _RefDerefTraits = WTF::DefaultRefDerefTraits<JSC::GenericTypedArrayView<JSC::Float32Adaptor> >]'
wpewebkit-2.40.0/obj-mipsel-linux-gnu/WTF/Headers/wtf/Vector.h:69:20: required from 'static void WTF::VectorDestructor<true, T>::destruct(T*, T*) [with T = WTF::RefPtr<JSC::GenericTypedArrayView<JSC::Float32Adaptor> >]'
wpewebkit-2.40.0/obj-mipsel-linux-gnu/WTF/Headers/wtf/Vector.h:252:81: required from 'static void WTF::VectorTypeOperations<T>::destruct(T*, T*) [with T = WTF::RefPtr<JSC::GenericTypedArrayView<JSC::Float32Adaptor> >]'
wpewebkit-2.40.0/obj-mipsel-linux-gnu/WTF/Headers/wtf/TrailingArray.h:84:42: required from 'WTF::TrailingArray<Derived, T>::~TrailingArray() [with Derived = WTF::EmbeddedFixedVector<WTF::RefPtr<JSC::GenericTypedArrayView<JSC::Float32Adaptor> > >; T = WTF::RefPtr<JSC::GenericTypedArrayView<JSC::Float32Adaptor> >]'
wpewebkit-2.40.0/obj-mipsel-linux-gnu/WTF/Headers/wtf/EmbeddedFixedVector.h:38:7: required from 'void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = WTF::EmbeddedFixedVector<WTF::RefPtr<JSC::GenericTypedArrayView<JSC::Float32Adaptor> > >]'
/usr/include/c++/12/bits/unique_ptr.h:396:17: required from 'std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = WTF::EmbeddedFixedVector<WTF::RefPtr<JSC::GenericTypedArrayView<JSC::Float32Adaptor> > >; _Dp = std::default_delete<WTF::EmbeddedFixedVector<WTF::RefPtr<JSC::GenericTypedArrayView<JSC::Float32Adaptor> > > >]'
wpewebkit-2.40.0/obj-mipsel-linux-gnu/WTF/Headers/wtf/FixedVector.h:33:7: required from 'void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = WebCore::AudioBuffer]'
wpewebkit-2.40.0/obj-mipsel-linux-gnu/WTF/Headers/wtf/RefCounted.h:190:22: required from 'void WTF::RefCounted<T, Deleter>::deref() const [with T = WebCore::AudioBuffer; Deleter = std::default_delete<WebCore::AudioBuffer>]'
wpewebkit-2.40.0/obj-mipsel-linux-gnu/WTF/Headers/wtf/Ref.h:61:23: required from 'WTF::Ref<T, <template-parameter-1-2> >::~Ref() [with T = WebCore::AudioBuffer; Traits = WTF::RawPtrTraits<WebCore::AudioBuffer>]'
wpewebkit-2.40.0/obj-mipsel-linux-gnu/WebCore/DerivedSources/JSAudioBuffer.h:93:228: required from here
wpewebkit-2.40.0/obj-mipsel-linux-gnu/WTF/Headers/wtf/RefPtr.h:42:18: error: invalid use of incomplete type 'class JSC::GenericTypedArrayView<JSC::Float32Adaptor>'
42 | ptr->deref();
| ~~~~~^~~~~
In file included from wpewebkit-2.40.0/obj-mipsel-linux-gnu/JavaScriptCore/PrivateHeaders/JavaScriptCore/Forward.h:29,
from wpewebkit-2.40.0/Source/WebCore/Modules/webaudio/AudioBuffer.h:35:
wpewebkit-2.40.0/obj-mipsel-linux-gnu/JavaScriptCore/PrivateHeaders/JavaScriptCore/TypedArrayAdaptersForwardDeclarations.h:42:34: note: declaration of 'class JSC::GenericTypedArrayView<JSC::Float32Adaptor>'
42 | template<typename Adaptor> class GenericTypedArrayView;
| ^~~~~~~~~~~~~~~~~~~~~
---------------------------------------------------------
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Adrian Perez
I have managed to reproduce this build issue on x86_64 as well, using
CMake directly instead of build-webkit, like this:
% CC=gcc CXX=g++ LDFLAGS=-fuse-ld=bfd \
cmake -S. -Bbuild -DPORT=WPE \
-DCMAKE_C_FLAGS_RELEASE='' \
-DCMAKE_C_FLAGS_DEBUG='' \
-DCMAKE_CXX_FLAGS_DEBUG='' \
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
-DENABLE_WPE_QT_API=OFF \
-DENABLE_MINIBROWSER=ON \
-DUSE_SOUP2=OFF \
-DDEBUG_FISSION=OFF \
-DENABLE_WEBGL=OFF \
-DENABLE_UNIFIED_BUILDS=OFF \
-DENABLE_DOCUMENTATION=OFF \
-DENABLE_INTROSPECTION=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DENABLE_BUBBLEWRAP_SANDBOX=ON \
-GNinja
% ninja -Cbuild
The error looks similar to another I fixed in one of my non-unified build
patches some weeks back. I'll try to solve this one as well.
Adrian Perez
(In reply to Adrian Perez from comment #1)
> I have managed to reproduce this build issue on x86_64 as well, using
> CMake directly instead of build-webkit, like this:
>
> % CC=gcc CXX=g++ LDFLAGS=-fuse-ld=bfd \
> cmake -S. -Bbuild -DPORT=WPE \
> -DCMAKE_C_FLAGS_RELEASE='' \
> -DCMAKE_C_FLAGS_DEBUG='' \
> -DCMAKE_CXX_FLAGS_DEBUG='' \
> -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
> -DENABLE_WPE_QT_API=OFF \
> -DENABLE_MINIBROWSER=ON \
> -DUSE_SOUP2=OFF \
> -DDEBUG_FISSION=OFF \
> -DENABLE_WEBGL=OFF \
> -DENABLE_UNIFIED_BUILDS=OFF \
> -DENABLE_DOCUMENTATION=OFF \
> -DENABLE_INTROSPECTION=OFF \
> -DCMAKE_BUILD_TYPE=Release \
> -DENABLE_BUBBLEWRAP_SANDBOX=ON \
> -GNinja
> % ninja -Cbuild
>
> The error looks similar to another I fixed in one of my non-unified build
> patches some weeks back. I'll try to solve this one as well.
Fixed in the webkitglib/2.40 branch in this commit:
https://github.com/WebKit/WebKit/commit/988cb56ec61c140431d9b93c7d9699eb5fa7925b