Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

2016 64bit compiler issue

Kris_W_
Beginner
1,042 Views

We have just switched over from Visual Studio 2013 with Intel 2015, to VS 2015 and Intel 2016. We've worked through several issues including ones related to Visual Studio 2015 Update 1.

Unfortunately there is one issue we cannot find a solution to, it only appears to occur if when building our 64bit configuration and only occurs when either built on our build machine as part of a build process or if we repeat the msbuild on one of our development machines.

The error appears to be to do with Intel Compiler trying to load SQLite and it seems it's loading the wrong version. The error we are getting is below:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\x64\PlatformToolsets\Intel C++ Compiler 16.0\Toolset.targets (372, 0)
The "ICL" task failed unexpectedly.
System.BadImageFormatException: Could not load file or assembly 'System.Data.SQLite, Version=1.0.88.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' or one of its dependencies. is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
File name: 'System.Data.SQLite, Version=1.0.88.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' ---> System.BadImageFormatException: Could not load file or assembly 'System.Data.SQLite.dll' or one of its dependencies. is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
File name: 'System.Data.SQLite.dll'
at System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
at System.Reflection.Assembly.LoadFile(String path)
at Intel.Misc.Utilities.AssemblyResolver.SQLiteAssemblyResolver(Object sender, ResolveEventArgs args)
at System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName)
at Intel.Compiler.IDE.OptReports.DB.DBUtilities.Commit(OptReportsDataBase db, String projectFilePath, String solutionPath)
at Intel.Compiler.IDE.OptReports.DB.MessageParser.CommitToDataBase(String solutionPath, String projectFilePath)
at Intel.Build.ICLTasks.ICL.ExecuteTool(String pathToTool, String responseFileCommands, String commandLineCommands)
at Microsoft.Build.Utilities.ToolTask.Execute()
at Microsoft.Build.CPPTasks.TrackedVCToolTask.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()

 

0 Kudos
6 Replies
Kris_W_
Beginner
1,042 Views

Also it seems the issue we had with the 2015 x64 merge modules still exists with 2016.

When trying to include the merge module 'ww_icl_redist_intel64_2016.1.146.msm' into our WiX project it fails with the following errors, which appear to be because the merge module is actually a 32bit one when it should be 64bit.

Errors:
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent irc_msg_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory _1041.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent libiomp5ui_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory _1041.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent libmUI_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory _1041.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent irc_msg_dll1.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory _1033.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent libmUI_dll1.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory _1033.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent irml_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory IRML.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent irml_debug_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory IRML.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent irml_dll1.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory IRML_C.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent irml_debug_dll1.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory IRML_C.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent libiomp5md_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory COMPILER.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent libiompstubs5md_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory COMPILER.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent liboffload_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory COMPILER.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent libgfxoffload_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory COMPILER.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent libchkp_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory COMPILER.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent libmmd_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory COMPILER.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent libmmdd_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory COMPILER.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent libmpx_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory COMPILER.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent svml_dispmd_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory COMPILER.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent cilkrts20_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory COMPILER.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent version_fc_intel64_dll.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory INTEL64_WIN_MIC.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent Environment_sys.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory INSTALLDIR.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent Environment_sys_compiler.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory INSTALLDIR.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent Environment_sys_mpirt.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory INSTALLDIR.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
4>light.exe(0,0): error LGHT0204: ICE80: This 32BitComponent Environment_sys_mic.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC uses 64BitDirectory INSTALLDIR.D9F09DDD_F3FE_427A_A63E_83D87E7D99CC
0 Kudos
Kris_W_
Beginner
1,042 Views

The first issue I have solved now, I believe it was related to the build templates in TFS. I have switched over to using the new build system codenamed Vnext in TFS 2015 and now our x64 build works successfully.

I think this was due to the old build template trying to use MSBUILD in x64 rather than x86.

The second issue with the merge modules still is a problem, for now we are just going to continue to pick up the relevant DLL's from the redist folder. But it would be nice if in the future Intel can fix their merge modules.

0 Kudos
Kittur_G_Intel
Employee
1,042 Views

Hi Kris,
Thanks for letting us know that you were able to resolve the first issue. Appreciate if you could attach a reproducer for the second issue (merge module), thanks

_Kittur

0 Kudos
Kris_W_
Beginner
1,042 Views

Hi Kittur,

I have attached a simplified solution, you will need to install WiX installer for Visual Studio, available here:

https://wix.codeplex.com/releases/view/619491

I believe the issue is because when we have 64bit installer we set the install location to "ProgramFiles64Folder" but the Intel merge module appears to be configured to write to the 32bit program files folder.

You can reproduce the problem by opening the solution and building the configuration TFS Release x64.

0 Kudos
Kittur_G_Intel
Employee
1,042 Views

Thanks Kris, will  try out the reproducer and touch base with you if I need any further info - appreciate much.

_Kittur

0 Kudos
Kittur_G_Intel
Employee
1,042 Views

Hi Kris, 
My apologies (thought I'd responded and just realized otherwise). I was not able to reproduce the merge modules issue :-(  If you still have any issues with future releases you can reopen this issue accordingly, appreciate much.
_Kittur 

0 Kudos
Reply