Skip to content

Build broken on Windows (VS2019) #126

Closed

Description

@targos

https://ci.nodejs.org/job/node-compile-windows/30296/nodes=win-vs2019-x86/console

10:57:55 mksnapshot.obj : error LNK2019: unresolved external symbol "public: static bool __cdecl v8::internal::BaseShape<class v8::internal::Handle<class v8::internal::Object> >::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@?$BaseShape@V?$Handle@VObject@internal@v8@@@internal@v8@@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) referenced in function "public: static bool __cdecl v8::internal::HashTable<class v8::internal::EphemeronHashTable,class v8::internal::EphemeronHashTableShape>::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@?$HashTable@VEphemeronHashTable@internal@v8@@VEphemeronHashTableShape@23@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\workspace\node-compile-windows\node\tools\v8_gypfiles\mksnapshot.vcxproj]
10:57:55 snapshot-empty.obj : error LNK2001: unresolved external symbol "public: static bool __cdecl v8::internal::BaseShape<class v8::internal::Handle<class v8::internal::Object> >::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@?$BaseShape@V?$Handle@VObject@internal@v8@@@internal@v8@@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\workspace\node-compile-windows\node\tools\v8_gypfiles\mksnapshot.vcxproj]
10:57:55 mksnapshot.obj : error LNK2019: unresolved external symbol "public: static bool __cdecl v8::internal::BaseShape<class v8::internal::Handle<class v8::internal::Name> >::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@?$BaseShape@V?$Handle@VName@internal@v8@@@internal@v8@@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) referenced in function "public: static bool __cdecl v8::internal::HashTable<class v8::internal::NameDictionary,class v8::internal::NameDictionaryShape>::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@?$HashTable@VNameDictionary@internal@v8@@VNameDictionaryShape@23@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\workspace\node-compile-windows\node\tools\v8_gypfiles\mksnapshot.vcxproj]
10:57:55 snapshot-empty.obj : error LNK2001: unresolved external symbol "public: static bool __cdecl v8::internal::BaseShape<class v8::internal::Handle<class v8::internal::Name> >::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@?$BaseShape@V?$Handle@VName@internal@v8@@@internal@v8@@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\workspace\node-compile-windows\node\tools\v8_gypfiles\mksnapshot.vcxproj]
10:57:55 mksnapshot.obj : error LNK2019: unresolved external symbol "public: static bool __cdecl v8::internal::GlobalDictionaryShape::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@GlobalDictionaryShape@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) referenced in function "public: static bool __cdecl v8::internal::HashTable<class v8::internal::GlobalDictionary,class v8::internal::GlobalDictionaryShape>::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@?$HashTable@VGlobalDictionary@internal@v8@@VGlobalDictionaryShape@23@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\workspace\node-compile-windows\node\tools\v8_gypfiles\mksnapshot.vcxproj]
10:57:55 snapshot-empty.obj : error LNK2001: unresolved external symbol "public: static bool __cdecl v8::internal::GlobalDictionaryShape::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@GlobalDictionaryShape@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\workspace\node-compile-windows\node\tools\v8_gypfiles\mksnapshot.vcxproj]
10:57:55 ..\..\out\Release\mksnapshot.exe : fatal error LNK1120: 3 unresolved externals [C:\workspace\node-compile-windows\node\tools\v8_gypfiles\mksnapshot.vcxproj]

