Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-35616

Webkit fails to build with VS2013

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Invalid
    • Icon: Not Evaluated Not Evaluated
    • None
    • 5.2.0
    • WebKit
    • None
    • Visual Studio 2013 Update

      Downloaded Qt 5.2.0 source, started a VS2013 x86 prompt, added <qtsrcdir>\gnuwin32\bin and c:\python33 to path, then configured like this:

      configure -opensource -debug-and-release -c++11 -shared -platform win32-msvc2013 -largefile -no-dbus -mp -directwrite -plugin-sql-sqlite -plugin-sql-odbc

      QTBUG-34709 shows but it's easy to fix. Next, I hit this:

      -8<--
      cd qml\ && ( if not exist Makefile C:\personal\qt\qt-5.2.0\qtbase\bin\qmake C:\personal\qt\qt-5.2.0\qtdeclarative\src\qml\qml.pro -o Makefile ) && "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe" -f Makefile

      Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
      Copyright (C) Microsoft Corporation. All rights reserved.

      "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe" -f Makefile.Debug all

      Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
      Copyright (C) Microsoft Corporation. All rights reserved.

      echo 2 /* CREATEPROCESS_MANIFEST_RESOURCE_ID / 24 / RT_MANIFEST */ "C:\\personal\\qt\\qt-5.2.0\\qtbase\\lib\\Qt5Qmld.dll.embed.manifest">C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll_manifest.rc
      if not exist C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll if exist C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll.embed.manifest del C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll.embed.manifest
      if exist C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll.embed.manifest copy /Y C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll.embed.manifest C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll_manifest.bak
      link /NOLOGO /DYNAMICBASE /NXCOMPAT /BASE:0x66000000 /DEBUG /DLL /VERSION:5.20 /MANIFEST /MANIFESTFILE:C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll.embed.manifest /OUT:C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll @C:\Users\pgquiles\AppData\Local\Temp\nmE554.tmp
      Creating library C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.lib and object C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.exp
      YarrInterpreter.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::newlineCreate(void)" (?newlineCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ) referenced in function "public: struct JSC::Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::newlineCharacterClass(void)" (?newlineCharacterClass@YarrPattern@Yarr@JSC@@QAEPAUCharacterClass@23@XZ)
      YarrJIT.obj : error LNK2001: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::newlineCreate(void)" (?newlineCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ)
      YarrPattern.obj : error LNK2001: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::newlineCreate(void)" (?newlineCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ)
      YarrInterpreter.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::wordcharCreate(void)" (?wordcharCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ) referenced in function "public: struct JSC::Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::wordcharCharacterClass(void)" (?wordcharCharacterClass@YarrPattern@Yarr@JSC@@QAEPAUCharacterClass@23@XZ)
      YarrJIT.obj : error LNK2001: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::wordcharCreate(void)" (?wordcharCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ)
      YarrPattern.obj : error LNK2001: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::wordcharCreate(void)" (?wordcharCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ)
      YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::digitsCreate(void)" (?digitsCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ) referenced in function "public: struct JSC::Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::digitsCharacterClass(void)" (?digitsCharacterClass@YarrPattern@Yarr@JSC@@QAEPAUCharacterClass@23@XZ)
      YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::spacesCreate(void)" (?spacesCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ) referenced in function "public: struct JSC::Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::spacesCharacterClass(void)" (?spacesCharacterClass@YarrPattern@Yarr@JSC@@QAEPAUCharacterClass@23@XZ)
      YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::nondigitsCreate(void)" (?nondigitsCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ) referenced in function "public: struct JSC::Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::nondigitsCharacterClass(void)" (?nondigitsCharacterClass@YarrPattern@Yarr@JSC@@QAEPAUCharacterClass@23@XZ)
      YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::nonspacesCreate(void)" (?nonspacesCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ) referenced in function "public: struct JSC::Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::nonspacesCharacterClass(void)" (?nonspacesCharacterClass@YarrPattern@Yarr@JSC@@QAEPAUCharacterClass@23@XZ)
      YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::nonwordcharCreate(void)" (?nonwordcharCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ) referenced in function "public: struct JSC::Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::nonwordcharCharacterClass(void)" (?nonwordcharCharacterClass@YarrPattern@Yarr@JSC@@QAEPAUCharacterClass@23@XZ)
      C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll : fatal error LNK1120: 7 unresolved externals
      NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\link.EXE"' : return code '0x460'
      Stop.
      NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe"' : return code '0x2'
      Stop.
      NMAKE : fatal error U1077: 'cd' : return code '0x2'
      Stop.
      NMAKE : fatal error U1077: 'cd' : return code '0x2'
      Stop.
      NMAKE : fatal error U1077: 'cd' : return code '0x2'
      Stop.
      -8<--

      From what I can see, there are two versions of YARR being provided with Qt: one in qtwebkit\Source\JavaScriptCore\yarr\YarrPattern.

      {h,cpp}, the other in qtscript\src\3rdparty\javascriptcore\JavaScriptCore\yarr\RegexPattern.{h,cpp}

      The compilation problem happens with the one in QtWebKit, which is a newer version of JSC.

      This declaration is in both YarrPattern.h and RegexPattern.h:

      CharacterClass* newlineCreate();

      But only qtscript\src\3rdparty\javascriptcore\JavaScriptCore\yarr\RegexPattern.cpp provides an implementation:

      CharacterClass* newlineCreate()
      {
      CharacterClass* characterClass = new CharacterClass();

      characterClass->m_matches.append('\n');
      characterClass->m_matches.append('\r');
      characterClass->m_matchesUnicode.append(0x2028);
      characterClass->m_matchesUnicode.append(0x2029);

      return characterClass;
      }

      I can't find an implementation for newlineCreate() in qtwebkit\Source\JavaScriptCore\yarr\YarrPattern.cpp or any other file compiled in QtWebKit.

      I don't really understand why this compiles with other compilers.

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            allan.jensen Allan Sandfeld Jensen
            pgquiles Pau Garcia i Quiles
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes