Home Dashboard Directory Help
Search

error LNK2019: unresolved external symbol __isa_available by 小猪猪猪


Status: 

Closed
 as Fixed Help for as Fixed


1
0
Sign in
to vote
Type: Bug
ID: 740847
Opened: 5/6/2012 7:45:10 PM
Access Restriction: Public
Moderator Decision: Sent to Engineering Team for consideration
0
Workaround(s)
view
0
User(s) can reproduce this bug

Description

i use vs2011 ultimate beta to build a graphic x64 kernel mode driver, there is a link error as title. i found that error code is a arithmetic operation like u32 = u32 + u32 * u32. if set optimization as /Od, i will be OK, this project is update from VS2010, and it is OK with VS2010 and vs2011 developer preview.
Details
Sign in to post a comment.
Posted by Microsoft on 5/8/2012 at 11:23 AM
My apologies, i sent my previous response too soon. I did some investigating and I found that issue you are seeing with regards to __isa_available is actually a known issue with VS11 Beta. I can confirm this issue has already been fixed (using the mechanism described in my previous post) and the fix will be available in future releases of VS11.

It is unfortunate that this issue was fixed too late to be included in the Beta. You may work around this issue by compiling with the vectorization optimization disabled. Lowering the optimization level and/or compiling for size (e.g. /O1 or /Od) will disable the vectorization optimization that is emitting a reference to this symbol.

If you are looking for a more targeted fix you can disable vectorization for that specific loop by prefixing the loop with #pragma loop(no_vector) or you may disable vectorization for the function that include the vectorized loop by reducing the optimization level using #pragma optimize (see MSDN for more information on this). Determining which loop was vectorized is not easy in the VS11 Beta as our reporting mechanism is not yet available. If you look at the disassembly you may be able to determine which loop is being vectorized and create a more targeted fix from there.

Thank you for downloading the VS11 previews and giving them a try and thank you again for taking the time to report your issues.

thanks,
ian Bearman
Principal Software Developer
VC++ Code Generation and Optimization
Posted by Microsoft on 5/8/2012 at 10:56 AM
Thanks for taking the time to report your issue. This symbol is supposed to be provided by the CRT in order to support ISA dependent optimizations. The compiler is supposed to be emitting a fallback symbol so that this linker error doesn't appear when linking against a version of the CRT that doesn't supply this symbol (i.e. down-level OS CRT).

In order to investigate what is going wrong i will need a way to reproduce it locally. Can you provide a sample project or a link-repro that reproduces the error? Instructions on generating a link-repro can be found here: http://support.microsoft.com/kb/974229.

thanks,
ian Bearman
Principal Software Developer
VC++ Code Generation and Optimization

Posted by MS-Moderator07 [Feedback Moderator] on 5/7/2012 at 7:37 PM
Thanks for your feedback.

We are rerouting this issue to the appropriate group within the Visual Studio Product Team for triage and resolution. These specialized experts will follow-up with your issue.

Posted by MS-Moderator01 on 5/6/2012 at 8:43 PM
Thank you for your feedback, we are currently reviewing the issue you have submitted. If this issue is urgent, please contact support directly(http://support.microsoft.com)
Sign in to post a workaround.