Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Builds fail on Windows #172

Closed
targos opened this issue Sep 14, 2020 · 10 comments
Closed

Builds fail on Windows #172

targos opened this issue Sep 14, 2020 · 10 comments

Comments

@targos
Copy link
Member

targos commented Sep 14, 2020

CI: https://ci-release.nodejs.org/job/iojs+release/6313/

05:14:01 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility(4142,16): error C2280: 'v8::internal::wasm::WasmModuleBuilder::WasmGlobal &v8::internal::wasm::WasmModuleBuilder::WasmGlobal::operator =(const v8::internal::wasm::WasmModuleBuilder::WasmGlobal &)': attempting to reference a deleted function [c:\ws\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
05:14:01 c:\ws\deps\v8\src\wasm\wasm-module-builder.h(321): message : see declaration of 'v8::internal::wasm::WasmModuleBuilder::WasmGlobal::operator =' [c:\ws\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
05:14:01 c:\ws\deps\v8\src\wasm\wasm-module-builder.h(321,5): message : 'v8::internal::wasm::WasmModuleBuilder::WasmGlobal &v8::internal::wasm::WasmModuleBuilder::WasmGlobal::operator =(const v8::internal::wasm::WasmModuleBuilder::WasmGlobal &)': function was explicitly deleted [c:\ws\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
05:14:01 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector(1127): message : see reference to function template instantiation '_OutIt *std::_Copy_unchecked<_Iter,v8::internal::wasm::WasmModuleBuilder::WasmGlobal*>(_InIt,_InIt,_OutIt)' being compiled [c:\ws\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
05:14:01           with
05:14:01           [
05:14:01               _OutIt=v8::internal::wasm::WasmModuleBuilder::WasmGlobal *,
05:14:01               _Iter=v8::internal::wasm::WasmModuleBuilder::WasmGlobal *,
05:14:01               _InIt=v8::internal::wasm::WasmModuleBuilder::WasmGlobal *
05:14:01           ]
05:14:01 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector(1142): message : see reference to function template instantiation 'void std::vector<T,v8::internal::ZoneAllocator<T>>::_Assign_range<_Iter>(_Iter,_Iter,std::forward_iterator_tag)' being compiled [c:\ws\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
05:14:01           with
05:14:01           [
05:14:01               T=v8::internal::wasm::WasmModuleBuilder::WasmGlobal,
05:14:01               _Iter=v8::internal::wasm::WasmModuleBuilder::WasmGlobal *
05:14:01           ]
05:14:01 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector(1142): message : see reference to function template instantiation 'void std::vector<T,v8::internal::ZoneAllocator<T>>::_Assign_range<_Iter>(_Iter,_Iter,std::forward_iterator_tag)' being compiled [c:\ws\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
05:14:01           with
05:14:01           [
05:14:01               T=v8::internal::wasm::WasmModuleBuilder::WasmGlobal,
05:14:01               _Iter=v8::internal::wasm::WasmModuleBuilder::WasmGlobal *
05:14:01           ]
05:14:01 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector(1153): message : see reference to function template instantiation 'void std::vector<T,v8::internal::ZoneAllocator<T>>::assign<v8::internal::wasm::WasmModuleBuilder::WasmGlobal*,0>(_Iter,_Iter)' being compiled [c:\ws\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
05:14:01           with
05:14:01           [
05:14:01               T=v8::internal::wasm::WasmModuleBuilder::WasmGlobal,
05:14:01               _Iter=v8::internal::wasm::WasmModuleBuilder::WasmGlobal *
05:14:01           ]
05:14:01 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector(1153): message : see reference to function template instantiation 'void std::vector<T,v8::internal::ZoneAllocator<T>>::assign<v8::internal::wasm::WasmModuleBuilder::WasmGlobal*,0>(_Iter,_Iter)' being compiled [c:\ws\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
05:14:01           with
05:14:01           [
05:14:01               T=v8::internal::wasm::WasmModuleBuilder::WasmGlobal,
05:14:01               _Iter=v8::internal::wasm::WasmModuleBuilder::WasmGlobal *
05:14:01           ]
05:14:01 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector(1150): message : while compiling class template member function 'void std::vector<T,v8::internal::ZoneAllocator<T>>::_Copy_assign(const std::vector<T,v8::internal::ZoneAllocator<T>> &,std::false_type)' [c:\ws\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
05:14:01           with
05:14:01           [
05:14:01               T=v8::internal::wasm::WasmModuleBuilder::WasmGlobal
05:14:01           ]
05:14:01 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector(1169): message : see reference to function template instantiation 'void std::vector<T,v8::internal::ZoneAllocator<T>>::_Copy_assign(const std::vector<T,v8::internal::ZoneAllocator<T>> &,std::false_type)' being compiled [c:\ws\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
05:14:01           with
05:14:01           [
05:14:01               T=v8::internal::wasm::WasmModuleBuilder::WasmGlobal
05:14:01           ]
05:14:01 c:\ws\deps\v8\src\zone\zone-containers.h(28): message : see reference to class template instantiation 'std::vector<T,v8::internal::ZoneAllocator<T>>' being compiled [c:\ws\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
05:14:01           with
05:14:01           [
05:14:01               T=v8::internal::wasm::WasmModuleBuilder::WasmGlobal
05:14:01           ]
05:14:01 c:\ws\deps\v8\src\wasm\wasm-module-builder.h(350): message : see reference to class template instantiation 'v8::internal::ZoneVector<v8::internal::wasm::WasmModuleBuilder::WasmGlobal>' being compiled [c:\ws\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
@targos targos changed the title Release builds fail on Windows Builds fail on Windows Sep 14, 2020
@targos
Copy link
Member Author

targos commented Sep 14, 2020

@targos
Copy link
Member Author

targos commented Sep 14, 2020

/cc @nodejs/platform-windows

@gengjiawen
Copy link
Member

Maybe related to not get nodejs/gyp-next#62 ?

@targos
Copy link
Member Author

targos commented Sep 16, 2020

Shouldn't be. Unless I made a mistake, 6e33500 contains that change.

@gengjiawen
Copy link
Member

gengjiawen commented Sep 16, 2020

Then looks like some deleted function issue in msvc like previously fix in V8 8.5 (https://chromium-review.googlesource.com/c/v8/v8/+/2300540). I will take a look.

@gengjiawen
Copy link
Member

I will try to upstream the fix from nodejs/node#35229.

@gengjiawen
Copy link
Member

gengjiawen commented Sep 16, 2020

Upstream: https://chromium-review.googlesource.com/c/v8/v8/+/2414688.

In short, msvc force export class delete copy and assign if it's class member doesn't support them.
See: https://devblogs.microsoft.com/oldnewthing/20190927-00/?p=102932.

Exporting a class forces the compiler to generate code for every method, just in case some other module tries to call it. In particular, the compiler must generate the Node copy constructor and copy assignment operator, but it can’t, and that’s why you’re getting the error.

pull bot pushed a commit to ashu8912/v8 that referenced this issue Sep 24, 2020
Fix: nodejs/node-v8#172
Change-Id: Ibdbee76470ec8a4c20af7650dc5fac4602873430
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2414688
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70109}
@gengjiawen
Copy link
Member

landed in v8/v8@717543b

@gengjiawen
Copy link
Member

cc @targo You may need to remove 3853faa in next sync cycle.

@targos
Copy link
Member Author

targos commented Sep 25, 2020

@gengjiawen thanks, I just updated canary-base and removed the floating patch 👍

targos added a commit to targos/node that referenced this issue Sep 29, 2020
Original commit message:

    [zone]: fix build on msvc in wasm module

    Fix: nodejs/node-v8#172
    Change-Id: Ibdbee76470ec8a4c20af7650dc5fac4602873430
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2414688
    Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
    Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#70109}

Refs: v8/v8@717543b
gengjiawen pushed a commit to gengjiawen/node that referenced this issue Oct 8, 2020
Original commit message:

    [zone]: fix build on msvc in wasm module

    Fix: nodejs/node-v8#172
    Change-Id: Ibdbee76470ec8a4c20af7650dc5fac4602873430
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2414688
    Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
    Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#70109}

Refs: v8/v8@717543b
targos added a commit to targos/node that referenced this issue Oct 14, 2020
Original commit message:

    [zone]: fix build on msvc in wasm module

    Fix: nodejs/node-v8#172
    Change-Id: Ibdbee76470ec8a4c20af7650dc5fac4602873430
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2414688
    Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
    Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#70109}

Refs: v8/v8@717543b
targos added a commit to targos/node that referenced this issue Oct 17, 2020
Original commit message:

    [zone]: fix build on msvc in wasm module

    Fix: nodejs/node-v8#172
    Change-Id: Ibdbee76470ec8a4c20af7650dc5fac4602873430
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2414688
    Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
    Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#70109}

Refs: v8/v8@717543b
targos added a commit to nodejs/node that referenced this issue Oct 18, 2020
Original commit message:

    [zone]: fix build on msvc in wasm module

    Fix: nodejs/node-v8#172
    Change-Id: Ibdbee76470ec8a4c20af7650dc5fac4602873430
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2414688
    Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
    Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#70109}

Refs: v8/v8@717543b

PR-URL: #35415
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants