New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 785965 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Build failed on Linux with GCC in V8WindowPartial.cpp

Project Member Reported by jose.dap...@lge.com, Nov 16 2017

Issue description

This has been found doing local build with GCC. It seems to be a regression caused by this:
commit f3ce2901174c13c13a318dc68f5473cad413199b
Author: Yuta Kitamura <yutak@chromium.org>
Date:   Thu Nov 9 09:02:40 2017 +0000

    Split WTF::CrossThreadFunction out of WTF::Function.
    
    This patch is largely based on tzik's WIP patch:
    https://chromium-review.googlesource.com/c/chromium/src/+/746381
    
    Bug:  771087 
    Change-Id: I973e7b567995371b72061903d6c267b08c2ec571
    Reviewed-on: https://chromium-review.googlesource.com/759763
    Reviewed-by: Taiju Tsuiki <tzik@chromium.org>
    Reviewed-by: Kentaro Hara <haraken@chromium.org>
    Commit-Queue: Yuta Kitamura <yutak@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#515125}


This is the build error log:

In file included from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/HeapAllocator.h:10:0,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Handle.h:35,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/bindings/ActiveScriptWrappable.h:9,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/bindings/WrapperTypeInfo.h:35,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/bindings/V8PerContextData.h:42,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/bindings/ScriptState.h:12,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/ScriptValue.h:36,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/ScriptFunction.h:34,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/ScriptPromise.h:34,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/ExceptionState.h:34,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/GeneratedCodeHelper.h:14,
                 from gen/blink/bindings/modules/v8/V8WindowPartial.h:14,
                 from gen/blink/bindings/modules/v8/V8WindowPartial.cpp:11:
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Persistent.h: In instantiation of 'void blink::PersistentBase<T, weaknessConfiguration, crossThreadnessConfiguration>::TracePersistent(VisitorDispatcher) [with VisitorDispatcher = bli
nk::Visitor*; T = blink::SQLTransactionBackend; blink::WeaknessPersistentConfiguration weaknessConfiguration = (blink::WeaknessPersistentConfiguration)0u; blink::CrossThreadnessPersistentConfiguration crossThreadnessConfiguration = (blink::CrossThreadnessPersistentConfigu
ration)1u]':
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Persistent.h:223:64:   required from 'void blink::PersistentBase<T, weaknessConfiguration, crossThreadnessConfiguration>::Initialize() [with T = blink::SQLTransactionBackend; blink::W
eaknessPersistentConfiguration weaknessConfiguration = (blink::WeaknessPersistentConfiguration)0u; blink::CrossThreadnessPersistentConfiguration crossThreadnessConfiguration = (blink::CrossThreadnessPersistentConfiguration)1u]'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Persistent.h:46:15:   required from 'blink::PersistentBase<T, weaknessConfiguration, crossThreadnessConfiguration>::PersistentBase() [with T = blink::SQLTransactionBackend; blink::Wea
knessPersistentConfiguration weaknessConfiguration = (blink::WeaknessPersistentConfiguration)0u; blink::CrossThreadnessPersistentConfiguration crossThreadnessConfiguration = (blink::CrossThreadnessPersistentConfiguration)1u]'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Persistent.h:442:36:   required from 'blink::CrossThreadPersistent<T>::CrossThreadPersistent() [with T = blink::SQLTransactionBackend]'
/home/dape/Development/rpi/poky-pyro/build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/chromium-ozone-igalia/64.0.3267.0.r515863.igalia.1-r0/recipe-sysroot/usr/include/c++/6.3.0/type_traits:1360:12:   required from 'struct std::is_trivially_constructible<blink::Cros
sThreadPersistent<blink::SQLTransactionBackend> >'
/home/dape/Development/rpi/poky-pyro/build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/chromium-ozone-igalia/64.0.3267.0.r515863.igalia.1-r0/recipe-sysroot/usr/include/c++/6.3.0/type_traits:1367:12:   required from 'struct std::is_trivially_default_constructible<bli
nk::CrossThreadPersistent<blink::SQLTransactionBackend> >'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/wtf/VectorTraits.h:36:25:   required from 'constexpr const bool WTF::VectorTraitsBase<blink::CrossThreadPersistent<blink::SQLTransactionBackend> >::kCanInitializeWithMemset'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/wtf/Deque.h:150:21:   required from 'class WTF::Deque<blink::CrossThreadPersistent<blink::SQLTransactionBackend> >'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/modules/webdatabase/Database.h:204:55:   required from here
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Persistent.h:205:25: error: invalid application of 'sizeof' to incomplete type 'blink::SQLTransactionBackend'
     static_assert(sizeof(T), "T must be fully defined");
                         ^
In file included from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/wtf/Allocator.h:9:0,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/NativeValueTraits.h:10,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/ScriptValue.h:34,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/ScriptFunction.h:34,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/ScriptPromise.h:34,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/ExceptionState.h:34,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/GeneratedCodeHelper.h:14,
                 from gen/blink/bindings/modules/v8/V8WindowPartial.h:14,
                 from gen/blink/bindings/modules/v8/V8WindowPartial.cpp:11:
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/wtf/TypeTraits.h: In instantiation of 'class WTF::IsGarbageCollectedType<blink::SQLTransactionBackend>':
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Persistent.h:212:5:   required from 'void blink::PersistentBase<T, weaknessConfiguration, crossThreadnessConfiguration>::TracePersistent(VisitorDispatcher) [with VisitorDispatcher = blink::Visitor*; T = blink::SQLTransactionBackend; blink::WeaknessPersistentConfiguration weaknessConfiguration = (blink::WeaknessPersistentConfiguration)0u; blink::CrossThreadnessPersistentConfiguration crossThreadnessConfiguration = (blink::CrossThreadnessPersistentConfiguration)1u]'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Persistent.h:223:64:   required from 'void blink::PersistentBase<T, weaknessConfiguration, crossThreadnessConfiguration>::Initialize() [with T = blink::SQLTransactionBackend; blink::WeaknessPersistentConfiguration weaknessConfiguration = (blink::WeaknessPersistentConfiguration)0u; blink::CrossThreadnessPersistentConfiguration crossThreadnessConfiguration = (blink::CrossThreadnessPersistentConfiguration)1u]'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Persistent.h:46:15:   required from 'blink::PersistentBase<T, weaknessConfiguration, crossThreadnessConfiguration>::PersistentBase() [with T = blink::SQLTransactionBackend; blink::WeaknessPersistentConfiguration weaknessConfiguration = (blink::WeaknessPersistentConfiguration)0u; blink::CrossThreadnessPersistentConfiguration crossThreadnessConfiguration = (blink::CrossThreadnessPersistentConfiguration)1u]'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Persistent.h:442:36:   required from 'blink::CrossThreadPersistent<T>::CrossThreadPersistent() [with T = blink::SQLTransactionBackend]'
/home/dape/Development/rpi/poky-pyro/build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/chromium-ozone-igalia/64.0.3267.0.r515863.igalia.1-r0/recipe-sysroot/usr/include/c++/6.3.0/type_traits:1360:12:   required from 'struct std::is_trivially_constructible<blink::CrossThreadPersistent<blink::SQLTransactionBackend> >'
/home/dape/Development/rpi/poky-pyro/build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/chromium-ozone-igalia/64.0.3267.0.r515863.igalia.1-r0/recipe-sysroot/usr/include/c++/6.3.0/type_traits:1367:12:   required from 'struct std::is_trivially_default_constructible<blink::CrossThreadPersistent<blink::SQLTransactionBackend> >'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/wtf/VectorTraits.h:36:25:   required from 'constexpr const bool WTF::VectorTraitsBase<blink::CrossThreadPersistent<blink::SQLTransactionBackend> >::kCanInitializeWithMemset'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/wtf/Deque.h:150:21:   required from 'class WTF::Deque<blink::CrossThreadPersistent<blink::SQLTransactionBackend> >'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/modules/webdatabase/Database.h:204:55:   required from here
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/wtf/TypeTraits.h:273:23: error: invalid application of 'sizeof' to incomplete type 'blink::SQLTransactionBackend'
   static_assert(sizeof(T), "T must be fully defined");
                       ^
In file included from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/HeapAllocator.h:10:0,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Handle.h:35,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/bindings/ActiveScriptWrappable.h:9,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/bindings/WrapperTypeInfo.h:35,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/bindings/V8PerContextData.h:42,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/bindings/ScriptState.h:12,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/ScriptValue.h:36,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/ScriptFunction.h:34,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/ScriptPromise.h:34,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/ExceptionState.h:34,
                 from ../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/bindings/core/v8/GeneratedCodeHelper.h:14,
                 from gen/blink/bindings/modules/v8/V8WindowPartial.h:14,
                 from gen/blink/bindings/modules/v8/V8WindowPartial.cpp:11:
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Persistent.h: In instantiation of 'void blink::PersistentBase<T, weaknessConfiguration, crossThreadnessConfiguration>::TracePersistent(VisitorDispatcher) [with VisitorDispatcher = blink::Visitor*; T = blink::SQLTransactionBackend; blink::WeaknessPersistentConfiguration weaknessConfiguration = (blink::WeaknessPersistentConfiguration)0u; blink::CrossThreadnessPersistentConfiguration crossThreadnessConfiguration = (blink::CrossThreadnessPersistentConfiguration)1u]':
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Persistent.h:223:64:   required from 'void blink::PersistentBase<T, weaknessConfiguration, crossThreadnessConfiguration>::Initialize() [with T = blink::SQLTransactionBackend; blink::WeaknessPersistentConfiguration weaknessConfiguration = (blink::WeaknessPersistentConfiguration)0u; blink::CrossThreadnessPersistentConfiguration crossThreadnessConfiguration = (blink::CrossThreadnessPersistentConfiguration)1u]'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Persistent.h:46:15:   required from 'blink::PersistentBase<T, weaknessConfiguration, crossThreadnessConfiguration>::PersistentBase() [with T = blink::SQLTransactionBackend; blink::WeaknessPersistentConfiguration weaknessConfiguration = (blink::WeaknessPersistentConfiguration)0u; blink::CrossThreadnessPersistentConfiguration crossThreadnessConfiguration = (blink::CrossThreadnessPersistentConfiguration)1u]'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Persistent.h:442:36:   required from 'blink::CrossThreadPersistent<T>::CrossThreadPersistent() [with T = blink::SQLTransactionBackend]'
/home/dape/Development/rpi/poky-pyro/build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/chromium-ozone-igalia/64.0.3267.0.r515863.igalia.1-r0/recipe-sysroot/usr/include/c++/6.3.0/type_traits:1360:12:   required from 'struct std::is_trivially_constructible<blink::CrossThreadPersistent<blink::SQLTransactionBackend> >'
/home/dape/Development/rpi/poky-pyro/build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/chromium-ozone-igalia/64.0.3267.0.r515863.igalia.1-r0/recipe-sysroot/usr/include/c++/6.3.0/type_traits:1367:12:   required from 'struct std::is_trivially_default_constructible<blink::CrossThreadPersistent<blink::SQLTransactionBackend> >'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/wtf/VectorTraits.h:36:25:   required from 'constexpr const bool WTF::VectorTraitsBase<blink::CrossThreadPersistent<blink::SQLTransactionBackend> >::kCanInitializeWithMemset'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/wtf/Deque.h:150:21:   required from 'class WTF::Deque<blink::CrossThreadPersistent<blink::SQLTransactionBackend> >'
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/modules/webdatabase/Database.h:204:55:   required from here
../../../../../../../../../upstream-chromium/src/third_party/WebKit/Source/platform/heap/Persistent.h:206:5: error: static assertion failed: T needs to be a garbage collected object
     static_assert(IsGarbageCollectedType<T>::value,
     ^~~~~~~~~~~~~

 

Comment 1 by jsb...@chromium.org, Nov 16 2017

Components: -Blink>Storage Blink>Internals>WTF

Comment 2 by yutak@chromium.org, Nov 17 2017

Cc: haraken@chromium.org tzik@chromium.org
Labels: Pri-2 Type-Bug
+haraken tzik

Comment 4 by yutak@chromium.org, Nov 17 2017

Yes, I think.
Project Member

Comment 5 by bugdroid1@chromium.org, Nov 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3a53ea8b5469be3d15684bba7d1248bc77e3dc36

commit 3a53ea8b5469be3d15684bba7d1248bc77e3dc36
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri Nov 17 08:24:10 2017

Cannot compile gen/blink/bindings/modules/v8/V8WindowPartial.cpp on GCC.

This is a fix for a build regression in GCC caused by this commit:
    commit f3ce2901174c13c13a318dc68f5473cad413199b
    Author: Yuta Kitamura <yutak@chromium.org>
    Date:   Thu Nov 9 09:02:40 2017 +0000

    Split WTF::CrossThreadFunction out of WTF::Function.

After this change, the class passed to CrossThreadPersistent need to
be completely defined, so a forward class declare is not enough.

Bug:  785965 
Change-Id: Ie0c06686a394ad9b531c3023e36f850af4bf0361
Reviewed-on: https://chromium-review.googlesource.com/774747
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#517340}
[modify] https://crrev.com/3a53ea8b5469be3d15684bba7d1248bc77e3dc36/third_party/WebKit/Source/modules/webdatabase/Database.h
[modify] https://crrev.com/3a53ea8b5469be3d15684bba7d1248bc77e3dc36/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h

Comment 6 by jose.dap...@lge.com, Nov 17 2017

Status: Fixed (was: Untriaged)

Sign in to add a comment