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

Internal error: assertion failed at: "shared/cfe/edgcpfe/host_envir.c", line 6855

forrest_zhukun
Beginner
616 Views

I am trying to build the mkl example c++ code using both VS2010 or command line. But got the same error:> Internal error: assertion failed at: "shared/cfe/edgcpfe/host_envir.c", line 6855> C:\\Program Files (x86)\\MSBuild\\Microsoft.Cpp\\v4.0\\Platforms\\Win32\\PlatformToolsets\\Intel C++ Compiler XE 12.1\\Microsoft.Cpp.Win32.Intel C++ Compiler XE 12.1.targets(213,5): error MSB6006: "icl.exe" exited with code 4.I am using Intel C++ compiler XE 12.1 update 1, running on intel i5, x64 Win7.Any helps are appreciated!

0 Kudos
11 Replies
Georg_Z_Intel
Employee
616 Views
Hello,

that's an internal compiler error in the front-end. Would you be able to provide me the preprocessed output for the source file which causes the error? I'll shrink it down and assign it as a defect to engineering.
An error like that does not appear in our database yet. So, updating to the latest compiler version might not be a solution for you... but wouldn't hurt either.

Thank you & best regards,

Georg Zitzlsberger
0 Kudos
forrest_zhukun
Beginner
616 Views
Below are the log after adding /P /C options. Hope it helps.
Build started 9/8/2012 10:27:08.
1>Project "c:\Users\lenovo's use\documents\visual studio 2010\Projects\TestConsole\TestConsle\TestConsle.vcxproj" on node 2 (rebuild target(s)).
1>InitializeBuildStatus:
Touching "Debug\TestConsle.unsuccessfulbuild".
MessageBuildingWithCompiler:
Building with Intel C++ Compiler XE 12.1
ClCompile:
***** ClCompile (Win32 - Intel C++)
C:\Program Files (x86)\Intel\Composer XE 2011 SP1\bin\ia32\icl.exe /c /Qvc10 /Qlocation,link,"$(VCInstallDir)\bin" /I"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\mkl\include" /ZI /nologo /W3 /Od /Qftz- /D WIN32 /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE /P /C /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\" /Fd"Debug\vc100.pdb" /Gd /TC "..\..\..\..\..\..\..\Program Files (x86)\Intel\Composer XE 2011 SP1\mkl\examples\cblas\source\cblas_caxpyix.c" "..\..\..\..\..\..\..\Program Files (x86)\Intel\Composer XE 2011 SP1\mkl\examples\cblas\source\common_func.c"
cblas_caxpyix.c
Internal error: assertion failed at: "shared/cfe/edgcpfe/host_envir.c", line 6855
common_func.c
Internal error: assertion failed at: "shared/cfe/edgcpfe/host_envir.c", line 6855
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets\Intel C++ Compiler XE 12.1\Microsoft.Cpp.Win32.Intel C++ Compiler XE 12.1.targets(213,5): error MSB6006: "icl.exe" exited with code 4.
1>Done Building Project "c:\Users\lenovo's use\documents\visual studio 2010\Projects\TestConsole\TestConsle\TestConsle.vcxproj" (rebuild target(s)) -- FAILED.
Build FAILED.
Time Elapsed 00:00:00.16
0 Kudos
JenniferJ
Moderator
616 Views

Is this Windows 7?
On Windows 7 normal permision can not create new files under folder.

So try this: extract the sample to a different folder like "c:\mytest\mkl_sample", and build from that directory. Let us know if it works.

But in any case the compiler should not give "internal error".

Jennifer

0 Kudos
forrest_zhukun
Beginner
616 Views
I copied my project to another folder who has full permission. But still cannot generate the preprocessed .i files. In the meantime, for comparison, I created a HelloWorld cpp project under the same solution folder. It can successfully generate the preprocessed .i files. Therefore I think the internal error occurs before the .i files got generated.
Is this assertion failure caused by any environment setting (environment variable, library dependency locale, etc)?
Thanks,
Kun
0 Kudos
Georg_Z_Intel
Employee
616 Views
Hello Kun,

just talked to our FE engineers. It is indeed possible that the preprocessor already fails.
Could you compile & execute the following example with Microsoft Visual Studio* compiler and let us know about the results?

[bash]/* setlocale example */ #include #include #include int main () { time_t rawtime; struct tm * timeinfo; char buffer [80]; struct lconv * lc; time ( &rawtime ); timeinfo = localtime ( &rawtime ); int twice=0; do { printf ("Locale is: %sn", setlocale(LC_ALL,NULL) ); strftime (buffer,80,"%c",timeinfo); printf ("Date is: %sn",buffer); lc = localeconv (); printf ("Currency symbol is: %sn-n",lc->currency_symbol); setlocale (LC_ALL,""); } while (!twice++); return 0; }[/bash][Example taken from here]

We suspect issues regarding your locals configuration.

Thank you & best regards,

Georg Zitzlsberger
0 Kudos
forrest_zhukun
Beginner
616 Views
Please find the output from VS compiler below:
Locale is: C
Date is: 08/14/12 10:13:43
Currency symbol is:
-
Locale is: Chinese (Traditional)_Hong Kong S.A.R..950
Date is: 14/8/2012 10:13:43
Currency symbol is: HK$
-
Thanks,
Kun
0 Kudos
Georg_Z_Intel
Employee
616 Views
Hello Kun,

we've been able to reproduce the problem. Engineering is currently looking into it. I'll keep you updated.

As a temporary workaround I'd propose the following:
In the language settings dialog (below), change "Language for non-Unicode programs" from "Chinese (Traditional, Hong Kong S.A.R.)" to "English (United States)". After a restart the compiler should work without assertion failure.



Best regards,

Georg Zitzlsberger
0 Kudos
forrest_zhukun
Beginner
616 Views
Hello Georg,
I can successfully compile the mkl example library after changing my locale to English (US). Thanks for your helps!
Hope later updates of XE composer can support Asian locale :-)
Best,
Kun
0 Kudos
Georg_Z_Intel
Employee
616 Views
Hello Kun,

yes, we're working on that (DPD200235478). I'll update this thread if I learn more.

Best regards,

Georg Zitzlsberger
0 Kudos
Judith_W_Intel
Employee
616 Views

Thanks for reporting this. It will be fixed in the next update.

This is a description of the problem/fix:

Microsoft compatibility: abort when using Hong Kong Unicode locale

Windows versions with NATIVE_MULTIBYTE_CHARS_SUPPORTED_WITH_UNICODE set to
TRUE would abort (in host_envir_early_init) if the system language for
Unicode conversion was set to "Chinese (Traditional, Hong Kong S.A.R.)".
This resulted from a defect in the Windows runtime where the value
returned by the GetLocaleInfo function was not valid as an input to the
_create_locale function. We have now modified the code that constructs the
system default locale to avoid this issue.

0 Kudos
Georg_Z_Intel
Employee
616 Views
Hello, just to be precise: This issue is fixed with Intel(R) Composer XE 2013 Update 1 and higher. Intel(R) Composer XE 2011 releases won't have this fix as there are no further updates. Best regards, Georg Zitzlsberger
0 Kudos
Reply