Activity

  1. changed the title [-]Build broken on Windows[/-] [+]Build broken on Windows (VS2019)[/+] on Dec 4, 2019
  2. targos commented on Dec 10, 2019

    @targos
    MemberAuthor

    /cc @nodejs/platform-windows

  3. gengjiawen commented on Jan 15, 2020

    @gengjiawen
    Member

    Also you can see the error from github action.

    Log from: https://github.com/nodejs/node-v8/runs/388526007

    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2857,5): error MSB4018: The "AssignTargetPath" task failed unexpectedly. [D:\a\node-v8\node-v8\tools\v8_gypfiles\v8_initializers.vcxproj]
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2857,5): error MSB4018: System.ArgumentException: Illegal characters in path. [D:\a\node-v8\node-v8\tools\v8_gypfiles\v8_initializers.vcxproj]
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2857,5): error MSB4018:    at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional) [D:\a\node-v8\node-v8\tools\v8_gypfiles\v8_initializers.vcxproj]
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2857,5): error MSB4018:    at System.IO.Path.IsPathRooted(String path) [D:\a\node-v8\node-v8\tools\v8_gypfiles\v8_initializers.vcxproj]
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2857,5): error MSB4018:    at Microsoft.Build.Tasks.AssignTargetPath.Execute() [D:\a\node-v8\node-v8\tools\v8_gypfiles\v8_initializers.vcxproj]
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2857,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [D:\a\node-v8\node-v8\tools\v8_gypfiles\v8_initializers.vcxproj]
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2857,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() [D:\a\node-v8\node-v8\tools\v8_gypfiles\v8_initializers.vcxproj]
  4. gengjiawen commented on Jan 15, 2020

    @gengjiawen
    Member

    Looks like path generated not right (target v8-initializer).
    Compatibility issue with node-gyp ? cc @nodejs/node-gyp

    image

  5. richardlau commented on Jan 15, 2020

    @richardlau
    Member

    node-gyp isn't used to build Node.js. It's possible there's an issue with gyp but it's not failing on the current master.

  6. gengjiawen commented on Jan 16, 2020

    @gengjiawen
    Member

    Which part in gyp handles include directive, looks like a path format problem.

  7. richardlau commented on Jan 16, 2020

    @richardlau
    Member

    Aren't those #include directives written out by torque?

  8. gengjiawen commented on Jan 16, 2020

    @gengjiawen
    Member

    Looks like not the root cause, Node.js master branch with same path.

  9. gengjiawen commented on Jan 16, 2020

    @gengjiawen
    Member

    Another possible cause (right panel is current repo) :
    image

  10. gengjiawen commented on Jan 16, 2020

    @gengjiawen
    Member

    If we remove the $quote in Include value , another build issue will occur

         Creating library ..\..\out\Release\mksnapshot.lib and object ..\..\out\Release\mksnapshot.exp
    platform-embedded-file-writer-win.obj : error LNK2019: unresolved external symbol "public: static bool __cdecl v8::internal::BaseShape<class v8::internal::Handle<class v8::internal::Object> >::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@?$BaseShape@V?$H
    andle@VObject@internal@v8@@@internal@v8@@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) referenced in function "public: static bool __cdecl v8::internal::HashTable<class v8::internal::EphemeronHashTable,class v8::internal::EphemeronHashTableShape>::IsKey(class v8::internal::ReadOnl
    yRoots,class v8::internal::Object)" (?IsKey@?$HashTable@VEphemeronHashTable@internal@v8@@VEphemeronHashTableShape@23@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\projects\appveyor-playground\node-v8\tools\v8_gypfiles\mksnapshot.vcxproj]
    mksnapshot.obj : error LNK2001: unresolved external symbol "public: static bool __cdecl v8::internal::BaseShape<class v8::internal::Handle<class v8::internal::Object> >::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@?$BaseShape@V?$Handle@VObject@internal@
    v8@@@internal@v8@@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\projects\appveyor-playground\node-v8\tools\v8_gypfiles\mksnapshot.vcxproj]
    snapshot-empty.obj : error LNK2001: unresolved external symbol "public: static bool __cdecl v8::internal::BaseShape<class v8::internal::Handle<class v8::internal::Object> >::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@?$BaseShape@V?$Handle@VObject@inter
    nal@v8@@@internal@v8@@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\projects\appveyor-playground\node-v8\tools\v8_gypfiles\mksnapshot.vcxproj]
    platform-embedded-file-writer-win.obj : error LNK2019: unresolved external symbol "public: static bool __cdecl v8::internal::BaseShape<class v8::internal::Handle<class v8::internal::Name> >::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@?$BaseShape@V?$Han
    dle@VName@internal@v8@@@internal@v8@@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) referenced in function "public: static bool __cdecl v8::internal::HashTable<class v8::internal::NameDictionary,class v8::internal::NameDictionaryShape>::IsKey(class v8::internal::ReadOnlyRoots,class
     v8::internal::Object)" (?IsKey@?$HashTable@VNameDictionary@internal@v8@@VNameDictionaryShape@23@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\projects\appveyor-playground\node-v8\tools\v8_gypfiles\mksnapshot.vcxproj]
    mksnapshot.obj : error LNK2001: unresolved external symbol "public: static bool __cdecl v8::internal::BaseShape<class v8::internal::Handle<class v8::internal::Name> >::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@?$BaseShape@V?$Handle@VName@internal@v8@@
    @internal@v8@@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\projects\appveyor-playground\node-v8\tools\v8_gypfiles\mksnapshot.vcxproj]
    snapshot-empty.obj : error LNK2001: unresolved external symbol "public: static bool __cdecl v8::internal::BaseShape<class v8::internal::Handle<class v8::internal::Name> >::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@?$BaseShape@V?$Handle@VName@internal@
    v8@@@internal@v8@@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\projects\appveyor-playground\node-v8\tools\v8_gypfiles\mksnapshot.vcxproj]
    platform-embedded-file-writer-win.obj : error LNK2019: unresolved external symbol "public: static bool __cdecl v8::internal::GlobalDictionaryShape::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@GlobalDictionaryShape@internal@v8@@SA_NVReadOnlyRoots@23@VObj
    ect@23@@Z) referenced in function "public: static bool __cdecl v8::internal::HashTable<class v8::internal::GlobalDictionary,class v8::internal::GlobalDictionaryShape>::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@?$HashTable@VGlobalDictionary@internal@v8
    @@VGlobalDictionaryShape@23@@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\projects\appveyor-playground\node-v8\tools\v8_gypfiles\mksnapshot.vcxproj]
    mksnapshot.obj : error LNK2001: unresolved external symbol "public: static bool __cdecl v8::internal::GlobalDictionaryShape::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@GlobalDictionaryShape@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\projects
    \appveyor-playground\node-v8\tools\v8_gypfiles\mksnapshot.vcxproj]
    snapshot-empty.obj : error LNK2001: unresolved external symbol "public: static bool __cdecl v8::internal::GlobalDictionaryShape::IsKey(class v8::internal::ReadOnlyRoots,class v8::internal::Object)" (?IsKey@GlobalDictionaryShape@internal@v8@@SA_NVReadOnlyRoots@23@VObject@23@@Z) [C:\proj
    ects\appveyor-playground\node-v8\tools\v8_gypfiles\mksnapshot.vcxproj]
    ..\..\out\Release\mksnapshot.exe : fatal error LNK1120: 3 unresolved externals [C:\projects\appveyor-playground\node-v8\tools\v8_gypfiles\mksnapshot.vcxproj]
    
  11. targos commented on Jan 16, 2020

    @targos
    MemberAuthor

    I can probably handle the unresolved symbols. I did that in the past (it's about inline methods that should be moved from .h to -inl.h)
    Now we need to find out what put those quotes and how to prevent that.

  12. targos commented on Jan 16, 2020

    @targos
    MemberAuthor

    Thanks @gengjiawen for your help on this

  13. richardlau commented on Jan 17, 2020

    @richardlau
    Member

    Another possible cause (right panel is current repo) :
    image

    I think there should at least be a space between ..\..\deps\v8\src\torque\runtime-support.h and &quot;. @targos Looks like there's a missing comma at the end of this line

    '<(V8_ROOT)/src/torque/runtime-support.h'

  14. richardlau commented on Jan 17, 2020

    @richardlau
    Member

    Let's see if fixing the missing comma gets the build further along: #136

  15. richardlau commented on Jan 17, 2020

    @richardlau
    Member

    Looks like it fixed the quote issue and gets to the same unresolved symbols.

  16. targos commented on Jan 17, 2020

    @targos
    MemberAuthor

    Building on my computer to fix the unresolved symbols.

  17. targos commented on Jan 17, 2020

    @targos
    MemberAuthor

    Well, I cannot reproduce the errors on my PC (VS 2019). Node builds fine now...

  18. targos commented on Jan 17, 2020

    @targos
    MemberAuthor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions