<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Wed, 25 Nov 2009 17:14:35 -0800 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://software.intel.com/en-us/articles/intel-parallel-composer-kb/type/compatibility/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles feed</title>
    <link>http://software.intel.com/en-us/articles/intel-parallel-composer-kb/compatibility/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Stack Frame Run-time Check incompatible with Microsoft* Visual C++ x64</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Reference Number : DPD200084262</b><br /><br /><br /><b>Version : 11.1.038 for Windows running on Intel(R) 64</b><br /><br /><br /><b>Operating System : Windows x64 edition</b><br /><br /><br /><b>Problem Description : <br /></b>The following program will get stack frame Run-Time Check(RTC) failure due to incompatible RTC stack frame check between Intel C++ Compiler for Windows and Microsoft* Visual C++ 2005 or 2008 for x64 run time library.<br /><br />--- Program ---<br />
<pre name="code" class="cpp">void sub();

int main(int argc, char* argv[])
{
  sub();
  return 0;
}

void sub()
{
  int i;
  __declspec(align(64)) float aiueo[256];

  for (i=0;i&lt;256;i++)
    aiueo[i] = 0;

  return;
}</pre>
<br />--- RTC error message ---<br /><br />
<blockquote>Run-Time Check Failure #2 - Stack around the variable 'result.38007' was corrupted.</blockquote>
<br />--- problem definition ---<br /><br />
<blockquote>If array "aiueo" is defined as align(32), align(64) or above, this failure will expose. If array "aiueo" is defined as align(8), align(16), this failure will be avoided.</blockquote>
<br />This is a stack frame Run-Time Check(RTC: /RTCs) incompatible issue between Intel C++ Compiler for Windows and Microsoft Visual C++ Compiler for x64 platform run time library. The program binary is actually gengerated correctly.<br /><br /><b>Resolution Status : <br /></b><br />This has been fixed in the 11.1.046 C++ Compiler for Windows.<br /><br /> <br /><br /><i>[DISCLAIMER: The information on this web site is intended for hardware system manufacturers and software developers. Intel does not warrant the accuracy, completeness or utility of any information on this site. Intel may make changes to the information or the site at any time without notice. Intel makes no commitment to update the information at this site. ALL INFORMATION PROVIDED ON THIS WEBSITE IS PROVIDED "as is" without any express, implied, or statutory warranty of any kind including but not limited to warranties of merchantability, non-infringement of intellectual property, or fitness for any particular purpose. Independent companies manufacture the third-party products that are mentioned on this site. Intel is not responsible for the quality or performance of third-party products and makes no representation or warranty regarding such products. The third-party supplier remains solely responsible for the design, manufacture, sale and functionality of its products. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others.]</i></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/stack-frame-run-time-check-incompatible-with-microsoft-visual-c</link>
      <pubDate>Sun, 02 Aug 2009 20:03:08 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/stack-frame-run-time-check-incompatible-with-microsoft-visual-c#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/stack-frame-run-time-check-incompatible-with-microsoft-visual-c</guid>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>ISO/IEC Standards language conformance for Intel C++ compiler</title>
      <description><![CDATA[ The Intel C++ compiler option /Qstd=val or –std=val could be used to get the specific version of ISO/IEC standards language conformance for the compiler. <br /><br />The possible values are for “val” are given below:<br /><br />c89 - Conforms to the ISO/IEC 9899:1990 International Standard.<br /><br />c99 - Conforms to The ISO/IEC 9899:1999 International Standard.<br /><br />gnu89 - Conforms to ISO C90 plus GNU* extensions.<br /><br />gnu++98 - Conforms to the 1998 ISO C++ standard plus GNU extensions.<br /><br />c++0x - Enable support for the following C++0x features. Please refer to Intel C++ compiler documentation for details.<br /><br />The default for Intel C++ compiler 11.0 are as given below:<br /><br />-std=gnu89 - default for C, Conforms to ISO C90 plus GNU extensions.<br />-std=gnu++98 - default for C++, Conforms to the 1998 ISO C++ standard plus GNU* extensions.<br />/Qstd=c89 - Conforms to the ISO/IEC 9899:1990 International Standard.<br /><br /> ]]></description>
      <link>http://software.intel.com/en-us/articles/iso-iec-standards-language-conformance-for-intel-c-compiler</link>
      <pubDate>Thu, 04 Jun 2009 02:01:38 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/iso-iec-standards-language-conformance-for-intel-c-compiler#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/iso-iec-standards-language-conformance-for-intel-c-compiler</guid>
      <category>Intel C++ Compiler and Performance Library for QNX* Neutrino* RTOS Knowledge Base</category>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Can I export a makefile from Visual Studio?</title>
      <description><![CDATA[ This capability was removed from Visual Studio starting with Visual Studio .NET 2003*.<br /><br />Discussion on the msdn.com and microsoft.com web sites indicate that this feature<br />will not be implemented in future versions of Visual Studio.<br /><br />You can create a .bat file or makefile based on the buildlog.html. A buildlog.html file is created after building a project. You can find the file under the $(output) directory. <br /> ]]></description>
      <link>http://software.intel.com/en-us/articles/can-i-export-a-makefile-from-visual-studio</link>
      <pubDate>Thu, 21 May 2009 17:39:02 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/can-i-export-a-makefile-from-visual-studio#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/can-i-export-a-makefile-from-visual-studio</guid>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>OpenMP* Loops with Function Calls for Bounds May Not Parallelize</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><strong>Reference Number :</strong>  DPD200110877<br /><br /><br /><strong>Version :</strong> 11.0, 11.1 or Intel® Parallel Composer<br /><br /><br /><strong>Operating System : </strong>Windows*, Linux*, Mac OS X*<br /><br /><br /><strong>Problem Description : </strong>The OpenMP* 3.0 standard now supports using STL iterators for OpenMP loop bounds.  However, the Intel® C++ Compiler does not parallelize code like the following:<br /><br />
