<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Tue, 24 Nov 2009 23:15:30 -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-fortran-compiler-for-linux-kb/type/software-defects/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles feed</title>
    <link>http://software.intel.com/en-us/articles/intel-fortran-compiler-for-linux-kb/software-defects/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>BIND(C) does not work for COMPLEX </title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><strong>Reference Number :</strong> dpd200049725<br /><br /><br /><strong>Version :</strong> 10.0,10.1,11.0,11.1<br /><br /><strong>Product : </strong>Intel Fortran Compiler, Professional Edition<br /><br /><br /><strong>Operating System : </strong>Linux<br /><br /><br /><b>Problem Description : </b><br />The Intel Fortran compiler uses an additional, hidden argument to return the result of a function of type COMPLEX. Adding the BIND(C) attribute to the function declaration should cause the result to be returned by value, in accordance with the x64 ABI, so that the function becomes interoperable with the Intel and GNU C compilers. Currently, it does not.<br /><br /><strong>Resolution Status :  </strong>This may be fixed in a future version of the Intel compiler<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/BIND_C-does-not-work-for-complex</link>
      <pubDate>Fri, 20 Nov 2009 13:00:50 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/BIND_C-does-not-work-for-complex#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/BIND_C-does-not-work-for-complex</guid>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
    </item>
    <item>
      <title>Intel Fortran Compiler 11.1 Release Notes</title>
      <description><![CDATA[ This page provides the current Installation Guide and Release Notes for the Intel® Fortran Compiler products. All files are in PDF format - <a target="_blank" href="http://www.adobe.com/go/EN_US-H-GET-READER">Adobe Reader* </a>(or compatible) required.  Japanese translations are provided at even-numbered updates.<br /><br />11.1 Update 3, October 2009<br /><br />Intel® Fortran Compiler Professional Edition for Linux*<br /> 
<ul>
<li><a href="http://software.intel.com/file/23254">English</a></li>
</ul>
Intel® Fortran Compiler Professional Edition for Mac OS X*<br /> 
<ul>
<li><a href="http://software.intel.com/file/23255">English</a></li>
</ul>
Intel® Visual Fortran Compiler Professional Edition for Windows*<br /> 
<ul>
<li><a href="http://software.intel.com/file/23257">English</a></li>
</ul>
<br />11.1 Update 2 (Revised), October 2009<br /><br />Intel® Visual Fortran Compiler Professional Edition for Windows*<br /> 
<ul>
<li><a href="http://software.intel.com/file/22885">English</a> </li>
</ul>
<br />11.1 Update 2, September 2009<br /><br />Intel® Fortran Compiler Professional Edition for Linux*<br /> 
<ul>
<li><a href="http://software.intel.com/file/22125">English</a></li>
<li><a href="http://software.intel.com/file/22126">Japanese</a></li>
</ul>
Intel® Fortran Compiler Professional Edition for Mac OS X*<br /> 
<ul>
<li><a href="http://software.intel.com/file/22128">English</a></li>
</ul>
Intel® Visual Fortran Compiler Professional Edition for Windows*<br /> 
<ul>
<li><a href="http://software.intel.com/file/22131">English</a></li>
<li><a href="http://software.intel.com/file/22132">Japanese</a></li>
</ul>
For questions or technical support, visit <a target="_blank" href="http://software.intel.com/sites/support/">Intel® Software Developer Support</a> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-fortran-compiler-111-release-notes</link>
      <pubDate>Thu, 22 Oct 2009 12:49:09 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-fortran-compiler-111-release-notes#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-fortran-compiler-111-release-notes</guid>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Incorrect padding added for SEQUENCE or BIND(C) type with UNION</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Reference Number : </b>DPD200138527<br /><br /><br /><b>Version : </b>11.1<br /><br /><br /><b>Product : </b>Intel® Fortran Compiler<br /><br /><br /><b>Operating System : </b>All<br /><br />
<p><b>Problem Description : </b>If a derived type is declared containing a UNION, and the type is a SEQUENCE type or is interoperable (BIND(C)), and the UNION contains a misaligned field, the compiler incorrectly adds padding bytes before each misaligned field.</p>
<p>UNION is an extension to the Fortran standard, supported by Intel Fortran, that allows the declaration of overlapping sets of derived type components. A SEQUENCE type is a derived type containing the SEQUENCE keyword. The Fortran standard specifies that components of a SEQUENCE type may not be rearranged by the compiler; in Intel Fortran, SEQUENCE types do not, by default, have alignment padding added before misaligned components. (This can be overridden with the "align sequence" option.) Lastly, an interoperable derived type, declared with the BIND(C) specifier, is required to have its components laid out exactly as the companion C processor would do it - this may involve padding if the C processor would pad by default.</p>
<p>Consider the following declaration:</p>
<pre name="code" class="plain">type :: mytype<br />  sequence<br />  integer(2) f1<br />  union<br />   map<br />     integer(2) xa1<br />     integer(4) xa2<br />     integer(2) xa3<br />     integer(4) xa4<br />   end map<br />   map<br />     integer(4) xb1<br />     integer(2) xb2<br />     integer(4) xb3<br />     integer(2) xb4<br />   end map<br />  end union<br />end type mytype</pre>
<p>Because the first component, f1, is two bytes long, the UNION starts at offset 2. (Remember that SEQUENCE disables padding in Intel Fortran.) This would make components xa1 and xb1 begin at offset 2, causing xb1 to be misaligned, since 2 is not an integral multiple of its size, 4. Components xa2 and xa3 are naturally aligned and should begin at offsets 4 and 8.  xb2 is misaligned at offset 6.</p>
<p>Because of a defect, the compiler incorrectly inserts padding before each misaligned variable inside the UNION.  The following table shows the offsets for each component, with and without the defect:</p>
<table border="0" cellspacing="5">
<tbody>
<tr>
<th>Component</th><th>With Defect</th><th>Correct</th>
</tr>
<tr>
<td>f1</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>xa1</td>
<td>4</td>
<td>2</td>
</tr>
<tr>
<td>xa2</td>
<td>8</td>
<td>4</td>
</tr>
<tr>
<td>xa3</td>
<td>12</td>
<td>8</td>
</tr>
<tr>
<td>xa4</td>
<td>16</td>
<td>10</td>
</tr>
<tr>
<td>xb1</td>
<td>4</td>
<td>2</td>
</tr>
<tr>
<td>xb2</td>
<td>8</td>
<td>6</td>
</tr>
<tr>
<td>xb3</td>
<td>12</td>
<td>8</td>
</tr>
<tr>
<td>xb4</td>
<td>16</td>
<td>12</td>
</tr>
<tr>
<td>f2</td>
<td>20</td>
<td>14</td>
</tr>
</tbody>
</table>
<p>Note that f2 is (correctly) misaligned in both cases, and that xb4 received an additional two bytes of padding - the inappropriate padding happens only within the UNION.</p>
<p><b>Resolution Status : </b>This error will be corrected in a future compiler update.  As a workaround, enclose the TYPE declaration in the following directives:</p>
<p> </p>
<pre name="code" class="plain">!DEC$ OPTIONS /NOALIGN /NOWARN<br />... TYPE goes here<br />!DEC$ END OPTIONS</pre>
You can also compile with the "noalign" compiler option.
<p> </p>
<p><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></p>
</div> ]]></description>
      <link>http://software.intel.com/en-us/articles/incorrect-padding-added-sequence-bindc-type-with-union</link>
      <pubDate>Fri, 16 Oct 2009 12:19:30 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/incorrect-padding-added-sequence-bindc-type-with-union#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/incorrect-padding-added-sequence-bindc-type-with-union</guid>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Putting -lm Before User Objects/Libraries on Link Line Can Impact Performance</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><strong>Reference Number : </strong>DPD200121218<br /><br /><br /><strong>Version :</strong> 11.0<br /><br /><br /><strong>Operating System :</strong> Linux*<br /><br /><br /><strong>Problem Description : </strong>Starting with 11.0.081, a fix was made to the compiler driver to link the Intel Math Library libimf statically by default (the intended and documented behavior) instead of dynamically.  If -lm is used with the compiler driver (icc/icpc/ifort), the driver automatically inserts libimf before libm in the link line.  Linking in libimf.a when this is done causes a problem if -lm precedes any user-created objects or libraries.  For example:<br /><br />
<pre name="code" class="plain:nogutter:nocontrols">icc -lm user1.o user2.o -luser3</pre>
Gets converted by the driver to:<br /><br />
<pre name="code" class="plain:nogutter:nocontrols">ld ... -Bstatic -limf -Bdynamic -lm ... user1.o user2.o -luser3 ...</pre>
On Linux, static libraries must come after the object/library files that use them in the link line in order for the symbols to resolve.  Since libimf.a comes before the objects/libraries that use standard math functions, these math functions won't resolve to the static Intel math library.  However, the dynamic libm doesn't have an order dependency because it is a dynamic library, so the math functions will resolve to the GNU math library.  This can have a significant performance impact.<br /><br /><br /><strong>Resolution Status : </strong>Starting with 11.1.056, the compiler now emits a warning if -lm precedes other user objects or libraries on the linker command line.  If you run into a performance regression between compilers prior to 11.0.081 and compilers from 11.0.081 on, please verify that you don't have -lm being used prior to your objects/libraries in your link lines if you use icc/icpc/ifort to link. Using the above example, make the following change:<br /><br />
<pre name="code" class="plain:nogutter:nocontrols">icc user1.o user2.o -luser3 -lm</pre>
<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/putting-lm-before-user-objectslibraries-on-link-line-can-impact-performance</link>
      <pubDate>Wed, 14 Oct 2009 11:45:33 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/putting-lm-before-user-objectslibraries-on-link-line-can-impact-performance#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/putting-lm-before-user-objectslibraries-on-link-line-can-impact-performance</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
    </item>
    <item>
      <title>Run-Time Error 408 when optional character argument omitted</title>
      <description><![CDATA[ <div id="art_pre_template"><b>Reference Number : </b>DPD200140203<br /><br /><br /><b>Version : </b>11.1<br /><br /><br /><b>Operating System : </b>All<br /><br /><br /><b>Problem Description : </b>The following program has a routine "wrapper" that accepts an optional character argument "s" where "s" is declared with a fixed length.  It then passes "s" to a second routine where the argument is also declared as optional.  The main program calls "wrapper" with the argument omitted.<br /><br />
<pre name="code" class="plain">program omitted<br /><br />call wrapper<br /><br />contains<br /><br />subroutine wrapper (s)<br />character(10), optional :: s<br /><br />call doit (s)<br />end subroutine wrapper<br /><br />subroutine doit (s)<br />character(10), optional :: s<br /><br />if (present(s)) then<br />  print *, s<br />else<br />  print *, 'S not passed'<br />end if<br />end subroutine doit<br />end program omitted</pre>
<br />When the program is compiled with bounds checking enabled (/check:bounds on Windows*, -check bounds on Linux* and Mac OS*), the program gets an inappropriate run-time error similar to the following:<br /><br />forrtl: severe (408): fort: (18): Dummy character variable 'S' has length 10 which is greater then actual variable length 0<br /><br /><br /><b>Resolution Status : </b>This issue will be resolved in a future update to the Intel Fortran compiler.  A workaround is to declare the dummy argument in the "wrapper" routine as CHARACTER(*) rather than with a fixed length.  This is a preferred coding style as using a fixed length can lead to unexpected run-time behavior if the actual argument is too small.<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/run-time-error-408-when-optional-character-argument-omitted</link>
      <pubDate>Mon, 05 Oct 2009 13:24:37 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/run-time-error-408-when-optional-character-argument-omitted#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/run-time-error-408-when-optional-character-argument-omitted</guid>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Thread affinity compiler switches have no effect</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Reference Number : DPD200119846 </b><br /><br /><br /><b>Version : <br />Intel® C++ Compiler for Linux*and Windows*, 11.1 initial releases and update 1<br />Intel® Fortran Compiler for Linux*and Windows*, 11.1 initial releases and update 1</b><br /><br /><br /><b>Operating System : Microsoft Windows XP*, Microsoft Windows Vista*, Microsoft Windows Server 2003*; Red Hat Enterprise Linux* 3, 4, 5, SUSE LINUX Enterprise Server* 9, 10, 11, other supported Linux distributions (see Release Notes)</b><br /><br /><br /><b>Problem Description :  Thread affinity compiler switches /Qpar-affinity (Windows*) or -par-affinity (Linux*) are used to specify compiled-in thread affinity of the executable.  However, when the executable is run, no effect is observed.  In other words, the default runtime thread affinity is used, or if KMP_AFFINITY has been set, the runtime thread affinity matches its setting (the switches are supposed to take precedence).</b><br /><br /><br /><b>Resolution Status : The issue has been resolved in the 11.1 update 2 release.  The compiler builds are:<br /></b>Linux* C++: l_cproc_p_11.1.056<br />Linux* Fortran: l_cprof_p_11.1.056<br />Windows* C++: w_cproc_p_11.1.046<br />Windows* Fortran: w_cprof_p_11.1.046<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/thread-affinity-compiler-switches-have-no-effect</link>
      <pubDate>Thu, 24 Sep 2009 10:39:53 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/thread-affinity-compiler-switches-have-no-effect#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/thread-affinity-compiler-switches-have-no-effect</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Intel® compiler error #10236 issued when using -soname corrupts resulting shared library on Linux</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><span class="sectionHeadingText">Reference Number :</span><strong>  </strong>DPD200137886<br /><br /><br /><span class="sectionHeadingText">Version :</span>  11.1<br /><br /><br /><strong class="sectionHeadingText">Operating System :</strong>  Linux* / IA-32, Intel® 64, IA-64<br /><br /><br /><b><span class="sectionHeading">Problem Description :</span> </b><br /><br />Improvements in the Intel C++ and Fortran 11.1 release compiler drivers cause each (ifort, icpc, icc) to issue error #10236 for any detected missing files; however, each driver fails to exit accordingly after issuing this "fatal" class of diagnostic.<br /><br />Here is an example of the diagnostic issued:<br /><br />            icpc: error #10236: File not found: 'libsubCPP.so'<br /><br /><br />This resulting behavior causes the compiler driver to incorrectly engage the link phase, which causes residual corruption of the Linux shared library (or DSO) when using the Linux linker (ld) <strong>-soname</strong> option with the compiler driver to create a shared library.<br /><br />When using the Intel compiler to create a shared library, linker options must be passed using the <strong>-Wl</strong> or <strong>-Xlinker</strong> option. The latter requires special handling of any linker options that themselves take arguments. <br /><br />In the case of supplying the linker <strong>-soname</strong> option, users must ensure the correct syntax is used with <strong>-Xlinker</strong>.<br /><br />The incorrect syntax is: <strong>-Xlinker -soname <em>&lt;name&gt;</em></strong><br /><br />The correct syntax is one of two forms:<br /><br /><strong>-Xlinker -soname=<em>&lt;name&gt;</em></strong><br /><br />-OR-<br /><br /><strong>-Xlinker -soname -Xlinker <em>&lt;name&gt;</em></strong><br /><br />Where <em><strong>&lt;name&gt;</strong></em> represents the name argument to <strong>-soname</strong> and name assigned to the shared library’s internal <strong>DT_SONAME</strong>field.<br /><br />When the incorrect syntax indicated above is used, the compiler issues the compilation error #10236, removes the "<em>&lt;name&gt;</em>" argument, and then incorrectly engages the link phase to create the shared library, but it provides only the <strong>-soname</strong> option with no <em><strong>&lt;name&gt;</strong></em> argument. It is unknown to the user the resulting shared library contains an invalid embedded <strong>DT_SONAME</strong>. This invalid <strong>DT_SONAME</strong> can cause subsequent confusing linking issues such as unresolved externals when using the shared library, and/or confusing output from the <strong>ldd</strong> utility.<br /><br />The details below show how each compiler driver (icc, icpc, ifort) is susceptible to this defect and the incorrect <strong>DT_SONAME</strong> each can embed into a shared library. What is embedded in the <strong>DT_SONAME</strong> field is influenced by the order options appear on the compiler command line. Additionally, the details show how each compiler creates a valid shared library when the correct form of the <strong>-soname</strong> option is used with <strong>-Xlinker</strong>.<br /><br /> 
<blockquote><strong><span style="text-decoration: underline;">Invalid command line:</span>icpc issues error and embeds invalid SONAME</strong><br /><br />$ icpc -V -shared -Xlinker -relax -Xlinker --whole-archive libsubCPP.a -Xlinker --no-whole-archive -o ./libsubCPP.so -Xlinker -soname libsubCPP.so<br />Intel(R) C++ Intel(R) 64 Compiler Professional for applications running on Intel(R) 64, Version 11.1 Build 20090630 Package ID: l_cproc_p_11.1.046<br />Copyright (C) 1985-2009 Intel Corporation. All rights reserved.<br />icpc: error #10236: File not found: 'libsubCPP.so'<br /><br />GNU ld version 2.17.50.0.6-5.el5 20061020<br /><br />$ objdump -x libsubCPP.so | grep SONAME<br />SONAME -L/opt/intel/compiler/cpro/Compiler/11.1/046/lib/intel64<br /><br /><br /><strong><span style="text-decoration: underline;">Valid command line:</span>icpc issues no error and embeds valid SONAME</strong><br /><br />$ icpc -V -shared -Xlinker -relax -Xlinker --whole-archive libsubCPP.a -Xlinker --no-whole-archive -o ./libsubCPP.so -Xlinker -soname=libsubCPP.so<br />Intel(R) C++ Intel(R) 64 Compiler Professional for applications running on Intel(R) 64, Version 11.1 Build 20090630 Package ID: l_cproc_p_11.1.046<br />Copyright (C) 1985-2009 Intel Corporation. All rights reserved.<br /><br />GNU ld version 2.17.50.0.6-5.el5 20061020<br /><br />$ objdump -x libsubCPP.so | grep SONAME<br />SONAME libsubCPP.so<br /><br /><br /><strong><span style="text-decoration: underline;">Invalid command line:</span>icc issues error and embeds invalid SONAME<br /></strong><br />$ icc -V -shared -Xlinker -relax -Xlinker --whole-archive libsubC.a -Xlinker --no-whole-archive -o ./libsubC.so -Xlinker -soname libsubC.so<br />Intel(R) C Intel(R) 64 Compiler Professional for applications running on Intel(R) 64, Version 11.1 Build 20090630 Package ID: l_cproc_p_11.1.046<br />Copyright (C) 1985-2009 Intel Corporation. All rights reserved.<br />icc: error #10236: File not found: 'libsubC.so'<br /><br />GNU ld version 2.17.50.0.6-5.el5 20061020<br /><br />$ objdump -x libsubC.so | grep SONAME<br />SONAME -L/opt/intel/compiler/cpro/Compiler/11.1/046/lib/intel64<br /><br /><br /><strong><span style="text-decoration: underline;">Valid command line:</span>icc issues no error and embeds valid SONAME<br /></strong><br />$ icc -V -shared -Xlinker -relax -Xlinker --whole-archive libsubC.a -Xlinker --no-whole-archive -o ./libsubC.so -Xlinker -soname=libsubC.so<br />Intel(R) C Intel(R) 64 Compiler Professional for applications running on Intel(R) 64, Version 11.1 Build 20090630 Package ID: l_cproc_p_11.1.046<br />Copyright (C) 1985-2009 Intel Corporation. All rights reserved.<br /><br />GNU ld version 2.17.50.0.6-5.el5 20061020<br /><br />$ objdump -x libsubC.so | grep SONAME<br />SONAME libsubC.so<br /><br /><br /><strong><span style="text-decoration: underline;">Invalid command line:</span>ifort issues error and embeds invalid SONAME<br /></strong><br />$ ifort -V -shared -Xlinker -relax -Xlinker --whole-archive libsubF.a -Xlinker --no-whole-archive -o ./libsubF.so -Xlinker -soname libsubF.so<br />Intel(R) Fortran Intel(R) 64 Compiler Professional for applications running on Intel(R) 64, Version 11.1 Build 20090630 Package ID: l_cprof_p_11.1.046<br />Copyright (C) 1985-2009 Intel Corporation. All rights reserved.<br />ifort: error #10236: File not found: 'libsubF.so'<br /><br />GNU ld version 2.17.50.0.6-5.el5 20061020<br /><br />$ objdump -x libsubF.so | grep SONAME<br />SONAME -L/opt/intel/compiler/cpro/Compiler/11.1/046/lib/intel64<br /><br /><br /><strong><span style="text-decoration: underline;">Valid command line:</span>ifort issues no error and embeds valid SONAME<br /></strong><br />$ ifort -V -shared -Xlinker -relax -Xlinker --whole-archive libsubF.a -Xlinker --no-whole-archive -o ./libsubF.so -Xlinker -soname=libsubF.so<br />Intel(R) Fortran Intel(R) 64 Compiler Professional for applications running on Intel(R) 64, Version 11.1 Build 20090630 Package ID: l_cprof_p_11.1.046<br />Copyright (C) 1985-2009 Intel Corporation. All rights reserved.<br /><br />GNU ld version 2.17.50.0.6-5.el5 20061020<br /><br />$ objdump -x libsubF.so | grep SONAME<br />SONAME libsubF.so<br /></blockquote>
<br /><br /><span class="sectionHeadingText">Resolution Status :</span>  This is a known issue that will be fixed in a future release. To resolve the issue, modify any usage of the <strong>-Xlinker</strong> option with <strong>-soname </strong>to ensure the correct syntax of the <strong>-soname</strong> option is used.<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/intel-compiler-error-10236-with-soname-corrupts-shared-library-on-linux</link>
      <pubDate>Fri, 21 Aug 2009 14:17:04 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-compiler-error-10236-with-soname-corrupts-shared-library-on-linux#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-compiler-error-10236-with-soname-corrupts-shared-library-on-linux</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
    </item>
    <item>
      <title>Intel® Fortran and C++ compilers – Invalid option -i turns on incremental linking on Linux</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><span class="sectionHeadingText">Reference Number :</span> DPD200138822<br /><br /><br /><span class="sectionHeadingText">Version :</span> 10.1, 11.0, 11.1<br /><br /><br /><span class="sectionHeadingText">Operating System :</span> Linux*, Mac OS X* / IA-32, Intel® 64, IA-64<br /><br /><br /><span class="sectionHeading"><b>Problem Description : </b><br /></span><br />Both the Intel Fortran and C++ compilers for Mac OS and Linux quietly ignore the invalid option <strong>-i</strong> and pass it to the linker.<br /><br />The effect is harmless on Mac OS because the linker (ld) does not support the <strong>-i</strong> option.<br /><br />For example:<br /><br />
<blockquote>$ ifort -V -i sample.f90<br />Intel(R) Fortran Intel(R) 64 Compiler Professional for applications running on Intel(R) 64, Version 11.1 Build 20090511 Package ID: m_cprof_p_11.1.046<br />Copyright (C) 1985-2009 Intel Corporation. All rights reserved.<br /><strong>ld: unknown option: -i</strong></blockquote>
<br />The effect is not harmless on Linux where both compiler driver's (icc, ifort) quietly passing the option to the linker (ld) turns on incremental linking. Incremental linking produces a non-executable <strong>LSB relocatable</strong> file and not a <strong>LSB executable</strong> file. <br /><br />Because the incremental linking is done quietly it leads to user confusion when trying to execute the non-executable <strong>LSB relocatable</strong> file. The attempt to execute the resulting file results in a "Permission denied" error.<br /><br />The demonstration below shows how the invalid -i option leads to this confusing situation and error.<br /><br />
<blockquote>$ <strong>ifort</strong> sample.f90 -o sample<br /><br />$ file sample<br />sample: ELF 64-bit <strong>LSB executable</strong>, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped<br /><br />$ <strong>ifort</strong> -i sample.f90 -o sample<br /><br />$ file sample<br />sample: ELF 64-bit <strong>LSB relocatable</strong>, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, not stripped<br /><br />$ ./sample<br />-bash: ./sample: Permission denied<br /><br /><br />$ <strong>icc</strong> sample.c -o sample<br /><br />$ file sample<br />sample: ELF 64-bit <strong>LSB executable</strong>, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped<br /><br />$ <strong>icc</strong> -i sample.c -o sample<br /><br />$ file sample<br />sample: ELF 64-bit <strong>LSB relocatable</strong>, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, not stripped<br /><br />$ ./sample<br />-bash: ./sample: Permission denied</blockquote>
<br /><br /><strong class="sectionHeadingText">Resolution Status :</strong> This is a known issue that will be fixed in a future release. Since <strong>-i</strong> is not a valid Intel compiler option, correcting or removing the option will resolve the issue.<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/invalid-option-i-turns-on-incremental-linking-on-linux</link>
      <pubDate>Thu, 13 Aug 2009 08:44:07 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/invalid-option-i-turns-on-incremental-linking-on-linux#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/invalid-option-i-turns-on-incremental-linking-on-linux</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
    </item>
    <item>
      <title>Intel® Fortran compiler – Option -extend-source not ignored for .F90 source files</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><strong class="sectionHeadingText">Reference Number :</strong> DPD200138566<br /><br /><br /><strong class="sectionHeadingText">Version :</strong> 11.0, 11.1<br /><br /><br /><strong class="sectionHeadingText">Operating System :</strong> Linux*, Mac OS X* / IA-32, Intel® 64, IA-64<br /><br /><br /><b class="sectionHeading">Problem Description : </b><br /><br />Beginning with the 11.x release, the Intel Fortran compiler does not correctly ignore the <strong>-extend-source</strong> (and other variants) for free-form source files named with the .F90 extension. The option is correctly ignored for source files named with the lower-case .f90 extension.<br /><br />The mishandling of the option will cause erroneous syntax errors for any Fortran source statement that extends beyond the designated statement field length specified with the <strong>-extend-source</strong> option.<br /><br />The example below demonstrates the extraneous errors issued when using <strong>-extend-source 132</strong> with the sample program containing an OPEN statement extending beyond 132 characters.<br /><br />Given the following sample.F90 source:<br /><br />
<pre name="code" class="plain">program sample

open(unit=10,file='/hardware/temporary/model/simulation/version/9.999/xray/store/detection/reflection/fulltrace/resolution/images7654.txt',status='replace',iostat=ios_100)

if(ios_100/=0) then
   print *,"File open failed"
endif

end</pre>
<br /><br />
<blockquote>$ ifort -V -c -extend-source 132 sample.F90<br />Intel(R) Fortran Intel(R) 64 Compiler Professional for applications running on Intel(R) 64, Version 11.1 Build 20090630 Package ID: l_cprof_p_11.1.046<br />Copyright (C) 1985-2009 Intel Corporation. All rights reserved.<br /><br />Intel(R) Fortran 11.1-2536<br />sample.F90(3): error #5120: Unterminated character constant<br />open(unit=10,file='/hardware/temporary/model/simulation/version/9.999/xray/store/detection/reflection/fulltrace/resolution/images76&amp;<br />------------------^<br />sample.F90(4): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: ) ,<br />&amp;5<br />--^<br />compilation aborted for sample.F90 (code 1)</blockquote>
<br /><br /><span class="sectionHeadingText"><strong>Resolution Status :</strong> </span>This is a known issue that will be fixed in a future release. Since <strong>-extend-source</strong> is not intended to apply to free-form source files, to work around this current defect simply avoid usage with any .F90 source files.<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/extend-source-not-ignored-for-f90-source-file</link>
      <pubDate>Tue, 04 Aug 2009 11:04:04 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/extend-source-not-ignored-for-f90-source-file#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/extend-source-not-ignored-for-f90-source-file</guid>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
    </item>
    <item>
      <title>Internal Compiler Error</title>
      <description><![CDATA[ <!--page break--> 
<hr />
<div class="sectionHeading">Problem Description</div>
<p>A compilation fails with a message similar to one of the following:</p>
<blockquote>example.c(22): internal error: <br /><br />Please visit 'http://www.intel.com/software/products/support' for assistance.<br /><br />[ Aborting due to internal error. ]<br /><br />compilation aborted for example.c (code 1) <br /></blockquote>
<p> </p>
<p>or</p>
<blockquote>catastrophic error: **Internal compiler error: internal abort** <br /><br />Please report this error along with the circumstances in which it occurred in a Software Problem Report. <br /><br />Note: File and line given may not be explicit cause of this error.<br /><br />compilation aborted for example.f90 (code 3)<br /></blockquote>
<p> </p>
<!--page break--> 
<hr />
<div class="sectionHeading">Explanation</div>
<p>This message usually indicates a compiler defect.</p>
<p>Please report the problem to Intel through the <a href="http://software.intel.com/en-us/forums/">Intel® Software Network Forums</a> or <a href="https://premier.intel.com/">Intel® Premier Support</a> (support license and registration required). You will need to supply a test case along with a list of the compile options used and the exact compiler version that shows the problem. If you are not using a current compiler version, try the most recent version available to you as the error may have already been corrected.</p>
<p>Please note that this message is generic in nature and does not have a single cause nor solution. Providing a test case that reproduces the error is the only way to get a precise analysis of the problem.</p>
<p>In some, but not all, cases, you can work around the error by reducing the optimization level. You may find it helpful to try compiling with fewer switches to see if you can find one that, when removed, eliminates the error. It is also helpful to remove or comment out portions of the source file to see if you can isolate the line or lines that trigger the problem. The smaller the test case, the easier it will be for Intel to resolve the problem.</p>
<p> </p>
<p> </p>
<p> </p>
<p><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></p>
<p> </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/internal-compiler-error</link>
      <pubDate>Thu, 02 Jul 2009 10:24:50 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/internal-compiler-error#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/internal-compiler-error</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® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
  </channel></rss>