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

icuin52.dll and icuuc52.dll in VS 2012 32-bit OpenGL release cannot be used for WinXP deployment

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P3: Somewhat important
    • Resolution: Out of scope
    • Affects Version/s: 5.3.0
    • Fix Version/s: 5.3.1
    • Component/s: Packaging & Installer
    • Labels:
      None
    • Environment:
      Windows XP SP3
      Windows Server 2003 SP2

      Description

      Of the four 32-bit Windows compilers selectable for Qt 5.3, apps built with MinGW 4.8.2 and VS 2010 can directly be deployed to Windows XP (and Windows Server 2003). Of the other two, apps built with VS 2013 can be deployed to Windows XP after either one of the following 3 tweaks has been performed:

      1) Rebuild Qt with the command line option -target xp and then rebuild the app.
      2) Open the app in Qt Creator and in the Projects/Build Environment add LINK=/SUBSYSTEM:WINDOWS,5.01 and then rebuild the app.
      3) Binary edit the .exe file: close to the top of the file, change the 2 consecutive DWORDs containing 06 00 00 00 to 05 00 00 00.

      However, for apps built with VS 2012 none of the above 3 methods no longer works. On XP, instead of starting, the app dies with "The procedure entry point GetTickCount64 could not be located...".
      This is a regression from Qt 5.2.x, where you could apply method 2) and 3) on apps built with VS 2012 and successfully launch them on Windows XP.

      Reason: icuin52.dll and icuuc52.dll are built using the RTM flavor of the VS2012 32-bit compiler, not Update 2, 3 or 4.

      Workaround: use a "FrankenQt" deployment model, where you replace nonworking parts (in this case icuin52.dll and icuuc52.dll) with the same dlls from one of the other 32-bit compilers: MinGW, VS2010 or VS2013. While this works, the logistical burden increases, because you have to deploy the compiler specific .dlls for two separate compilers, i.e. VS2012's msvcr110.dll, msvcp110.dll and for example msvcr120.dll and msvcp120.dll if you selected VS2013 as the donor of icuin52.dll and icuuc52.dll.

        Attachments

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

          Activity

            People

            • Assignee:
              kkohne Kai Köhne
              Reporter:
              hskoglund Henry Skoglund
            • Votes:
              2 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Gerrit Reviews

                There are no open Gerrit changes