<pre name="code" class="cpp">#include &lt;vector&gt;

void iterator_example()
{
  std::vector&lt;double&gt; vec(23);
  std::vector&lt;double&gt;::iterator it;

#pragma omp parallel for default(none) shared(vec) 
  for (it = vec.begin(); it &lt; vec.end(); it++)
  {
    *it = 1.0;// do work with *it //
  }
}</pre>
<br /><br />The compiler will not give an indication (as it should) that the loop was parallelized for OpenMP*.  If you examine the code, you will see that the compiler generates a serial version of the loop.  This is because of an issue with the compiler using function calls on loop bounds that are inlined causing the compiler to not recognize the loop as being a validly formed loop for parallelization.<br /><br /><br /><strong>Resolution Status : </strong>This will be resolved in an upcoming compiler update.<br /><br /><br /><br /><em>[DISCLAIMER: The information on this web site is intended for hardware system manufacturers and software developers. Intel does not warrant the accuracy, completeness or utility of any information on this site. Intel may make changes to the information or the site at any time without notice. Intel makes no commitment to update the information at this site. ALL INFORMATION PROVIDED ON THIS WEBSITE IS PROVIDED "as is" without any express, implied, or statutory warranty of any kind including but not limited to warranties of merchantability, non-infringement of intellectual property, or fitness for any particular purpose. Independent companies manufacture the third-party products that are mentioned on this site. Intel is not responsible for the quality or performance of third-party products and makes no representation or warranty regarding such products. The third-party supplier remains solely responsible for the design, manufacture, sale and functionality of its products. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others.]</em></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/openmp-loops-with-function-calls-for-bounds-may-not-parallelize</link>
      <pubDate>Thu, 12 Mar 2009 17:06:43 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/openmp-loops-with-function-calls-for-bounds-may-not-parallelize#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/openmp-loops-with-function-calls-for-bounds-may-not-parallelize</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Old Style C Function Argument Declarations are Supported</title>
      <description><![CDATA[ <p>The Intel® C++ Compiler 11.x does support old-style C function declarations like the one in the following code snippet.</p>
<pre name="code" class="cpp">void foo(a,b,c)
   int a;
   float b;
   float c[10];
{
   int i = 0;
   for(i=0;i&lt;10;i++)
      c[i]=b*a;
}</pre>
<br />Please note that the C99 standard disallows this style of declaring functions, so legacy code using this syntax will need to be updated to be compliant with that standard.  <br />The Intel® C++ Compiler 11.x will still accept this syntax when using the /Qstd:c99 (on Windows*) or -std=c99 (on Linux* or Mac OS X*) options. ]]></description>
      <link>http://software.intel.com/en-us/articles/old-style-c-function-argument-declarations-are-supported</link>
      <pubDate>Wed, 11 Mar 2009 10:58:21 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/old-style-c-function-argument-declarations-are-supported#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/old-style-c-function-argument-declarations-are-supported</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Exporting using &amp;#34;__declspec(dllexport)&amp;#34; on Windows*</title>
      <description><![CDATA[ <p>On Windows* you can export a function using following methods with Microsoft* Visual C++*:</p>
<ul>
<li>a module-definition (.def) file</li>
<li>__declspec(dllexport)</li>
</ul>
<p>The Intel® C++ Compiler for Windows supports both methods. <br /><br />But please note on how the .def is supported. <br />The module-definition (.def) file is ONLY used at link time for both Intel C++ compiler and Visual C++. When /Qipo (/GL) is used, the Intel C++ compiler will do more aggressive inlining and optimization. Some functions may be completely inlined so the function body will be removed at compile time if there is no "__declspec(dllexport)" in front of the function. <br />In such cases if the function name is in the .def file, you will get a link error "xxx.def : error LNK2001: Unresolved external symbol "YYY"". <br /><br />This is not a bug in the Intel C++ compiler for Windows.</p>
<p>The resolution for this:</p>
<ul>
<li>add the "__declspec(dllexport)" in front of the function declaration so the Intel C++ compiler will know at compile time that this function will be used for exporting.</li>
</ul> ]]></description>
      <link>http://software.intel.com/en-us/articles/exporting-using-_declspecdllexport-on-windows</link>
      <pubDate>Fri, 27 Feb 2009 14:47:54 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/exporting-using-_declspecdllexport-on-windows#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/exporting-using-_declspecdllexport-on-windows</guid>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>__SSE4_1__ and __SSE4_2__ Macros Not Defined</title>
      <description><![CDATA[ <br />
<p><strong>Problem :</strong>  gcc and the Intel® C++ Compiler* provide macros that are defined when the -msse (gcc) or -x (Intel) options are used.  The Intel® C++ Compilers 11.0.069 for Linux*,  11.0.054 for Mac OS* and 11.0.061 for Windows* support -xSSE4.1 and -xSSE4.2 options, but do not provide the corresponding __SSE4_1__ and __SSE4_2__ macro definitions.<br /><br /><br /><strong>Environment : </strong>Windows*, Linux* or Mac OS* X; C++; IA-32 or Intel® 64 platforms<br /><br /><br /><strong>Root Cause : </strong>Already stated above<br /><br /><br /><strong>Resolution : <br /></strong>These macros are now defined in</p>
<ul>
<li>the Intel® C++ Compilers for Linux* 11.0.074 and later</li>
<li>the Intel® C++ Compilers for Mac OS* 11.0.056 and later</li>
<li>the Intel® C++ Compilers for Windows* 11.0.066 and later</li>
<li>the Intel Parallel Composer</li>
</ul> ]]></description>
      <link>http://software.intel.com/en-us/articles/sse4_1_-and-_sse4_2_-macros-not-defined</link>
      <pubDate>Fri, 20 Feb 2009 16:02:20 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/sse4_1_-and-_sse4_2_-macros-not-defined#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/sse4_1_-and-_sse4_2_-macros-not-defined</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Intel Architecture Platform Terminology for Development Tools</title>
      <description><![CDATA[ <p>Intel® compilers and libraries support three platforms: general combinations of processor architecture and operating system type. This section explains the terms that Intel uses to describe the platforms in its documentation, installation procedures and support site.  <strong>Note:</strong> not all Intel software development tools support all three platforms.</p>
<p><strong>IA-32 Architecture</strong> refers to systems based on 32-bit processors generally compatible with the Intel Pentium® II processor, (for example, Intel® Pentium® 4 processor or Intel® Xeon® processor), or processors from other manufacturers supporting the same instruction set, running a 32-bit operating system.</p>
<p><strong>Intel® 64 Architecture</strong> (formerly Intel® EM64T)refers to systems based on IA-32 architecture processors which have 64-bit architectural extensions, (for example, Intel® Core™2 processor family), running a 64-bit operating system such as Microsoft Windows Vista* x64 or a Linux* "x86_64" variant. If the system is running a 32-bit  operating system, then IA-32 architecture applies instead. Systems based on AMD* processors running a 64-bit operating system are also supported by Intel compilers for Intel® 64 architecture applications.</p>
<p>64-bit computing on Intel architecture requires a computer system with a processor, chipset, BIOS, operating system, device drivers and applications enabled for Intel® 64 architecture. Performance will vary depending on your hardware and software configurations. Consult with your system vendor for more information.</p>
<p><strong>IA-64 Architecture</strong> refers to systems based on the Intel® Itanium® processor running a 64-bit operating system.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-architecture-platform-terminology</link>
      <pubDate>Thu, 12 Feb 2009 07:48:07 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-architecture-platform-terminology#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-architecture-platform-terminology</guid>
      <category>Software Products General</category>
      <category>Intel® Parallel Advisor</category>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Software Development Tool Suites for Intel® Atom™ Processor Knowledge Base</category>
      <category>Intel® Cluster Toolkit for Linux* Knowledge Base</category>
      <category>Intel® Cluster Toolkit for Windows* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Intel® Parallel Amplifier Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Parallel Inspector Knowledge Base</category>
      <category>Intel® Thread Checker for Windows* Knowledge Base</category>
      <category>Intel® Thread Profiler for Windows* Knowledge Base</category>
      <category>Intel® Threading Building Blocks Knowledge Base</category>
      <category>Intel® Trace Analyzer and Collector for Linux* Knowledge Base</category>
      <category>Intel® Trace Analyzer and Collector for Windows* Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>How to use Intel(R) Compiler OpenMP* Compatibility Libraries on Windows*</title>
      <description><![CDATA[ <p><strong>The new OpenMP* Compatibility library<br /></strong>The Intel(R) Parallel Composer beta, and the Intel(R) C++/Fortran Compiler 10.1 or 11.0 include the following new OpenMP* compatibility libraries:</p>
<ul>
<dl>
<li><strong>libiomp5md.dll, libiomp5md.lib</strong>: dynamic performance library; options "/MD /Qopenmp-link:dynamic" </li>
<li><strong>libiomp5mt.lib</strong>: static performance library; options "/MT /Qopenmp-link:static" </li>
<li><strong>libiompprof5md.dll, libiompprof5md.lib</strong>: dynamic profile library; options "/MD /Qopenmp-profile" </li>
<li><strong>libiompprof5mt.lib</strong>: static profile library; options "/MT /Qopenmp-profile"</li>
<li><strong>libiompstubs5md.dll, libiompstubs5md.lib</strong>: dynamic stub library; options "/MD /Qopenmp-stubs"</li>
<li><strong>libiompstubs5mt.lib</strong>: static stub library; options "/MT /Qopenmp-stubs"</li>
</dl>
</ul>
<p>Visual C++ 2005* provides only dynamic OpenMP libraries: vcomp.lib, vcomp.dll <br />Visual C++ 2008* provides only dynamic OpenMP libraries: vcomp90.lib, vcomp90.dll <br /><br />In one application there should be only ONE OpenMP run time library. <br /><br />The Intel OpenMP compatibility libraries can be used with Microsoft* Visual C++ 2005 and 2008*. Followings are some examples on how to use:</p>
<ul>
<li>Using the Intel Compiler OpenMP compatibility libraries with Visual C++ 2008: </li>
</ul>
<p style="padding-left: 30px;">&gt;&gt; cl /c /MD /D_OPENMP_NOFORCE_MANIFEST /openmp ompSrc1.cpp <br />&gt;&gt; link /nodefaultlib:vcomp90 libiomp5md.lib ompSrc1.obj</p>
<ul>
<li>Using the Intel Compiler OpenMP compatibility libraries with both Visual C++ 2008 and Intel C++ Compiler: </li>
</ul>
<p style="PADDING-LEFT: 30px">&gt;&gt; cl /c /MD /D_OPENMP_NOFORCE_MANIFEST /openmp ompSrc1.cpp <br />&gt;&gt; icl /c /MD /Qopenmp ompSrc2.cpp <br />&gt;&gt; xilink /nodefaultlib:vcomp90 libiomp5md.lib ompSrc1.obj ompSrc2.obj</p>
<p><br /><strong>The legacy OpenMP runtime library <br /></strong>The legacy OpenMP runtime library is deprecated in 11.x release. In case you're using a 3rd party library that uses the legacy OpenMP runtime, you can use the following option to link with the legacy libraries:</p>
<p style="PADDING-LEFT: 30px">/Qopenmp-lib:legacy (note: deprecated)</p>
<p>The primary files are below: for full list of files, please see the Intel C++ or Fortran Compiler Documentation.</p>
<ul>
<dl>
<li>libguide40.dll, libguide40.lib: dynamic library</li>
<li>libguide.lib: static library</li>
</dl>
</ul> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-to-use-intelr-compiler-openmp-compatibility-libraries-on-windows</link>
      <pubDate>Wed, 11 Feb 2009 11:51:37 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-to-use-intelr-compiler-openmp-compatibility-libraries-on-windows#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-to-use-intelr-compiler-openmp-compatibility-libraries-on-windows</guid>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Improved compatibility with Microsoft* Visual C++* in diagnostic messages</title>
      <description><![CDATA[ <p>The Intel(R) C++ Compiler emits more verbose diagnostic message than Visual C++ and may emit more warnings and/or errors as well.</p>
<p>But the Intel(R) C++ Compiler in the Intel(R) Parallel Composer beta has significantly reduced the number of diagnostic messages emitted by default; and it tries to match the diagnostic number emitted by Visual C++ as much as possible. So when you disable a warning in the code or by option, the warning should be disable when you use Intel C++ compiler.</p>
<p>We have an on-going project to document all the diagnostic messages emitted by the Intel C++ Compiler. There will be a Knowledge Base article for each diagnostic that will eventually contain detailed information about the diagnostic as well as examples. Right now all of the diagnostic articles are already published except only a few. If you'd like to see detailed information for a particular diagnostic, please send us a request on the diagnostic article you're interested.</p>
<p>To find all the diagnostic articles, visit http://software.intel.com/en-us/articles/intel-parallel-composer/all/1 and click "Error Message".</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/improved-compatibility-with-microsoft-visual-c-in-diagnostic-messages</link>
      <pubDate>Mon, 24 Nov 2008 12:35:13 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/improved-compatibility-with-microsoft-visual-c-in-diagnostic-messages#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/improved-compatibility-with-microsoft-visual-c-in-diagnostic-messages</guid>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
  </channel></rss>