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

configure over-quotes library exports from sources with multi-entry-lists

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.9.4
    • 5.9
    • Build System
    • None
    • * Windows 10 x64,
      * mingw-w64 6.3.0,
      * MSVC 2015 Update 3,
      * Windows SDK 10.0.14393.33.
    • 79a068c3964db79979821bb9e9bad6eb7ab6211c

    Description

      Hello, everyone,

       

      After -QTBUG-62150- was fixed next blockers appeared.

      For builds using mingw-w64:

      Checking for ICU... 
      Trying source 0 (type inline) of library icu ...
      + cd /d C:\libQT-5.9-dev\build\config.tests\unix\icu && C:\libQT-5.9-dev\build\qtbase\bin\qmake.exe "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static console single_arch" "LIBS += -Lc:\\libQT-5.9-dev\\build\\..\\..\\libICU-59.1\\GCC64RT/lib " "LIBS_DEBUG += -lsicuind -lsicuucd -lsicudtd" "LIBS_RELEASE += -lsicuin -lsicuuc -lsicudt" "INCLUDEPATH *= c:\\libQT-5.9-dev\\build\\..\\..\\libICU-59.1\\GCC64RT/include" C:/libQT-5.9-dev/build/qtbase/config.tests/unix/icu
      + cd /d C:\libQT-5.9-dev\build\config.tests\unix\icu && set MAKEFLAGS=& mingw32-make
      > g++ -c -fno-keep-inline-dllexport -O2 -Wextra -Wall -W -fexceptions -mthreads -DUNICODE -D_UNICODE -IC:\libQT-5.9-dev\build\qtbase\config.tests\unix\icu -I. -IC:\libICU-59.1\GCC64RT\include -IC:\libQT-5.9-dev\build\qtbase\mkspecs\win32-g++  -o icu.o C:\libQT-5.9-dev\build\qtbase\config.tests\unix\icu\icu.cpp
      > g++ -Wl,-s -Wl,-subsystem,console -static -mthreads -o icu.exe icu.o  -LC:\libICU-59.1\GCC64RT\lib -lsicuin -lsicuuc C:\libICU-59.1\GCC64RT\lib\sicudt.a 
       => source accepted.
      test config.corelib.libraries.icu succeeded
      
      <snip>
      
      mingw32-make[4]: Entering directory 'C:/libQT-5.9-dev/build/qtbase/src/tools/qdbusxml2cpp'
      g++ -Wl,--gc-sections -Wl,-s -Wl,-subsystem,console -static -o ..\..\..\bin\qdbusxml2cpp.exe .obj/release/qdbusxml2cpp.o  -LC:\libQT-5.9-dev\build\qtbase\lib C:\libQT-5.9-dev\build\qtbase\lib\libQt5DBus.a -LC:\libICU-59.1\GCC64RT\lib -lnetapi32 C:\libQT-5.9-dev\build\qtbase\lib\libQt5Core.a -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 -lmpr -lversion -lwinmm -lz -l"sicuin -lsicuuc -lsicudt" C:\libQT-5.9-dev\build\qtbase\lib\libqtpcre2.a .obj\release\qdbusxml2cpp_resource_res.o
      mingw32-make[4]: Entering directory 'C:/libQT-5.9-dev/build/qtbase/src/tools/qdbuscpp2xml'
      g++ -Wl,--gc-sections -Wl,-s -Wl,-subsystem,console -static -o ..\..\..\bin\qdbuscpp2xml.exe .obj/release/moc.o .obj/release/preprocessor.o .obj/release/generator.o .obj/release/parser.o .obj/release/token.o .obj/release/qdbuscpp2xml.o  -LC:\libQT-5.9-dev\build\qtbase\lib C:\libQT-5.9-dev\build\qtbase\lib\libQt5DBus.a -LC:\libICU-59.1\GCC64RT\lib -lnetapi32 C:\libQT-5.9-dev\build\qtbase\lib\libQt5Core.a -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 -lmpr -lversion -lwinmm -lz -l"sicuin -lsicuuc -lsicudt" C:\libQT-5.9-dev\build\qtbase\lib\libqtpcre2.a .obj\release\qdbuscpp2xml_resource_res.o
      C:/ProgramData/Mingw64/bin/../lib/gcc/x86_64C-:w64/-ProgramDatamingw32//Mingw646.3.0//bin./../../.lib//.gcc.//x86_64.-.w64/-x86_64mingw32-/w646.3.0-/mingw32./.bin//.ld.exe.:/ .cannot. /find. .-/lsicuinx86_64 --w64lsicuuc- mingw32-/lsicudtbin
      /collect2.exe: error: ld returned 1 exit status
      ld.exe: cannot find -lsicuin -lsicuuc -lsicudt
      collect2.exe: error: ld returned 1 exit status
      Makefile.Release:85: recipe for target '..\..\..\bin\qdbuscpp2xml.exe' failed
      mingw32-make[4]: *** [..\..\..\bin\qdbuscpp2xml.exe] Error 1
      mingw32-make[4]: Leaving directory 'C:/libQT-5.9-dev/build/qtbase/src/tools/qdbuscpp2xml'
      Makefile.Release:63: recipe for target '..\..\..\bin\qdbusxml2cpp.exe' failed
      mingw32-make[4]: *** [..\..\..\bin\qdbusxml2cpp.exe] Error 1
      mingw32-make[4]: Leaving directory 'C:/libQT-5.9-dev/build/qtbase/src/tools/qdbusxml2cpp'
      Makefile:36: recipe for target 'release' failed
      mingw32-make[3]: *** [release] Error 2
      mingw32-make[3]: Leaving directory 'C:/libQT-5.9-dev/build/qtbase/src/tools/qdbuscpp2xml'
      Makefile:36: recipe for target 'release' failed
      mingw32-make[3]: *** [release] Error 2
      mingw32-make[3]: Leaving directory 'C:/libQT-5.9-dev/build/qtbase/src/tools/qdbusxml2cpp'
      Makefile:398: recipe for target 'sub-qdbusxml2cpp-make_first' failed
      mingw32-make[2]: *** [sub-qdbusxml2cpp-make_first] Error 2
      Makefile:423: recipe for target 'sub-qdbuscpp2xml-make_first' failed
      mingw32-make[2]: *** [sub-qdbuscpp2xml-make_first] Error 2
      mingw32-make[4]: Entering directory 'C:/libQT-5.9-dev/build/qtbase/src/gui'
      mingw32-make[4]: Nothing to be done for 'first'.
      mingw32-make[4]: Leaving directory 'C:/libQT-5.9-dev/build/qtbase/src/gui'
      mingw32-make[3]: Leaving directory 'C:/libQT-5.9-dev/build/qtbase/src/gui'
      mingw32-make[2]: Leaving directory 'C:/libQT-5.9-dev/build/qtbase/src'
      Makefile:44: recipe for target 'sub-src-make_first' failed
      mingw32-make[1]: *** [sub-src-make_first] Error 2
      mingw32-make[1]: Leaving directory 'C:/libQT-5.9-dev/build/qtbase'
      Makefile:78: recipe for target 'module-qtbase-make_first' failed
      mingw32-make: *** [module-qtbase-make_first] Error 2

       

      For builds using MSVC:

      Checking for ICU...
      Trying source 0 (type inline) of library icu ...
      + cd /d C:\libQT-5.9-dev\build\config.tests\unix\icu && C:\libQT-5.9-dev\build\qtbase\bin\qmake.exe "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static console single_arch" "LIBS += -Lc:\\libQT-5.9-dev\\build\\..\\..\\libICU-59.1\\MSVC64RT/lib " "LIBS_DEBUG += -lsicuind -lsicuucd -lsicudtd" "LIBS_RELEASE += -lsicuin -lsicuuc -lsicudt" "INCLUDEPATH *= c:\\libQT-5.9-dev\\build\\..\\..\\libICU-59.1\\MSVC64RT/include" C:/libQT-5.9-dev/build/qtbase/config.tests/unix/icu
      + cd /d C:\libQT-5.9-dev\build\config.tests\unix\icu && set MAKEFLAGS=& jom
      > jom 1.1.2 - empower your cores
      >     cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -O2  -MT -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -EHsc -DUNICODE -D_UNICODE -DWIN32 -DWIN64 -DNDEBUG -IC:\libQT-5.9-dev\build\qtbase\config.tests\unix\icu -I. -IC:\libICU-59.1\MSVC64RT\include -IC:\libQT-5.9-dev\build\qtbase\mkspecs\win32-msvc -Fo @C:\Users\test\AppData\Local\Temp\icu.obj.9372.15.jom
      > icu.cpp
      >     link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:icu.exe @C:\Users\test\AppData\Local\Temp\icu.exe.9372.109.jom
      >    Creating library icu.lib and object icu.exp
      > sicuuc.lib(umapfile.ao) : error LNK2019: unresolved external symbol __imp_InitializeSecurityDescriptor referenced in function uprv_mapFile_59
      > sicuuc.lib(umapfile.ao) : error LNK2019: unresolved external symbol __imp_SetSecurityDescriptorDacl referenced in function uprv_mapFile_59
      > sicuuc.lib(wintz.ao) : error LNK2019: unresolved external symbol __imp_RegCloseKey referenced in function "long __cdecl getSTDName(char const *,char *,int)" (?getSTDName@@YAJPEBDPEADH@Z)
      > sicuuc.lib(wintz.ao) : error LNK2019: unresolved external symbol __imp_RegOpenKeyExA referenced in function "long __cdecl getSTDName(char const *,char *,int)" (?getSTDName@@YAJPEBDPEADH@Z)
      > sicuuc.lib(wintz.ao) : error LNK2019: unresolved external symbol __imp_RegQueryValueExA referenced in function "long __cdecl getSTDName(char const *,char *,int)" (?getSTDName@@YAJPEBDPEADH@Z)
      > icu.exe : fatal error LNK1120: 5 unresolved externals
      > jom: C:\libQT-5.9-dev\build\config.tests\unix\icu\Makefile [icu.exe] Error 1120
       => source failed verification.
      Trying source 1 (type inline) of library icu ...
        => source failed condition 'config.win32 && features.shared'.
      Trying source 2 (type inline) of library icu ...
        => source failed condition '!config.win32'.
      test config.corelib.libraries.icu FAILED

      which could be fixed by adding -ladvapi32 key to lines:

      "debug": "-lsicuind -lsicuucd -lsicudtd",
      "release": "-lsicuin -lsicuuc -lsicudt"

      in file qtbase/src/corelib/configure.json. Then next blocker appeared:

      Checking for ICU...
      Trying source 0 (type inline) of library icu ...
      + cd /d C:\libQT-5.9-dev\build\config.tests\unix\icu && C:\libQT-5.9-dev\build\qtbase\bin\qmake.exe "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static console single_arch" "LIBS += -Lc:\\libQT-5.9-dev\\build\\..\\..\\libICU-59.1\\MSVC64RT/lib " "LIBS_DEBUG += -lsicuind -lsicuucd -lsicudtd" "LIBS_RELEASE += -ladvapi32 -lsicuin -lsicuuc -lsicudt" "INCLUDEPATH *= c:\\libQT-5.9-dev\\build\\..\\..\\libICU-59.1\\MSVC64RT/include" C:/libQT-5.10-dev/build/qtbase/config.tests/unix/icu
      + cd /d C:\libQT-5.9-dev\build\config.tests\unix\icu && set MAKEFLAGS=& jom
      > jom 1.1.2 - empower your cores
      >     cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -O2  -MT -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -EHsc -DUNICODE -D_UNICODE -DWIN32 -DWIN64 -DNDEBUG -IC:\libQT-5.9-dev\build\qtbase\config.tests\unix\icu -I. -IC:\libICU-59.1\MSVC64RT\include -IC:\libQT-5.9-dev\build\qtbase\mkspecs\win32-msvc -Fo @C:\Users\test\AppData\Local\Temp\icu.obj.9136.0.jom
      > icu.cpp
      >     link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:icu.exe @C:\Users\test\AppData\Local\Temp\icu.exe.9136.94.jom
      >    Creating library icu.lib and object icu.exp
       => source accepted.
      test config.corelib.libraries.icu succeeded
      
      <snip>
      
              link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /VERSION:5.9 /MANIFEST:embed /OUT:..\..\..\bin\qlalr.exe @C:\Users\test\AppData\Local\Temp\nm5CF6.tmp
      LINK : fatal error LNK1181: cannot open input file 'advapi32 -lsicuin -lsicuuc -lsicudt.lib'
      NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\link.EXE"' : return code '0x49d'
      Stop.
      NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\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.

       

      Reproduced for Qt builds with ICU and Static layout. Not reproduced for builds with Shared layout.

       

       

      Alexander

       

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-62521
          # Subject Branch Project Status CR V

          Activity

            People

              buddenha Oswald Buddenhagen
              sav sav
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes