Using toolset Visual Studio 2012 - Windows XP (v110_xp) with Intel Compiler

Using toolset Visual Studio 2012 - Windows XP (v110_xp) with Intel Compiler

Hi there, with the latest update for Visual Studio 2012 Microsoft introduced a new toolset ( Visual Studio 2012 - Windows XP (v110_xp) ) that allows to create EXE files that are compatible with Windows XP.

Is it somehow possible to use the Intel Compiler 13.1.0 so it create EXE files for Windows XP with VS 2012 as well? We haven't found a way so far, so thats why we still use VS 2010 together with Intel Compiler 13.1.0 since we cannot drop the Windows XP support right now.

15 post / 0 nuovi
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione

What happens if you follow the instructions on the Microsoft site (set your VC paths to use the XP compatibility components)?  If there is a problem here, you might consider posting a reproducer showing the steps taken. 

Our colleagues may have been taken unaware by this addition of a partial backwards compatibiity option for VS2012.

As XP doesn't have AVX support, I suspect that AVX options won't work in this mode with either VC or Intel compilers.  Not to mention that it apparently doesn't support debugging.

>>...with the latest update for Visual Studio 2012 Microsoft introduced a new toolset ( Visual Studio 2012 - Windows XP (v110_xp) )
>>that allows to create EXE files that are compatible with Windows XP...

Hi, I have a question: What edition of Visual Studio 2012 do you have?

@TimP:
Sorry, I am not aware of the site you mentioned. All I am using is the VS 2012 GUI to set any options. I have not changed any VC paths.
When I have set my compiler to Intel C++, the Platform toolset in the Property Pages shows "Intel C++ Compiler XE 13.0". But the EXE that is created is not working on Windows XP. If I change the toolset to "Visual Studio 2012 - Windows XP (v110_xp)", the EXE is compatible with Windows XP, but its no longer the EXE created by the Intel compiler which is what I actually intend to do.
Its not a critical bug, since we do use VS 2010 in parallel to build our final release exe, it would be just more convenient if we could use just one version of Microsoft VS.
It would be nice if I could tell the Intel Compiler somehow that it should use the Windows XP compatibility toolset.

@ Sergey Kostrov:
I am using Microsoft Visual Studio Professional 2012 with the latest Update, its version 11.0.51106.01 Update 1.

>>...But the EXE that is created is not working on Windows XP...

Did you verify that all dependencies ( that is, all needed for your application DLLs are installed on WIndows XP ) are resolved. You could use MS Depends utility for that verification.

Microsoft sites e.g. http://blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx give instructions about setting up so as to link with the special XP compatible support, which disables some VS2012 features.  One would think the instructions might apply when using ifort as well.

>>...Microsoft sites e.g. blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx give instructions...

I remember a discussion on TBB forum and this is the 2nd case during last two months.

Microsoft informs in Targeting from the Command Line topic:
...
3.Specify the correct subsystem and subsystem version for the linker based on the type of application you are building. Applications targeting the x86 version of Windows XP must specify subsystem version 5.01, and applications targeting x64 must specify version 5.02.
...

Unfortunately, Microsoft didn't mention that a right define related to Windows version has to be set in Stdafx.h ( or in another header file ):

[ Stdafx.h ]


...

#ifndef _WIN32_WINNT		// Allow use of features specific to Windows XP or later

#define _WIN32_WINNT	0x0501	// Change this to the appropriate value to target other versions of Windows

#endif

...

Note: I'm not sure if this is relevant to your problem and please ignore the post if it is not...

It is a question for me why Microsoft overcomplicated it because in the past it was so easy to control OS targeting. If interested please also take a look at MSDN:

Platform SDK: Windows System Information
...
The OSVERSIONINFO data structure contains operating system version information...
...

For example,

These are Major Version codes for:
...
5 - Windows Server 2003, Windows XP, or Windows 2000
...

These are Minor Version codes for:
...
1 - Windows XP
2 - Windows Server 2003
...

In case of Windows XP you need to verify that _WIN32_WINNT is defined with 0x0501 value, like:

#define _WIN32_WINNT 0x0501

Thanks for all the suggestions.

The command line option could be used, but this step requires extra work which is only worth the effort when building the final release executable and not for a daily build/run procedure which is what we want to achieve. We would like to use the Intel Compiler and at the same time use the new "Visual Studio 2012 - Windows XP (v110_xp)" toolset.

It also hasn't to do with any missing DLLs or setting the right preprocessor options: The libs and the crt that come with the VS 2012 default toolset simply do NOT work with windows xp, e.g. the executable won't even start and one gets the error message:
.exe is not a valid Win32 application
The exe doesn't even come to the point where it would look for missing DLLs.

However I actually did find a possible solution on the Intel website right here:
http://software.intel.com/en-us/articles/linking-applications-using-visu...

Maybe these instructions can be changed to reflect the changes in VS 2012 Update 1, so actually no VS 2010 installation should be required?

Thanks for these technical details.

>>...the executable won't even start and one gets the error message: .exe is not a valid Win32 application

This is exactly what I had when on Windows Server 2003 I tried to execute an executable compiled with '#define _WIN32_WINNT 0x0501', that is for Windows XP. As soon as I changed a target OS to '#define _WIN32_WINNT 0x0502' it worked.

>>...Maybe these instructions can be changed to reflect the changes in VS 2012 Update 1, so actually no VS 2010 installation
>>should be required?

I think Yes.

Ritratto di Jennifer J. (Intel)

We do have a reqest to support vs2010 toolset within vs2012 IDE that should solve this issue. It is not implemented yet. But I'll associate this thread to that feature request. when the feature is done, I'll post the news here. 

Jennifer 

Jennifer,

thank you for this information.

Any updates on this?

I would also like to know if there's any progress on this issue?

Ritratto di Jennifer J. (Intel)

Sorry for the late about this.

This feature has been implemented in 15.0 initially. It has been ported back to 14.0 update 1 and later.

Jennifer

Accedere per lasciare un commento.