<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Tue, 24 Nov 2009 20:29:02 -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-compilers/type/technical-notes/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles feed</title>
    <link>http://software.intel.com/en-us/articles/intel-compilers/technical-notes/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Building ACE/TAO with Intel(R) C++ Compiler for Windows XP 64-bit using Visual Studio</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Introduction : </b><br />This document explains how to build ACE/TAO using Intel(R) C++ Compiler for Windows XP 64-bit. From the ACE/TAO web site:<br /><br /><a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>† is an open-source framework that provides many components and patterns for developing high-performance, distributed real-time and embedded systems. ACE provides powerful, yet efficient abstractions for sockets, demultiplexing loops, threads, synchronization primitives. <br /><br /><a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a>† (The ACE ORB) is an open-source implementation of a CORBA Object Request Broker (ORB) built using components and patterns in the ACE framework. <br />Several companies provide commercial support for ACE/TAO, see <a href="http://www.cs.wustl.edu/~schmidt/commercial-support.html">http://www.cs.wustl.edu/~schmidt/commercial-support.html</a>† for information. <br /><br /><br /><b>Version : </b><br />The version of ACE/TAO used in this document is 5.7.2. <br />The 11.1.038 version of the Intel C++ compiler (Intel64) is used.<br /><br /><br /><b>Obtaining Source Code : </b><br />The ACE/TAO source code was downloaded from <a href="http://download.dre.vanderbilt.edu/">http://download.dre.vanderbilt.edu/</a>†.<br /><br /><br /><b>Prerequisites : </b><br />- WinZIP or similar tool for extracting software archives<br />- Microsoft Visual Studio (2003, 2005 or 2008)<br /><br /><br /><b>Configuration and Set-up information : </b><br /><br />1. Extract the archive into a path with no spaces in the path name (e.g., C:\ACE_wrappers).<br /><br />2. Set ACE_ROOT, TAO_ROOT, and PATH environment variables.<br /><br />For example, if ACE/TAO is installed in C:\ACE_wrappers, the variables should look like this:<br />ACE_ROOT=C:\ACE_wrappers<br />TAO_ROOT=%ACE_ROOT%\TAO<br />The PATH variable should contain these directories: %ACE_ROOT%\bin;%ACE_ROOT%\lib<br /><br />Please follow these steps to set the environment variables:<br /><br />- Log into an account with Administrator privilege<br />- Open the Control panel<br />- Click System<br />- Click the Advanced tab and then click the Environment Variables button<br />- Add new ACE_ROOT and TAO_ROOT variables<br />- Edit PATH variable from the System variables list<br />- Click OK<br /><br />3. Create a file named config.h in %ACE_ROOT%\ace with the following contents:<br /><br />#include "ace/config-win32.h"<br /><br />4. Open the solution file that matches your version of Visual Studio. <br />For example, you could find following solution files:<br /><br />%TAO_ROOT%\TAO_ACE.sln (Visual Studio 2003)<br />%TAO_ROOT%\TAO_ACE_vc8.sln (Visual Studio 2005)<br />%TAO_ROOT%\TAO_ACE_vc9.sln (Visual Studio 2008)<br /><br />The projects in the TAO_ACE solution build the ACE and TAO libraries, TAO IDL compiler, gperf, ORB services<br />libraries and executables, and some common utilities. They do not include any examples, tests, or performance<br />tests. (Separate directories and solutions exist for them.) Libraries will be installed in %ACE_ROOT%\lib.<br />Some executables will be installed in %ACE_ROOT%\bin, others (the ORB services executables) will be installed<br />in their source directories.<br /><br />5. It is necessary to update the solution to use the Intel(R) C++ Compiler. <br />In the Solution Explorer, select the solution and click the Use Intel C++ toolbar button. <br />Alternatively, select Intel C++ Compiler Pro &gt; Use Intel C++ from the Visual Studio Project menu.<br />Click the OK button to continue. <br />The TAO_ACE solution constains many projects and it will take some time to update them to use Intel C++.<br /><br />Finally, you should see the message in the output window with the list of the successfully updated projects.<br /><br /><br />6. Open Solution Properties and create a new platform configuration for x64 using the Configuration Manager. <br />Make sure, that current (target) configuration is Debug|x64 or Release|x64 and build solution (Build &gt; Build Solution).<br /><br /><br />During building of the solution, go to the Output window to verify that the Intel C++ Compiler is used. If Intel C++ Compiler is used, you should see a message similar to the following:<br /><br />Compiling with Intel(R) C++...[Intel(R) 64]... (Intel C++ Environment)<br /><br /><br /><strong>Verifying Correctness</strong> <br /><br />There are many examples and tests included in ACE/TAO. Additional separate directories and solutions exist for them.<br />It is possible to compile all tests using corresponding test solution files from %ACE_ROOT%\tests folder.<br />There is one solution file for all tests (each for different versions of VS) there, however, it is also possible to compile each test separately.<br /><br />For example, you could compile ACE_Test to verify the correctness of ACE compilation using following instructions:<br /><br />1. Open ACE_Test project file from %ACE_ROOT%\tests folder (e.g.,ACE_Test_vc9.vcproj for VS2008).<br /><br />2. It is necessary to update the solution to use the Intel(R) C++ Compiler. Please follow the same instructions as described previously in step 5. You will be also asked to save the solution.<br /><br />3. Make sure, that current (target) configuration is Debug|x64 or Release|x64 (it should be the same with the compiled libraries) and build solution.<br /><br />4. Run the test (F5 or Ctrl+F5).<br /><br />5. You could check the logs in %ACE_ROOT%\tests\log folder (ACE_Test.log file). In case of normal execution the output looks like this:<br /><br />Sep 08 15:52:11.103 2009@LM_DEBUG@(3820|5884) Starting ACE_Test test at Tue Sep 8 2009 15:52:11.103000<br />Sep 08 15:52:11.103 2009@LM_DEBUG@(3820|5884) Ending ACE_Test test at Tue Sep 8 2009 15:52:11.103000<br /><b><br /><br />Source Code Changes : </b><br />None required. <br /><br /><br /><b>Related topics: </b><br /><a href="http://software.intel.com/en-us/articles/building-acetao-with-intelr-c-compiler-for-linux/">http://software.intel.com/en-us/articles/building-acetao-with-intelr-c-compiler-for-linux/</a><br /><br /><br /><b>Known Issues or Limitations : </b><br />None. Please contact Intel® Premier Support website or Intel® User Forums if you encounter problems or want to provide feedback.<br /><br />† This link will take you off of the Intel Web site. Intel does not control the content of the destination Web Site.</div> ]]></description>
      <link>http://software.intel.com/en-us/articles/building-acetao-with-intelr-c-compiler-for-windows-xp-64-bit-using-visual-studio</link>
      <pubDate>Tue, 08 Sep 2009 05:19:48 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/building-acetao-with-intelr-c-compiler-for-windows-xp-64-bit-using-visual-studio#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/building-acetao-with-intelr-c-compiler-for-windows-xp-64-bit-using-visual-studio</guid>
      <category>Open Source</category>
      <category>Intel® Compilers</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>How to find Host ID for Floating licenses</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><strong>Identifying the Host Name and Host ID<br /></strong>The host name and host ID are system-level identifiers on supported platforms that<br />are used in the license file to identify the node on which you plan to install the Intel<br />License Manager for FLEXlm* and license file. To enable you to obtain a counted<br />license, these unique values must be available when you register your product. For<br />node-locked licenses, you will also need the host name and host id of the node from<br />which your applications will run, if different from the node for the Intel License<br />Manager for FLEXlm*. Follow these directions to obtain the host name and host id for<br />each supported platform:<br /><br /><strong>Microsoft Windows*<br /></strong>1. From the Start menu, click Run...<br />2. Type cmd in the Open: field, then click OK.<br />3. Type ipconfig /all at the command prompt, and press Enter.<br />In the resulting output, host name is the value that corresponds to Host Name, and<br />host id is the value that corresponds to Physical Address.<br /><br />For example, if the output of ipconfig /all included the following:<br />Host Name . . . . . . . : mycomputer<br /><strong>. . .<br /></strong>Physical Address . . . . : 00-06-29-CF-74-AA<br />then host name is mycomputer and the host ID is 00-06-29-CF-74-AA.<br /><br /><strong>Linux*<br /></strong>1. Run the hostname command to display the host name.<br />2. Run the command /sbin/ifconfig eth0 to display the hardware address.<br />For example, if the /sbin/ifconfig eth0 command returns<br />HWaddr 00:D0:B7:A8:80:AA, then the host ID is 00:D0:B7:A8:80:AA.<br />It is strongly recommended that users run the lmhostid utility to obtain the hostid<br />value required to generate the counted licenses. The lmhostid utility can be found in<br />the install location to which Intel License Manager for FLEXlm* is installed.<br /><br /><strong>Mac OS* X on Intel® Architecture<br /></strong>1. Run the hostname command to display the host name.<br />2. Run the command /sbin/ifconfig en0 ether to display the hardware address.<br />The following is an example of an address that could be returned by this command:<br />en0: flags=8863&lt;UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500<br />ether 00:13:20:60:23:4f<br />It is strongly recommended that users run the lmhostid utility to obtain the hostid<br />value required to generate the counted licenses. The lmhostid utility is installed to<br />the same location as the Intel License Manager for FLEXlm*.<br /><br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-to-find-host-id-for-floating-licenses</link>
      <pubDate>Thu, 13 Aug 2009 09:15:55 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-to-find-host-id-for-floating-licenses#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-to-find-host-id-for-floating-licenses</guid>
      <category>Software Products General</category>
      <category>Intel® Compilers</category>
      <category>Intel® License Manager for FLEXlm* Knowledge Base</category>
      <category>Intel® Software Development Products Registration Center Knowledge Base</category>
    </item>
    <item>
      <title>Different result of Volatile variables between icc and vc</title>
      <description><![CDATA[ <div id="art_pre_template"><b>Problem : </b><br /><br />We used keyword "volatile" as below when defining a variable,:<br /><br />volatile int i=5; <br /><br />The volatile has multiple meanings. To a compiler writer it means to take no code generation shortcuts when accessing such an object. "Volatile" is reminder to compiler to not suppose or guess some conditions when optimized, the variable could be change by some unexpected elements anytime. <br /><br />So, the variable i should be stored in SRAM, every time we used it, we read it from SRAM. <br /><br />Let's see a simple case: <br /><br />// tstcase.c<br />include &lt;stdio.h&gt;<br />include &lt;stdlib.h&gt;<br /><br />void foo()<br />{<br />volatile int i=1, j=1;<br />i=(i++)+(j++)+2;<br />j=i=i++;<br />printf("i=%d,j=%d\n",i,j);<br /><br />}<br /><br />Using Intel C++ compiler, result is:<br /><br />i=3,j=2 (same result with gcc)<br /><br />Using VC compiler, result is <br /><br />i=6,j=5 <br /><br />I thinks that i=(i++)+(j++)+2 was translated to:<br /><br />Intel C++ compiler:<br /><br />t=t+t1+2; (t is equal to 4)<br />t++; (t is equal to 1, then execute t++, t is equal to 2)<br />t1++; (t1 is equal to 2)<br />Then, j=i=i++;<br />Output is i=3,j=2<br /><br />Microsoft C++ compiler :<br /><br />t=t+t1+2; (t is equal to 4)<br />t++; (t is equal to 5)<br />t1++; (t1 is equal to 2)<br />Then, j=i=i++;<br />Output is i=6,j=5. <br /><br />If we did not use Volatile, we got same result(i=6,j=5) no matter which compiler used. If integrated Intel C++ compiler to VS2008, compiled both with VC and icl , we got different result. <br /><br /><b>Environment : </b><br />Windows, Linux , Intel C++ compiler, Microsoft C++ compiler, gcc<br /><br /><b>Root Cause : </b><br />The statements use language constructs that have undefined behaviour according to C/C++ standard:<br /><br /><b>Resolution : </b><br /><br />The test uses language constructs that have undefined behaviour according to C/C++ standard:<br /><br />&gt;&gt;&gt; i=(i++)+(j++)+2;<br />&gt;&gt;&gt; j=i=i++;<br /><br />The value of i is being modified more than once between two sequence points. Refer to the rules for expressions (section 5, paragraph 4 of the ISO C++ standard):<br /><br />"Except where noted, the order of evaluation of operands of<br />individual operators and subexpressions of individual<br />expressions, and the order in which side effects take place,<br />is unspecified. Between the previous and next sequence<br />point a scalar object shall have its stored value modified at<br />most once by the evaluation of an expression. Furthermore,<br />the prior value shall be accessed only to determine the value<br />to be stored. The requirements of this paragraph shall be met<br />for each allowable ordering of the subexpressions of a full<br />expression; otherwise the behavior is undefined. <br /><br />[Example:<br />i = v[i++]; // the behavior is unspecified<br />i = 7, i++, i++; // i becomes 9<br />i = ++i + 1; // the behavior is unspecified<br />i = i + 1; // the value of i is incremented<br />-end example]"<br /><br /><br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/different-result-of-volatile-variables-between-icc-and-vc</link>
      <pubDate>Mon, 13 Jul 2009 23:20:19 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/different-result-of-volatile-variables-between-icc-and-vc#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/different-result-of-volatile-variables-between-icc-and-vc</guid>
      <category>Intel® Parallel Composer</category>
      <category>Intel® Compilers</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>compilation failure if  function mm_load_pd1() is invoked</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Problem : </b><br />  When compiling an application will function call to mm_load_pd1, the Intel compiler will report that mm_load_pd1 is not found. gcc compiler can successfully build the application.<br /><br /><b>Environment : </b><br /><br />Intel compiler 11.0, 11.1<br />gcc 4.3<br /><br /><br /><b>Resolution : </b><br />Please use the standard name mm_load1_pd() instead of mm_load_pd1(). gcc can also recognizes this standard name for this operation.<br /><br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/compilation-failure-if-function-mm_load_pd1-is-invoked</link>
      <pubDate>Sun, 12 Jul 2009 21:53:41 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/compilation-failure-if-function-mm_load_pd1-is-invoked#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/compilation-failure-if-function-mm_load_pd1-is-invoked</guid>
      <category>Intel® Compilers</category>
    </item>
    <item>
      <title>Q&amp;A from Webinar: Find Errors in Windows* C++ Parallel Applications</title>
      <description><![CDATA[ <strong>On April 14, 2009 Bernth Andersson presented a technical session and live demo webinar focusing on the Intel(R) Parallel Debugger Extension and it's use for identifying parallel coding issues and run-time problems related to concurrency. Below are questions that came up during this webinar and answers to those questions.  <br /><br />Q1. Can you disable a single specific parallel region? <br /></strong>
<blockquote>
<p>A: The "Serialize Parallel Region" option of the Intel(R) Parallel Debugger extensions temporarily sets the OpenMP* omp_set_num_threads() environment variable to 1, thus forcing single threaded execution even on a multi-core system. This temporary change applies to the next parallel block or parallel region in your code relative to the current EIP or program counter location.<br /><br />Thus, yes - the "Serialize Parallel Region" option can be applied to a specific parallal region of your choice. You can do so by setting a breakpoint just before you enter the parallel region you would like to have executed as a single serial thread and then selecting the serialization option from the Intel(R) Parallel Debugger Extension menu inside Microsoft* Visual Studio. </p>
</blockquote>
<br /><strong>Q2. Do the Parallel Debugger Extensions only support OpenMP* or also native Windows* threads or Threading Building Blocks?  </strong><br />
<blockquote>A: Most of the Parallel Debugger Extension features like Thread Data Sharing Event Detection, Function Reentrancy Detection amd Serialize Parallel Region, rely on instrumentation of debug information and on the OpenMP* library. As such these features are currently only available for OpenMP* based threading. The one feature that is independent of the threading model used are the enhanced and highly configurable SSE register windows.</blockquote>
<br /><strong>Q3. Do the Intel(R) Parallel Debugger Extensions use similar instrumentations as the Intel(R) Parallel Inspector?  <br /></strong>
<blockquote>A: The debug symbol information instrumentation done by the Intel(R) C++ Compiler when the /debug:parallel option is set along with /Zi is different from the code instrumentations used by the Intel(R) Parallel Inspector for it's instrumentation assisted operating mode.<br />The Intel(R) Parallel Debugger Extensions do not rely on executable code instrumentation, but rather on instrumentation of the symbol information used for debugging. As such the Parallel Debugger Extensions cannot statically anaylze the execution flow, but rely on a detectable event that may be of interest happening at real time during a debug session. At the same time, because only the debug information is instrumented there should only be very minimal performance impact on the execuatble if run outside the Microsoft* Visual Studio Debugger.</blockquote>
<br /><strong>Q4. Is the compiler option /Qpenmp required for use of the Intel(R) Parallel Debugger Extension?</strong>
<blockquote>A: Yes, all enhanced parallelism features of the Intel(R) Parallel Debugger Extensions rely on OpenMP* based threading, except for the SSE register windows.</blockquote>
<br /><strong>Q5.  Do the Intel(R) Parallel Debugger Extensions require the use of the Intel(R) Compiler?</strong>
<blockquote>A: Yes, the Parallel Debugger Extensions rely on debug info instrumentation added with the Intel(R) Compiler option /debug:parallel in conjunction with /Qopenmp. Therefore the full capabilities of the Intel(R) Parallel Debugger Extensions are only available when used with the Intel(R) Compiler.</blockquote>
<br /><strong>Q6. Can I use the Intel(R) Parallel Debugger Extensions to debug parallelism in the Intel(R) Integrated Performance Primitives and to serialize execution in them?</strong>
<blockquote>A: In principle yes, BUT this would require rebuilding and relinking the Intel(R) IPP with symbol information and /debug:parallel. Since you are most likely taking the primitives from prebuilt libraries that you link into your project, this not really a supported usage model, although it may work in some cases depending on how the call to the Intel(R) IPP function of your choice is embedded in the rest of your application.<br />The short answer thus is really no, with some exceptions.</blockquote>
<strong><br />Q7.  Does the OpenMP* library have to be linked in statically? Can 3rd party OpenMP* libraries be used?</strong><br />
<blockquote>A: The OpenMP* library can be linked in statically or dynamically into your application build for the use of the Intel(R) Parallel Debugger Extension. The OpenMP* library used by the Intel(R) C++ Compiler is really a standard OpenMP* library. However, there is the dependency on the debug information instrumentation using /debug:parallel. This instrumentation has only been tested and is only expected to work with the OpenMP* libraries provided with the Intel(R) Compiler.</blockquote>
<br /><strong>Q8. What is the main benefit of the SSE Register Window? Does it depend on OpenMP*?</strong>
<blockquote>A: The SSE Register Window allows you to group the display of the register contents and display said contents in the exact way that you are using it in your parallelized loops, your structured arrays or other parallel structures. By doing this the highly configurable SSE Register Window provides you with the link between your data as it is used in your application and the way this very same data is actually stored and processed in the SSE registers.<br /><br />This can be quite valuable for understanding more complex heavily parallel multimedia or graphics code for instants.<br /><br />This feature does not rely on any instrumentation or any specific threading implementation. It is independent of OpenMP*. </blockquote>
<br /><strong>For additional questions please also refer to the Intel(R) Parallel Debugger Extension article and whitepaper at <a target="_blank" href="http://software.intel.com/en-us/articles/parallel-debugger-extension/" title="Intel(R) Parallel Debugger Extension Article">http://software.intel.com/en-us/articles/parallel-debugger-extension/</a></strong> ]]></description>
      <link>http://software.intel.com/en-us/articles/qa-from-webinar-find-errors-in-parallel-applications</link>
      <pubDate>Tue, 30 Jun 2009 16:56:46 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/qa-from-webinar-find-errors-in-parallel-applications#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/qa-from-webinar-find-errors-in-parallel-applications</guid>
      <category>Parallel Programming</category>
      <category>Intel® Compilers</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Intel Compilers for Linux Version 11.1 Silent Installation Guide</title>
      <description><![CDATA[ <meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<title>Linux Compiler Professional 11.1 Special Installation Instructions</title>
<meta name="description" content="Internal use document describing special installation features" />
<!--[if gte mso 9]><xml> <mso:CustomDocumentProperties> <mso:ContentType msdt:dt="string">Document</mso:ContentType> </mso:CustomDocumentProperties> </xml><![endif]-->
<h1 align="center"><span style="font-family: Arial;">Linux Compiler Professional 11.1 <br /> "Silent" or "Non-interactive" Installation Instructions</span></h1>
<br />
<h2><span style="font-family: Arial;">Contents:</span></h2>
<br /> 
<ul>
<li><span style="font-family: Arial;"><a href="#silent">Silent Command Line Installations</a></span></li>
<li><span style="font-family: Arial;"><a href="#rpm">RPM Command Line Installations</a></span></li>
<li><span style="font-family: Arial;"><a href="#lsb">LSB Support</a></span></li>
<li><span style="font-family: Arial;"><a href="#redist">Redistribution Package  	Installations</a></span></li>
<li><span style="font-family: Arial;"></span><a href="#uninstall">Uninstall Instructions</a></li>
<li><span style="font-family: Arial;"><a href="#links">Links of Interest</a></span></li>
</ul>
<h2></h2>
<h2></h2>
<br />
<h2></h2>
<h2><span style="font-family: Arial;"><a name="silent"></a>Silent Command Line Installations</span></h2>
<p><span style="font-family: Arial;">Starting with release 11.0, the Linux installation  programs for Compiler Professional are built using the PSET (Program Startup  Experience Technologies) 2.0 core.  This PSET core is a framework of tools  built by Intel to provide a robust set of installation and licensing features  that are consistent across Intel product lines.  A similar PSET core is  used for the Windows* and Mac OS* X installation packages as well.</span></p>
<p><span style="font-family: Arial;">One feature provided in the PSET core is support for the   "silent" install.  Historically, "silent" really meant "non-interactive".   At this point, "silent" also means "does not report copious amounts of  information".  The silent install really is silent now, assuming there are  no problems during the installation.  The silent install method allows the  user to perform a command line installation of an entire package with no need to  answer prompts or make product selections. </span></p>
<p><span style="font-family: Arial;">A historical note specific to Linux installs: there has  been a "silent" install capability in the Linux Compiler products since version  9.0.  This legacy version, included in versions 9.1, 10.0, 10.1, and 11.0  as well, performed the same function.  But starting with version 11.1, the  legacy silent install embedded in the "inner install components" has been  removed.  <b>The new PSET core silent install is the only method still  supported - that is, older silent installation tools in v11.0 and older are no longer supported</b> other than the RPM command line install method (see details on  RPM-based installs <a href="#rpm">below</a>).</span></p>
<h3><span style="font-family: Arial;">Silent Install Steps: "From Scratch"</span></h3>
<p><span style="font-family: Arial;">To run the silent install, follow these steps:</span></p>
<ul>
<li><span style="font-family: Arial;">Make sure that a working product license is in place  	before beginning.  The file should be world-readable and located in a  	standard Intel license file directory, such as /opt/intel/licenses.<br /> </span></li>
<li><span style="font-family: Arial;">Create / edit a silent install INI file.  Here  	is an example file.  A similar file can be edited and placed in any  	directory on the target system.</span></li>
</ul>
<blockquote>
<blockquote>
<p><span style="font-family: Arial;">ACTIVATION=exist_lic<br /> CONTINUE_WITH_INSTALLDIR_OVERWRITE=yes<br /> CONTINUE_WITH_OPTIONAL_ERROR=yes<br /> PSET_INSTALL_DIR=/opt/intel/Compiler/11.1/038<br /> INSTALL_MODE=RPM<br /> ACCEPT_EULA=accept</span></p>
</blockquote>
</blockquote>
<ul>
<li><span style="font-family: Arial;">Run the silent install.  For example, if you untarred your compiler package in /tmp for version 11.1.038:</span></li>
</ul>
<blockquote>
<p><b><span style="font-family: Courier;">prompt&gt; cd /tmp/l_cproc_p_11.1.038</span></b></p>
<p><b><span style="font-family: Courier;">prompt&gt; ./install.sh --silent /tmp/my_silent_config.ini</span></b></p>
<p><b><span style="font-family: Courier;">prompt&gt;</span></b></p>
</blockquote>
<p><span style="font-family: Arial;">That's it! The silent install is complete. </span></p>
<p><span style="font-family: Arial;">A few comments on the fields inside the silent install INI  file:</span></p>
<ul>
<li><span style="font-family: Arial;">ACTIVATION=exist_lic</span></li>
</ul>
<blockquote>
<p><span style="font-family: Arial;">This tells the install program to look for an existing  	license during the install process.  This is the preferred method for  	silent installs.  If you have only a serial number, please visit <a href="https://registrationcenter.intel.com">https://registrationcenter.intel.com</a> to register your serial number.  As part of registration, you will receive email with an attached license file.  Save the license file in /opt/intel/licenses/ directory.  If you have already registered your serial number but have lost the license file, revisit </span><span style="font-family: Arial;"><a href="https://registrationcenter.intel.com">https://registrationcenter.intel.com</a> and click on the hyperlinked product name to get to a screen where you can cut and paste or mail yourself a copy of your registered license file.<br /></span></p>
</blockquote>
<ul>
<li><span style="font-family: Arial;">CONTINUE_WITH_INSTALLDIR_OVERWRITE=yes</span></li>
</ul>
<blockquote>
<p><span style="font-family: Arial;">This tells the installer that it is OK to write into  	an existing directory.  This should be set to "yes" especially in the  	case where a C/C++ installation will be written into the same major product  	tree as a Fortran installation from the same packaging cycle (e.g.  	l_cproc_p_11.1.038 and l_cprof_p_11.1.038).</span></p>
</blockquote>
<ul>
<li><span style="font-family: Arial;">CONTINUE_WITH_OPTIONAL_ERROR=yes</span></li>
</ul>
<blockquote>
<p><span style="font-family: Arial;">This tells the install program that if the optional,  	non-critical prerequisite checks should fail to detect a needed element, the  	installation should continue anyway.  Optional checks include operating  	system types and/or versions, presence of a compatible Java Run-time  	Environment (JRE), etc.  Note that non-optional (i.e. mandatory)  	prerequisite checks cannot be ignored by the silent install process.   	These include such things as required installed programs, commands needed by  	the installer and/or the product itself (e.g. grep, cut, etc. for the  	installer and g++ for the compilers).  MAKE SURE YOUR LINUX DISTRO HAS INSTALLED DEVELOPMENT ENVIRONMENT, including gcc, g++, binutils, etc.  Many Linux distributions come as 'desktop' images and may not have all the gcc toolchain needed for developing applications by default.  Use your package manager to find and download all needed gcc and g++ toolchains.  Also, it is required to keep gcc and g++ at the same version - do not update one and not the other.  Keep them at the same version.<br /></span></p>
</blockquote>
<ul>
<li><span style="font-family: Arial;">PSET_INSTALL_DIR=/opt/intel/Compiler/11.1/038</span></li>
</ul>
<blockquote>
<p><span style="font-family: Arial;">This is the install directory where product content  	will be placed.  Permissions for the parent directories and file  	systems of this directory need to be enabled so that the user running the  	silent install could create them, but the directory itself does not need to  	exist prior to the installation.</span></p>
</blockquote>
<ul>
<li><span style="font-family: Arial;">INSTALL_MODE=RPM</span></li>
</ul>
<blockquote>
<p><span style="font-family: Arial;">This directive tells the install program that the RPM  	method should be used to install the software.  <b>This will only work if  	the install user is "root" or has full root priveleges and your distribution support RPM for package management</b>.  In some cases,  	where the operating system of the target system does not support RPM or if  	the install program detects that the version of RPM supported by the  	operating system is flawed or otherwise incompatible with the install  	program, the installation will proceed but will switch to non-RPM mode  	automatically.  This is the case for certain legacy operating systems  	(e.g. SLES9) and for operating systems that provide an RPM utility, but do  	not use RPM to store or manage system-installed operating system  	infrastructure (e.g. Ubuntu, Debian).  <b>THUS, Ubuntu and Debian users set this to INSTALL_MODE=NONRPM.</b><br /></span></p>
<p><span style="font-family: Arial;">If the you do not want to use RPM, then this line  	should read "INSTALL_MODE=NONRPM".  In this case, the products will be  	installed to the same location, but instead of storing product information  	in the system's RPM database, the Intel product install information will be  	stored in a flat file called "intel_sdp_products.db", usually stored in  	/opt/intel (or in $HOME/intel for non-root users).</span></p>
</blockquote>
<ul>
<li><span style="font-family: Arial;">ACCEPT_EULA=accept</span></li>
</ul>
<blockquote>
<p><span style="font-family: Arial;">This tells the install program that the invoking user  	has agreed to the EULA, or end user license agreement.  If this is not  	present in the INI file, the installation will not complete. </span></p>
</blockquote>
<h3><span style="font-family: Arial;"></span></h3>
<h3><span style="font-family: Arial;"><b>Note that silent install using this format does not currently support pre-selection of individual components</b>.  In other words, if the desired installation is intended to include only some of the install components, but not all of them, the INI file here will not support this.  A custom INI created with the duplicate method will install all of the components available in a specific package.  If a custom install operation that only installs specific portions of the components is desired, it is suggested that the RPM install method be used for this.  (See <a href="#rpm">below</a>) </span></h3>
<br />
<h3><span style="font-family: Arial;">Silent Install Steps: "Copy and Repeat" Method of INI  Creation</span></h3>
<p><span style="font-family: Arial;">If you need to make the same sort of installation over  and over again, one way to get the INI file right the first time is to run the  installation program once interactively, using the options that meet the local needs,  and record these options into an INI file that can be used to replicate this  same install via silent install for future installations.</span></p>
<p><span style="font-family: Arial;">To do this, the user simply needs to add the "duplicate"  option to the script invocation, and run a normal install, as follows:</span></p>
<blockquote>
<p><b><span style="font-family: Courier;">prompt&gt; ./install.sh --duplicate /tmp/my_install.ini</span></b></p>
</blockquote>
<p><span style="font-family: Arial;">This "dash dash duplication" option will put the choices  made by you into the file specified on the command line.  You can modify this recorded INI file as appropriate, then use it to  perform additional or repeat installs.  The INI file created with this  method may include a line "CONTINUE_WITH_INSTALLDIR_OVERWRITE" without the   "=yes" on the end.  You will need to manually edit this INI file to  add an "=yes" or "=no" to the end of this line, or else remove the  CONTINUE_WITH_INSTALLDIR_OVERWRITE line altogether.  This limitation will  be addressed in a future release.</span></p>
<p><span style="font-family: Arial;">Note that silent install using this format does not  currently support pre-selection of individual components.  In other words,  if the desired installation is intended to include only some of the install  components, but not all of them, the INI file here will not support this.    A custom INI created with the duplicate method will install all of the  components available in a specific package.  If a custom install operation  that only installs specific portions of the components is desired, it is  suggested that the RPM install method be used for this.  (See <a href="#rpm">below</a>) </span></p>
<h2></h2>
<h2><span style="font-family: Arial;"><a name="rpm"></a>RPM Command Line Installations</span></h2>
<p><span style="font-family: Arial;">The files associated the Linux Compiler Professional  products are stored in "RPM" files.  RPMs (short for Red Hat Package  Manager).  They are  grouped according to certain file type guidelines.  Each major product  component will consist of one more or of these RPMs.  For non-RPM systems  and for users who choose to install the product without using the RPM database  of their target systems, an "underneath the hood" utility is embedded inside  the installation program tools to extract the contents of the RPM files.</span></p>
<h3><span style="font-family: Arial;">Changes for RPM in 11.1</span></h3>
<p><span style="font-family: Arial;">Starting with the 11.1  packages, the Linux  Compiler Professional packaging includes RPM files that also contain embedded  installation functionality.  This means that key install behaviors such as  environment script updating and symbolic link creation, which used to be only in  the install program itself, are now embedded in the RPM files.  As a  result, the experienced user can make use of the RPM files directly in order to  install and remove Linux Compiler Professional 11.1 products. </span></p>
<blockquote>
<div style="border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px"><span style="font-family: Arial;"><b>Warning: </b>this is truly for the experienced,  		Linux system savvy user.  Most RPM command capabilities require  		root privileges.  Improper use of rpm commands can corrupt and  		destroy a working system.</span></div>
</blockquote>
<p><span style="font-family: Arial;">The changes done for the 11.1 Linux product are intended  to ease the job of deploying the Linux Compiler Professional solution sets in  enterprise deployments, including cluster environments.  <br /></span></p>
<h3><span style="font-family: Arial;">Product Layout for 11.1</span></h3>
<p><span style="font-family: Arial;">The format of the install packages themselves was changed  for 11.1.  Here is an example (for C++ package 11.1.038.</span></p>
<p><span style="font-family: Arial;">Top directory contents of l_cproc_p_11.1.038 package:</span></p>
<ul>
<li><span style="font-family: Arial;"><b>cd_eject.sh</b> - CD eject script used by  	install.sh</span></li>
<li><span style="font-family: Arial;"><b>install.sh</b> - install script</span></li>
<li><span style="font-family: Arial;"><b>license.txt </b>- end user license agreement</span></li>
<li><span style="font-family: Arial;"><b>pset</b> - installation and licensing content  	directory</span></li>
<li><span style="font-family: Arial;"><b>Release_NotesC.pdf</b> - product release notes</span></li>
<li><span style="font-family: Arial;"><b>rpm</b> - directory containing all product content  	in RPM file format, plus the EULA and LPGL license</span></li>
</ul>
<p><span style="font-family: Arial;">This is the RPM directory (l_cproc_p_11.1.038/rpm) layout for the 11.1 beta C/C++  product (IA-32 example):</span></p>
<ul>
<li><span style="font-family: Arial;"><b>clicense </b>- product EULA</span></li>
<li><span style="font-family: Arial;"><b>lgpltext</b> - LGPL Eula</span></li>
<li><span style="font-family: Arial;"><b>intel-cproc038-11.1-1.i486.rpm</b> -  	architecture-specific (IA-32) C/C++ compiler content</span></li>
<li><span style="font-family: Arial;"><b>intel-cprocsdk038-11.1-1.noarch.rpm</b> -  	architecture-neutral core C/C++ compiler content</span></li>
<li><span style="font-family: Arial;"><b>intel-cproidb038-11.1-1.i486.rpm </b>-  	architecture-specific (IA-32) debugger run-time files</span></li>
<li><span style="font-family: Arial;"><b>intel-cproidbsdk038-11.1-1.noarch.rpm</b> -  	architecture-neutral debugger content</span></li>
<li><span style="font-family: Arial;"><b>intel-cproipp038-11.1-1.noarch.rpm</b> -  	architecture-neutral IPP content</span></li>
<li><span style="font-family: Arial;"><b>intel-cproipplib038-11.1-1.i486.rpm</b> -  	architecture-specific (IA-32) IPP run-time libraries</span></li>
<li><span style="font-family: Arial;"><b>intel-cproipplibdev038-11.1-1.i486.rpm</b> -  	arch-specific (IA-32) IPP development libraries</span></li>
<li><span style="font-family: Arial;"><b>intel-cprolib038-11.1-1.i486.rpm</b> -  	architecture-specific (IA-32) C/C++ run-time libraries</span></li>
<li><span style="font-family: Arial;"><b>intel-cprolibdev038-11.1-1.i486.rpm</b> -  	architecture-specific (IA-32) C/C++ devel libraries</span></li>
<li><span style="font-family: Arial;"><b>intel-cpromkl038-11.1-1.noarch.rpm</b> -  	architecture-neutral MKL content</span></li>
<li><span style="font-family: Arial;"><b>intel-cpromklib038-11.1-1.i486.rpm</b> -  	architecture-specific (IA-32) run-time libraries</span></li>
<li><span style="font-family: Arial;"><b>intel-cpromklibdev038-11.1-1.i486.rpm</b> -  	architecture-specific (IA-32) devel libraries</span></li>
<li><span style="font-family: Arial;"><b>intel-cprotbblib038-11.1-1.noarch.rpm</b> -  	architecture-neutral TBB run-time libraries</span></li>
<li><span style="font-family: Arial;"><b>intel-cprotbblibdev038-11.1-1.noarch.rpm</b> -  	archtecture-neutral TBB devel libraries and content </span>
<p><span style="font-family: Arial;">(Note: TBB is special case "one RPM fits all"  	packaging)</span></p>
</li>
</ul>
<p><span style="font-family: Arial;">This is the RPM directory layout for the 11.1 beta Fortran  product (IA-32 example):</span></p>
<ul>
<li><span style="font-family: Arial;"><b>flicense</b> - product EULA</span></li>
<li><span style="font-family: Arial;"><b>intel-cprof038-11.1-1.i486.rpm </b>-  	architecture-specific (IA-32) Fortran compiler content</span></li>
<li><span style="font-family: Arial;"><b>intel-cproflib038-11.1-1.i486.rpm</b> -  	architecture-specific (IA-32) Fortran run-time libraries</span></li>
<li><span style="font-family: Arial;"><b>intel-cprofsdk038-11.1-1.noarch.rpm</b> -  	architecture-neutral Fortran compiler content</span></li>
<li><span style="font-family: Arial;"><b>intel-cproidb038-11.1-1.i486.rpm</b> -  	architecture-specific (IA-32) debugger content</span></li>
<li><span style="font-family: Arial;"><b>intel-cproidbsdk038-11.1-1.noarch.rpm </b>-  	architecture-neutral debugger content</span></li>
<li><span style="font-family: Arial;"><b>intel-cprolib038-11.1-1.i486.rpm</b> -  	architecture-specific (IA-32) C/C++ run-time library content<br /> (required for Fortran - same as the file included in the above C/C++  	package)</span></li>
<li><span style="font-family: Arial;"><b>intel-cprolibdev038-11.1-1.i486.rpm</b> -  	architecture-specific (IA-32) C/C++ devel library content<br /> (required for Fortran - same as the file included in the above C/C++  	package)</span></li>
<li><span style="font-family: Arial;"><b>intel-cpromkl038-11.1-1.noarch.rpm</b> -  	architecture-neutral MKL content</span></li>
<li><span style="font-family: Arial;"><b>intel-cpromklib038-11.1-1.i486.rpm </b>-  	architecture-specific (IA-32) MKL run-time libraries</span></li>
<li><span style="font-family: Arial;"><b>intel-cpromklibdev038-11.1-1.i486.rpm</b> -  	architecture-specific (IA-32) MKL devel libraries</span></li>
</ul>
<h3><span style="font-family: Arial;">Installing Compilers With the RPM Command Line</span></h3>
<p><span style="font-family: Arial;">To install an 11.1 Linux Compiler Professional solution  set via RPM command line, you should first ensure that a working license  file or other licensing method (such as floating or network-served licenses) is  already in place.  There is no license checking performed during RPM  installation.  However, if you install without a license file you will get an 'cannot check out license' error when you try to use the compiler.<br /></span></p>
<p><span style="font-family: Arial;">You are assumed to have complied with the End User  License Agreement if you are performing an RPM command line installation.   The EULA is present in the parent installation tarball, and again duplicated  inside the 'rpm' directory.  Please read this license agreement.  It is assumed you agree to this license agreement if you proceed with an rpm installation.<br /></span></p>
<p><span style="font-family: Arial;">Once a license file or license method is in place, the  user can install the products directly with these simple steps:</span></p>
<ul>
<li><span style="font-family: Arial;">Login as root or 'su' to root</span></li>
<li><span style="font-family: Arial;">'cd' to the package/rpm directory ( e.g. /tmp/l_cproc_p_11.1.038/rpm  	)</span></li>
<li><span style="font-family: Arial;">Run the install command</span></li>
</ul>
<blockquote>
<p><b><span style="font-family: Courier;">prompt&gt; rpm -i *.rpm</span></b></p>
</blockquote>
<p><span style="font-family: Arial;">This completes without error in most cases.  If some  system-level prerequisites, for required system libraries for example, are not  met by the target operating system, a dependency warning may be returned by the  rpm install.  There are no embedded detailed dependency checks inside the  RPM install capabilities for required commands such as g++ or for optional  requirements such as a valid supported operating system or supported JRE.   The embedded requirements are kept simple to ease installation for the general  case, with two primary exceptions.  The first is requirement for a /usr/lib/libstdc++.so.5  to exist on the target system, and must match in 64bit or 32bit (there will be 2 copies of this library, one 64bit and one 32bit in 2 separate /lib paths, if you wish to be able to compile in 64bits and 32bits).  If libstdc++.so.5 is not available for your distribution but libstdc++.so.6 is, make libstdc++.so.5 a symbolic link to the .6 version.  <br /></span></p>
<p><span style="font-family: Arial;">The second requirement is that the target operating  system have at least the 3.0 version of "lsb" component installed.   Availability of this LSB component will, in the vast majority of cases, also  ensure that other necessary system level libraries are available.  See  <a href="#lsb">LSB Support</a> below for more information on getting the 'lsb'  capability onto a target system.</span></p>
<p><span style="font-family: Arial;">If you believe that you have effectively  installed the correct requirements on the target system and the dependency  failures still persist, there is a fallback option, the "--nodeps" (<i>dash dash  nodeps</i>) rpm switch.  Invoking 'rpm -i' with the --nodeps option will  allow the rpm installation to succeed in most cases. </span></p>
<blockquote>
<p><b><span style="font-family: Courier;">prompt&gt; rpm -i --nodeps *.rpm</span></b></p>
</blockquote>
<p><span style="font-family: Arial;">Again, this will get you past the perceived  dependency issues, which may be unique to a particular distribution of Linux and  not really a problem for the resulting installation.  But there is no  assurance of complete success other than testing the resulting installation.</span></p>
<h3><span style="font-family: Arial;">Other Special RPM Install Cases</span></h3>
<p><span style="font-family: Arial;">If you are installing RPMs using the rpm command line,  but using a multi-architecture package (such as the "combo" IA-32 / Intel64  package or a DVD package), you may want to install all of the RPMs that match  their specific target machine's architecture.  Or, if you are installing  onto an Intel64 system and want to include both the IA-32 and Intel64  components, you may want both of these included.  Here are some example  rpm command line invocations:</span></p>
<blockquote>
<p><b><span style="font-family: Courier;">prompt&gt; rpm -i *.noarch.rpm *.i486.rpm</span></b></p>
<p><span style="font-family: Arial;">(installs all components needed for operation of IA-32  	products)</span></p>
<p><b><span style="font-family: Courier;">prompt&gt; rpm -i *.noarch.rpm *.i486.rpm  	*.x86_64.rpm</span></b></p>
<p><span style="font-family: Arial;">(installs all components needed for operation of IA-32  	and Intel64 products)</span></p>
<p><b><span style="font-family: Courier;">prompt&gt; rpm -i *.noarch.rpm *.ia64.rpm </span> </b></p>
<p><span style="font-family: Arial;">(installs all components needed for operation of IA-64  	products)</span></p>
</blockquote>
<p><span style="font-family: Arial;">Certain Linux distributions do not like the idea of two  RPM files having the same base name.  For example, the rpm versions of  certain distros might complain that there is more than one instance of   intel-cproc023-11.1-1 on the command line when installing both the IA-32 and  Intel64 RPMs onto the same machine.  For these distros, use the "--allmatches"  ( <i>dash dash allmatches </i>) command line switch:</span></p>
<blockquote>
<p><b><span style="font-family: Courier;">prompt&gt; rpm -i --allmatches *.noarch.rpm  	*.i486.rpm *.x86_64.rpm</span></b></p>
</blockquote>
<p><span style="font-family: Arial;">Optionally, you may need to use the --force ( dash  dash force ) switch in some cases.</span></p>
<h3><span style="font-family: Arial;">Customizing the RPM Command Line</span></h3>
<p><span style="font-family: Arial;">The rpm command has a long list of available options,  including hooks to install from FTP and HTTP RPM repositories, features to  examine contents of installed RPM-based programs and uninstalled RPM package  files, etc.  Most of these are beyond the scope of this document.  See  the <a href="#links">Links</a> section for references to external documentation  on RPM.  Here are a couple of additional RPM switches, however, which may  be routinely useful.</span></p>
<blockquote>
<p><b><span style="font-family: Courier;">prompt&gt; rpm -i --prefix /opt/intel/Compiler/11.1/035TEST  	*.rpm</span></b></p>
<p><span style="font-family: Arial;">( tells rpm to use /opt/intel/Compiler/11.1/023TEST as  	the target install directory)</span></p>
<p><b><span style="font-family: Courier;">prompt&gt; rpm -i --replacefiles *.rpm</span></b></p>
<p><span style="font-family: Arial;">( tells rpm to replace any existing files on the  	system using the new RPM files)</span></p>
<p><b><span style="font-family: Courier;">prompt&gt; rpm -i --replacepkgs *.rpm</span></b></p>
<p><span style="font-family: Arial;">( tells rpm to replace any existing package on the  	system using the new RPM files, even if they are already installed ... this  	may be useful in test applications where newer versions of a package with  	the same name are being tested )</span></p>
</blockquote>
<h3><span style="font-family: Arial;">Uninstallation Using RPM</span></h3>
<p><span style="font-family: Arial;">Since the installation of Linux Compiler Professional 11.1  packages includes in its deliver all of the uninstall scripts, the easiest way  to perform a product uninstall is to simply run the uninstall script that is  created by the install process.  If you have a need to automate rpm-based  uninstalls, however, a couple of "tricks" can be employed to make this simpler.    These should be used with caution, as with any system command performed from a  privileged account.</span></p>
<p><span style="font-family: Arial;">Here is an example command line that will remove all RPM  packages from a Linux Compiler Professional 11.1 package number "038":</span></p>
<blockquote>
<p><b><span style="font-family: Courier;">prompt&gt; rpm -e --allmatches `rpm -qa | grep intel-cpro | grep  	038 | grep 11-1`</span></b></p>
<p><span style="font-family: Arial;">Note use of back-quotes.</span></p>
</blockquote>
<p><span style="font-family: Arial;">Some Linux distributions will also complain about   "multiple matches" during the uninstall process.  In this case, the "--allmatches"  switch mentioned above can also be employed here.</span></p>
<h3><span style="font-family: Arial;">A Short Word on Updates</span></h3>
<p><span style="font-family: Arial;">The rpm structure and command set support the application  of updates or "patches" to existing installations.  For example a <i><b> util-1.1-2.rpm</b></i> package may be issued that adds fixed content to some  pre-existing <i><b>util-1.1-1.rpm</b></i>.   The existing release  process for Linux Compiler Professional includes support for "version  co-existence" or multiple installs of separate product versions.  So each  new iteration of the product is unique from the previous version.  This  means that Compiler Professional 11.1 packages are not available in "patch"  form.  All product releases are stand-alone versions.  So use of the  'rpm -U' upgrade capability is not supported by our product delivery model at  this time.  <br /></span></p>
<h2></h2>
<h2><span style="font-family: Arial;"><a name="lsb"></a>LSB Support</span></h2>
<p><span style="font-family: Arial;">LSB, or Linux Standard Base, is an effort sponsored by the  Linux Foundation (<a href="http://www.linuxfoundation.org">http://www.linuxfoundation.org</a>)  to improve the interoperability of Linux operating systems and application  software.  Intel is a major participant in Linux Foundation activities and  has embraced LSB as a viable means of improving our products and our customers'  use of those products.  To that end, we have included establishing LSB  compliance as a part of our goals for our products and software packages in the  future.</span></p>
<p><span style="font-family: Arial;">For the purposes of the Linux Compiler Professional 11.1  release, our primary objective is to product packages that adhere to LSB  packaging requirements.  Most of the RPM changes mentioned above were done  for this purpose.  To be specific, however, we should draw a distinction  between product compliance and package compliance.  Because our compiler  products must support a vast array of legacy constructs, the applications  themselves may or may not be "certifiable" within the LSB guidelines, but our  <b>packages, i.e. our RPMs</b> and install programs should be.  This is the  primary reason for inclusion of the "lsb &gt;= 3.0" embedded requirements being  added to our RPMs. </span></p>
<span style="font-family: Arial;"></span>
<p><span style="font-family: Arial;">Some of these Linux distributions come with LSB support  already included in the operating system by default (e.g. SLES11).  For  others, an external or optional package must be installed.  If supporting  an environment that is using RPM command line installation and want to enable  that site / system / systems to be able to install without using the dreaded "--nodeps"   option, the best best is to acquire and install the companion LSB solution for  that operating system.</span></p>
<p><span style="font-family: Arial;">The Linux Foundation website contains links to download  resources for LSB, as to many of the vendor-specific support sites.  Check  out these sites for information on adding LSB support to an existing operating  system.</span></p>
<p><span style="font-family: Arial;">For RPM-based systems, a user can check on the status of  LSB for their system, using a command like this:</span></p>
<blockquote>
<p><b><span style="font-family: Courier;">prompt&gt; rpm -q --provides lsb</span></b></p>
</blockquote>
<p><span style="font-family: Arial;">This will tell if an 'lsb' RPM package is already  installed and, if so, what version.</span></p>
<p><span style="font-family: Arial;">For our non-RPM supported operating systems, Ubuntu and  Debian, the privileged user can use the Debian 'apt-get' facility to easily  install the latest version of LSB supported by the specific distribution:</span></p>
<blockquote>
<p><b><span style="font-family: Courier;">prompt&gt; apt-get install lsb</span></b></p>
</blockquote>
<h2></h2>
<h2><span style="font-family: Arial;"><a name="redist"></a>Redistribution Package Installations</span></h2>
<p><span style="font-family: Arial;">Redistribution packages allow applicaitons built with the Intel compilers to be run on client systems that do not have the Intel compilers installed (i.e. end-user systems).  <b>These are ONLY needed on systems without the Intel compilers installed.</b> A redistribution package has all the Intel dynamic libraries possibly needed for a dynamically linked application.  Alternatively, you can explore to -static-intel compiler switch to statically link all required Intel libraries into an application.  Redistribution packages were officially supported with the  11.0 release.  These will again be supported for the 11.1 release.</span></p>
<p><span style="font-family: Arial;">Installation is simple.  Once you extract the  contents of the downloaded tarball (or accessing the redist contents of a  DVD/image directory or media), you should simply invoke the "install.sh" script  provided.  The user is instructed to accept a EULA, but there is no  run-time license enforcement or any other software licensing included in the  redist packages.  An uninstall script is produced during the redist install  process, which provided for removal of the contents.</span></p>
<p><span style="font-family: Arial;">A note of caution: if the redist packages are installed on  top of an existing Compiler Professional 11.1 package of the same "iteration"  (e.g. 11.1.038), it will land on and replace existing files in that compiler  installation by default.  Similarly, if the redist uninstall operation is  run and the redist and compiler packages are sharing the same directory space,  removing the redist package will break the compiler installation.  Since  the redist packages are not intended for use by compiler users on their  development machines, this should not be an issue in most environments.    But it is mentioned here in case situations come up where this might explain  problems that have occurred.</span></p>
<p> </p>
<h2><span style="font-family: Arial;"><a name="uninstall"></a>Uninstall Instructions</span></h2>
<p><span style="font-family: Arial;">As mentioned above, a standard uninstall script is  included with each product installation, regardless of whether the install was  performed using menu installs, RPM command line installs, or "silent" installs.   In all cases, using the provided uninstall script should work and is the usual  preferred method of removing installed product..  There is one uninstall  feature, however, that is undocumented and can be used to make life a little  easier.  Here's an example invocation of that feature:</span></p>
<blockquote>
<p><b><span style="font-family: Courier;">prompt&gt; /opt/intel/Compiler/11.1/038/bin/ia32/uninstall_cproc.sh  	--default</span></b></p>
</blockquote>
<p><span style="font-family: Arial;">This "--default" ( dash dash default ) option tells the  uninstall script to use the "remove all" option and remove any Compiler  Professional components associated with the specific package (in this case all  11.1.023 components, including C/C++, Fortran, IDB, MKL, TBB, and IPP, if  installed).  There is no uninstall program interaction when this switch is  used.</span></p>
<p> </p>
<p> </p>
<h2><span style="font-family: Arial;"><a name="links"></a>Links of Interest</span></h2>
<p><span style="font-family: Arial;">The following links are provided for reference  information. <br /></span></p>
<ul>
<li><span style="font-family: Arial;"><b>Maximum RPM</b> - 	<a href="http://www.rpm.org/max-rpm/">http://www.rpm.org/max-rpm/</a></span></li>
</ul>
<blockquote>
<p><span style="font-family: Arial;">Excellent on-line resource for understanding RPMs and  	their usage.</span></p>
</blockquote>
<ul>
<li><span style="font-family: Arial;"><b>Linux Foundation </b>- 	<a href="http://www.linuxfoundation.org">http://www.linuxfoundation.org</a></span></li>
</ul>
<blockquote>
<p><span style="font-family: Arial;">Industry organization supporting standardization of  	Linux operating systems and applications.</span></p>
</blockquote>
<ul>
<li><span style="font-family: Arial;"><b>Linux LSB for Fedora</b> - 	<a href="https://admin.fedoraproject.org/pkgdb/packages/name/redhat-lsb"> https://admin.fedoraproject.org/pkgdb/packages/name/redhat-lsb</a></span> </li>
<li><span style="font-family: Arial;"><b>Linux LSB for RHEL5 (update notice) </b>- 	<a href="https://rhn.redhat.com/errata/RHBA-2007-0590.html"> https://rhn.redhat.com/errata/RHBA-2007-0590.html</a></span> </li>
<li><span style="font-family: Arial;"><b>Linux LSB Info for Ubuntu</b> - 	<a href="http://packages.ubuntu.com/search?keywords=lsb"> http://packages.ubuntu.com/search?keywords=lsb</a></span></li>
</ul> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-compilers-for-linux-version-111-silent-installation-guide</link>
      <pubDate>Mon, 29 Jun 2009 13:03:02 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-compilers-for-linux-version-111-silent-installation-guide#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-compilers-for-linux-version-111-silent-installation-guide</guid>
      <category>Intel® Compilers</category>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
    </item>
  </channel></rss>