Intel® C++ Compiler 10.0 for Linux*
Beta Release Notes

Contents

Overview

This product provides tools for Linux* software developers to create applications to run at top speeds on all Intel® IA-32 processors, Intel processors with Intel® Extended Memory 64 Technology (Intel® 64) and the Intel Itanium® processors. Optimizations include support for Intel® Streaming SIMD Extensions 2 (SSE2) in the Intel Pentium® 4 and Intel Pentium® M processors, Intel® Streaming SIMD Extensions 3 (SSE3) in the Intel Pentium 4 and Intel® Core™ processors with SSE3 support, and software pipelining in the Intel Itanium® 2 processor. Inter-procedural optimization (IPO) and profile-guided optimization (PGO) can provide greater application performance. Intel Compilers support multi-threaded code development through autoparallelism and OpenMP* support.

Additional information on the Intel Software Development Products is available at http://www.intel.com/software/products/ .

Product Contents

This product contains the following components:

Eclipse* Integrated Development Environment (IA-32 and IA-64 Systems Only)

The Intel® C++ Compiler for Linux includes a compiler integration into Eclipse*, version 3.2.x, and the C/C++ Development Tools* (CDT), version 3.1.x.

Eclipse is an open source software development project dedicated to providing a robust, full-featured, commercial-quality, industry platform for the development of highly integrated tools. It is an extensible, open source Integrated Development Environment (IDE).

The CDT (C/C++ Development Tools) project is dedicated to providing a fully functional C/C++ IDE for the Eclipse platform. CDT is layered on Eclipse, and provides a C/C++ development environment perspective.

The Intel C++ Compiler integration with the Eclipse/CDT IDE lets you develop, build, and run your Intel C/C++ projects in a visual, interactive environment.

See Also

What's New in Version 10.0

The following section discusses new features and changes in the Intel C++ Compiler version 10.0 and updates to 10.0. Please see the separate release notes for the Intel Debugger.

New and Changed Command Line Options

The following is a listing of command line options that are new or have changed since the initial version 9.1 release. Please refer to the compiler documentation for more information on these options.

-alias-const[-]
Determines whether the input/output buffer rule is applied to functions with pointer-type arguments. (Default: off)
-[no-]check-uninit
Determines whether run-time checking occurs for uninitialized variables. (Default: off)
-cxxlib-nostd
Prevents the compiler from linking with the standard C++ library. (Default: off)
-diag-<type> <diag-list>
Controls the display of diagnostic information (Default: off)
-diag-dump
Tells the compiler to print all enabled diagnostic messages and stop compilation (Default: off)
-diag-enable sv-include
Specifies that include files should also be considered by the Static Verifier
-[no-]diag-id-numbers
Tells the compiler to display diagnostic messages by using their ID number values (Default: on)
-fargument-noalias-global
Specifies that arguments do not alias each other and do not alias global storage. (Default: off)
-fast
Enables a set of options for improved performance. The options have changed in this release. Please see note below.
-f[no-]exceptions
Enables exception handling table generation (Default: on for C++, off for C)
-f[no-]instrument-functions
Determines whether function entry and exit points are instrumented (Default: off)
-f[no]-keep-static-consts
Tells the compiler to preserve allocation of variables that are not referenced in the source (Default: off)
-fmudflap
Tells the compiler to instrument risky pointer operations to prevent buffer overflows and invalid heap use (Default: off)
-fp-speculation=<mode>
Tells the compiler the mode in which to speculate on floating-point operations (Default: fast)
-[no-]func-groups
Enables or disables function grouping if profiling information is enabled. (IA-32 and Intel® 64 only, default: off)
-gcc-sys
Defines GNU macros only during compilation of system headers. (Default: off)
-help [category]
Displays all available compiler options or a category of compiler options (Default: off)
-ipo-jobs<n>
Specifies the number of commands (jobs) to be executed simultaneously during the link phase of Interprocedural Optimization (IPO)
-nostdinc++
Prevents the compiler from searching for header files in the standard directories for C++; causes it to search the other standard directories. (Default: off)
-[no-]opt-class-analysis
Tells the compiler to use C++ class hierarchy information to analyze and resolve C++ virtual function calls at compile time (Default off)
-par-schedule-<keyword>[[]n]
Specifies a scheduling algorithm for DO loop iterations
-save-temps[-]
Tells the compiler to save intermediate files created during compilation (Default: off)
-shared-intel
Causes Intel-provided libraries to be linked in dynamically (Default: all libraries linked statically except libguide)
-shared-libgcc
Links the GNU libgcc library dynamically. (Default: off)
-static-intel
Causes Intel-provided libraries to be linked in statically (Default: all libraries linked statically except libguide)
-static-libgcc
Links the GNU libgcc library statically. (Default: off)
-tcheck [<mode>]
Indicates the method of analysis to be performed for OpenMP threaded applications (Default: off)
-tcollect
Inserts instrumentation probes calling the Intel® Trace Collector API (Default: off)
-trigraphs
Supports ISO C trigraphs; also enabled in ANSI and C99 modes. (Default: off)
-Weffc++
Enables warnings based on certain C++ programming guidelines. (Default: off)
-W[no-]missing-declarations
Enables warnings for global functions and variables without prior declaration. (Default: off)
-Wnon-virtual-dtor
Issue a warning when a class appears to be polymorphic, yet it declares a non-virtual one. (Default: off)
-Wreorder
Issue a warning when the order of member initializers does not match the order in which they must be executed. (Default: off)
-W[no-]strict-prototypes
Enables warnings for functions declared or defined without specified argument types. (Default: off)
-Wunused-variable
Enables warnings for functions declared or defined without specified argument types. (Default: off)
-xO
Specifies that the compiler is to generate SSE3, SSE2 and SSE instructions and to optimize for the Intel® Pentium® 4 processor and Intel® Xeon® processor with SSE3.

Deprecated and Removed Command Line Options

For information on command line options that are either deprecated (still functional but to be removed in a future version) or removed (no longer supported), please refer to the section Compiler Options > Deprecated and Removed Compiler Options in the on-disk documentation.

Alternate Command Line Options

Many command line options have an older spelling where underscores (“_”) instead of hyphens (“-“) connect the words in the option name. The older spelling is still a valid alternate option name.

Syntax of -diag-file Changed

The syntax of the -diag-file command line option has changed from earlier beta versions of the 10.0 compiler. Previously, the syntax was:

-diag-file [filename]

It is now:

-diag-file[=filename]

An equal sign now separates the filename from the option name rather than a space. This change was required to eliminate ambiguity if the filename was omitted but the option was followed by other text on the command line.

Meaning of -fast Changed

The -fast option is a shorter way of specifying a set of options that generally improve run-time performance. As documented, the set of options may change over time. In version 10.0, -fast sets -xT, whereas in earlier versions it set -xP. If this change is not appropriate for you, you must specify the individual options you want instead of using -fast. Please see the Compiler Options section of the on-disk documentation for further information.

New Optimized Exception Handling Implementation

This version features a complete new design of exception handling with simpler internal presentation to provide more opportunities for optimization. Improvements include:

"Mudflap" Pointer Use Checking

"Mudflap" is a pointer user checking technology based on compile-time instrumentation. It adds protective code to a variety of potentially unsafe C/C++ constructs that detect actual erroneous uses at run time. The class of errors detected includes:

C++ Rapid Type Analysis

C++ Rapid Type Analysis uses C++ class hierarchy information to provide information to the compiler so that it can resolve more virtual function targets at compile time thus improving performance.

New Manual CPU Dispatch cpuid Code

The cpu_dispatch and cpu_specific keywords now accept the cpuid code core_2_duo_ssse3 for Intel® Core™2 Duo processors and Intel® Xeon® processors with Supplemental Streaming SIMD Extensions 3 (SSSE3).

Improved Parallelizer and Vectorizer

This version features a complete redesign of the optimizer that integrates parallelization (IA-32, Intel® 64 and IA-64) and vectorization (IA-32 and Intel® 64) at O2 and O3 optimization levels with memory and loop optimizations.

Performance can be substantially improved by:

New and Enhanced Optimization Reports for Advanced Loop Transformations

Loop Transformation (HLO) Optimization reports tell you why the compiler was unable to apply loop interchange transformations on a set of loops and suggests loop interchange if the reported bottlenecks can be removed by source changes. These reports have been enhanced to provide more detailed information and to be easier to understand.

Static Verifier

Static Verifier is a new compiler feature which performs static analysis of a program across multiple source files. It can detect different kinds of defects and doubtful or inconsistent uses of language features in user code and report them according to their severity level. Static Verifier understands C/C++ and Fortran code and can also perform analysis of OpenMP directives.
 
In this release, when Static Verifier is enabled the linker is not invoked so an executable or static/dynamic link library is not produced, object files that were produced as a result of invocation of Static Verifier are not valid and should not be used for generating of real executable or static/dynamic link libraries. The current usage model is that Static Verifier is added as an alternate build option to produce a diagnostic report.

For more information, please refer to the section on Building Applications > Error Handling > Handling Compile Time Errors > using Static Verification Diagnostic Options in the on-disk documentation.

NOTE: In this update semantics of values for the following Static Verifier's options has been changed: /Qdiag-enable:sv[{1|2|3}] (for Windows) and -diag-enable sv[{1|2|3}] (for Linux and MacOS). The meaning of values sv[{1|2|3}] has been changed from level of analysis (brief, default/medium, verbose) to severity level of analysis ("all critical errors", "all errors", "all errors and warnings") correspondingly. The changed semantics give a more flexible way to filter messages from the Static Verifier by severity level, where severity levels are specified as:

Using Static Verifier in the Eclipse* IDE

When Static Verifier support is enabled within the IDE, the customary final build target (e.g. an executable image) is not created. As such, we recommend that a separate "Static Verification" configuration be created, by cloning the existing Debug (development) configuration, for use when static verification is desired.

Provisions for Eclipse* Support

The compiler and debugger integrations into Eclipse* and the C/C++ Development Tools* (CDT) are provided for the 10.0 Intel C++ compiler and idb debugger. However, the common Eclipse* base components (the Eclipse* Platform Binary, Eclipse* C/C++ Development Tools* (CDT), and a JRE), which are required by the compiler and debugger integrations, are no longer provided on the compiler kit. Detailed instructions for freely obtaining these common components are provided in the Installation Guide.

We have verified the 10.0 Intel integration support with:

but any instance of Eclipse* version 3.2.x, C/C++ Development Tools* (CDT, version 3.1.x and a JRE (or Java Platform) that Eclipse* version 3.2.1 claims to support should function properly.

For additional information on Eclipse* version 3.2.1, see the Eclipse* release notes and readme at the following URL's:

http://www.eclipse.org/eclipse/development/readme_eclipse_3.2.1.html http://download.eclipse.org/eclipse/downloads/drops/R-3.2.1-200609210945/index.php

libimf Linking Change on Intel® 64

In some earlier versions of Intel C++ Compiler, applications built for Intel® 64 linked by default to the dynamic (shared object) version of libimf, even though other libraries were linked statically. In the current version, libimf is linked statically unless -shared-intel is used. This matches the behavior on IA-32 systems. You should use -shared-intel to specify the dynamic Intel libraries if you are linking against shared objects built by Intel compilers.

A side effect of this change is that users may see the following message from the linker:

warning: feupdateenv is not implemented and will always fail

This warning is due to a mismatch of library types and can be ignored. The warning will not appear if -shared-intel is used.

New -early-template-check Switch

Even though recent versions of g++ (3.4 and newer) parse template definitions, they do very little semantic checking of such definitions. Most of the semantic checking is delayed until an actual instantiation is done. As a result, g++ accepts certain unusable templates provided they are not actually used in the program. A new option is available (-early-template-check) to allow Intel C++ users to check the semantics of function template prototypes before instantiation.

Example:

 class A {};
   template <class T> struct B {
     B () {}; // error with -early-template-check): no initializer for
              // reference member "B<T>::a"
     A& a;
   };

Note that this switch will work in gcc 3.4 and later compatibility modes only (i.e. -gcc-version=340 and later).

-ansi no longer implies -fp-port

In previous versions of the compiler, the -ansi switch implied -fp-port. In version 10.0, -ansi no longer implies -fp-port. As a result, the compiler generates more efficient floating-point code under -ansi, especially when using x87 instructions to implement FP calculations. Use -fp-port in addition to -ansi if it is important to round FP data to source precision at assignments and casts.

-cxxlib-icc no longer supported for C++

This release requires using the GNU g++* C++ libraries when linking C++ applications, rather than those from Dinkumware* supported in previous releases. As a result of this change, this release requires systems with gcc 3.2 or higher installed.

Initializing Variables of Type __m64 in Intel® 64-based Applications

The __m64 data type used to be treated as a scalar, at least to the extent of being able to statically initialize __m64 data with an integer literal. But for compatibility with directions being taken by other compilers supporting MMX(TM), we are dropping support for that feature. As a result, an initializer for a variable of __m64 type must be enclosed in braces. If your application uses a scalar to initialize such variables, the compiler will give an error message such as:

error: a value of type "unsigned long long" cannot be used to initialize an entity of type "const __m64"

System Requirements

Processor Terminology

Intel compilers support three platforms: general combinations of processor and operating system type. This section explains the terms that Intel uses to describe the platforms in its documentation, installation procedures and support site.

IA-32
IA-32 (Intel Architecture, 32-bit) refers to systems based on 32-bit processors supporting at least the Pentium® II instruction set, (for example, Intel® Core™ processor or Intel® Xeon® processor), or processors from other manufacturers supporting the same instruction set, running a 32-bit operating system ("Linux x86").
Intel® 64
Intel® 64 (formerly Intel® EM64T) refers to systems based on IA-32 processors which have 64-bit architectural extensions, (for example, Intel® Core™2 processor or Intel® Xeon® processor), running a 64-bit operating system ("Linux x86_64"). If the system is running a 32-bit version of the Linux operating system, then IA-32 applies instead. Systems based on the AMD* Athlon64* and Opteron* processors running a 64-bit operating system are also supported by Intel compilers for Intel® 64-based applications.
IA-64
Refers to systems based on the Intel Itanium® 2 processor running a 64-bit operating system.

Native and Cross-Platform Development

The term "native" refers to building an application that will run on the same platform that it was built on, for example, building on IA-32 to run on IA-32. The term "cross-platform" or "cross-compilation" refers to building an application on a platform type different from the one on which it will be run, for example, building on IA-32 to run on IA-64. Not all combinations of cross-platform development are supported and some combinations may require installation of optional tools and libraries.

The following list describes the supported combinations of compilation host (system on which you build the application) and application target (system on which the application runs).

IA-32 Host
Supported target: IA-32
Intel® 64 Host
Supported targets: IA-32 and Intel® 64
IA-64 Host
Supported target: IA-64

Note: Development for a target different from the host may require optional library components to be installed from your Linux Distribution.

Note: Intel® Cluster OpenMP* is a separately licensed feature and has different system requirements from that of the compilers. Please refer to the Intel Cluster OpenMP documentation for further details.

Requirements to develop IA-32 applications

Requirements to Develop Applications for Intel® 64 Architecture Systems or for AMD* Opteron* Processors

Requirements to Develop IA-64 Applications

Note on gcc Versions

The Intel compilers are tested with a number of different Linux distributions, with different versions of gcc. If you are using any of gcc 3.2.3, 3.3.3, 3.3, 3.2, 3.4, 4.0, 4.1, you can expect to be successful. However the version of binutils can impact your experience: later ones are generally better and we recommend using at least 2.14. Some Linux distributions may contain header files different from those we have tested, which may cause problems. The version of glibc you use must be consistent with the version of gcc in use.

Notes:

Use of the Eclipse* Integrated Development Environment on Red Hat Enterprise Linux AS 2.1 has the following additional requirements:

Installation

Please see the separate Installation Guide for information on installing the compiler and setting up the compiler environment. The default installation directories, referred to elsewhere in this document as <install-dir> and <idb-install-dir>, are:

Known Issues

Binary Incompatibility for OpenMP Applications

Programs compiled with the Intel Compiler version 9.0 using the -openmp switch may not run after installing the Intel Compiler version 10.0. For such programs, the loader may exit at run time with an error message about undefined symbols beginning with the string _intel (for example, _intel_fast_memset). If this occurs, please recompile the executable using the Intel Compiler version 10.0 and the loader error message should disappear.

Header Incompatibility with RedHat* Enterprise Linux* 3, Update 4 (also SGI* ProPack* 3 Service Pack 5)

In Update 4 to RedHat Enterprise Linux 3, inline assembly code was added to the file /usr/include/c++/3.2.3/ia64_redhat-linux/bits/os_defines.h. This causes the Intel C++ Compiler to fail to compile sources referencing this header. Note that this problem is not known to exist for any other version of Linux, including earlier versions of EL3 or beta versions of the next major release of RedHat Enterprise Linux. This issue also affects SGI ProPack 3 Service Pack 5.

A modified header file which corrects this problem is available from http://www.intel.com/software/products/compilers/downloads/os_defines.h.90

A good place to put the modified file is in the substitute headers directory of your installed compiler. For example, <install-dir>/substitute_headers/c++/bits/os_defines.h. The path must end with bits/os_defines.h. If you place it there the compiler will find it automatically. You should find an existing installer-created directory <install-dir>/substitute_headers and should create the sub-directory path c++/bits underneath it.

-ipo_obj option Is no longer supported

The -ipo_obj option, which forced generation of direct object code, is no longer supported. If the option is specified, a warning is given and the effect is as if -ip was specified instead.

OpenMP limitations

Compile time slow down when using both -g and inlining

There will be an increase in compile time when -g is used together with inlining. Inlining can happen if the user specifies -ipo, -ip or compiles a C++/C99 program at option levels -O1 or above. This is due to the generation of debug information. For many applications, this combination of compiler options will not increase compile time or compile-time memory use.

Compiler hang on version query on glibc 2.2.4-26

We have identified a problem with glibc version 2.2.4-26 that shipped with the original version of Red Hat AS2.1. This version causes a compiler hang on the command "icc -v or icc -V (with no files to compile). Upgrading to glibc 2.2.4-31.7 fixes the problem. If you have taken any updates to your AS2.1 you will not see this problem. There was also a respin of the original AS2.1 that fixed this problem so only if you have a very early installation of AS2.1 that has never been updated will you see this issue.

Incorrect output or miscompare on SPEC* CPU2006* 471.omnetpp on x86_64 systems

We have identified a problem with the gcc binutils linker in some Linux distributions for x86_64 (Intel® 64 and similar) systems. This problem manifests itself when running the SPEC* CPU2006* benchmark test 471.omnetpp, resulting in incorrect output, and has been reproduced using varying versions of the Intel C++ compiler as well as with gcc. Not all Linux distributions have the affected linker. The Bugzilla reports for this problem are http://sourceware.org/bugzilla/show_bug.cgi?id=2655 and http://sourceware.org/bugzilla/show_bug.cgi?id=2657

Please contact your Linux distributor to find out if your distribution has the affected linker.

-relax no longer passed to linker on Intel Itanium-based systems

As of version 10.0, the compiler driver no longer passes the -relax switch to the linker on Itanium-based systems, as this conflicts with the -r option. The -relax option is not needed as it is the default when using binutils 2.11.90.0.27 or later - 2.14 is recommended. If you must use an older binutils and wish to specify the -relax option, use -Xlinker -relax on the compile command which invokes the linker.

ld warning about libunwind.so.7 on SLES 10

When applications are built using the Intel compiler on SUSE LINUX Enterprise Server 10, you may see a warning similar to the following:

ld: warning: libunwind.so.7, needed by /usr/lib/gcc/ia64-suse-linux/4.1.0/../../..//libgcc_s.so, may conflict with libunwind.so.6

A workaround is to add the following line to icc.cfg:

-L /usr/lib

This issue is expected to be resolved in a future release of the Intel compiler.

Limited debug information with automatic CPU dispatching (-ax*)

Compilation using -ax{W|N|B|P} results in two copies of generated code for each function. One for IA-32 generic code and one for CPU specific code. The symbol for each function then refers to an Auto CPU Dispatch routine that decides at run-time which one of the generated code sections to execute. Debugger breakpoints that are set on these functions by name cause the application to stop in the dispatch routine. This may cause unexpected behavior when debugging. This issue may be addressed in a future version of the Intel Debugger and Compilers.

Cannot debug or view traceback for IA-32 programs built without -fp

Compilation using -fp specifies that the IA-32 EBP register be used as a frame pointer rather than a general purpose register. Debuggers and traceback handlers may not be able to properly unwind through a stack that contains a call to a function that is compiled without -fp in effect. If you compile with -g or -O0, -fp is implicitly enabled, but not if you specify a higher optimization level explicitly (such as -O2). If you intend to use the debugger or traceback on an application, and are using some level of optimization higher than -O0, you should also specify -fp to ensure that the debugger and traceback handler can use frame pointers.

GNU assembler may not recognize -xP generated code

Older versions of the GNU Assembler may not be able to process assembly code generated by compiling with the -[a]xP option. Use binutils version 2.14.90.0.4.1 or later, or FSFbinutils 2.15 or later if this is an issue for you.

Using older gdb versions with Intel Compilers

Intel compilers for Linux generate Dwarf2-format debugging information, including several advanced features in Dwarf2 such as declarations nested within classes. Older gdb debuggers, such as version 5.3.90-*, are sometimes unable to correctly handle these Dwarf features. For best success on source code which uses the full expressiveness of the C++ language, please consider using gdb version 6.1 or newer.

Use idb with Extended Debug Information

If you use the -debug keywords inline_debug_info, semantic_stepping, variable_locations or extended, you should use the Intel Debugger (idb), as other debuggers may not understand the extended information and may behave unpredictably. We are working with the developers of other debuggers towards their adding support for the extended debug information.

Technical Support

Your feedback is very important to us. To receive technical support for the tools provided in this product and for technical information including FAQ's and product updates, please visit http://www.intel.com/software/products/support .

Note: If your distributor provides technical support for this product, please contact them for support rather than Intel.

For information about the Intel C++ Compiler's Users Forums, FAQ's, tips and tricks, and other support information, please visit: http://support.intel.com/support/performancetools/c/linux/. For general support information please visit http://www.intel.com/software/products/support/.

Submitting Issues

Steps to submit an issue:

  1. Go to http://www.intel.com/software/products/support and click on the link for Intel® Premier Support.
  2. Log in to the site. Note that your username and password are case-sensitive.
  3. Click on the "Go" button next to the "Product" drop-down list.
  4. Click on the "Submit Issue" link in the left navigation bar.
  5. Choose "Development Environment (tools,SDV,EAP)" from the "Product Type" drop-down list.
  6. If this is a software or license-related issue, choose "Intel(R) C++ Compiler, Linux*" from the "Product Name" drop-down list.
  7. Enter your question and complete the fields in the windows that follow to successfully submit the issue.

Note: Please notify your support representative prior to submitting source code where access needs to be restricted to certain countries to determine if this request can be accommodated.

Guidelines for problem report or product suggestion:

  1. Describe your difficulty or suggestion.
    For problem reports please be as specific as possible, so that we may reproduce the problem. For compiler problem reports, please include the compiler options and a small test case if possible.
  2. Describe your system configuration information.
    Get the version of glibc and kernel with following commands:
        > uname -a
        > rpm -qa | grep glibc
    If you don't have rpm installed, use the command below:
        > ls /lib/libc*
    and copy the information into the corresponding Intel® Premier Support fields.

    Get the Intel C++ Compiler's Package ID with the following commands:
        > icc -V
    and copy the "Package ID" (e.g. l_cc_p_10.0.xxx) from the output into the corresponding Intel® Premier Support field. Please include any other specific information that may be relevant to helping us to reproduce and address your concern.

  3. If you were not able to install the compiler or cannot get the Package ID, enter the filename you downloaded as the package ID.

Resolved Issues

Please review <package ID>_README (e.g. l_cc_p_10.0.xxx_README), available for download from Intel® Registration Center Product Downloads, to see which issues have been resolved in the latest version of the compiler.

Compiler Error Source Reducer (CESR)

Compiler Error Source Reducer (CESR) is a set of utilities which are useful individually or collectively in gathering, reducing, pinpointing, protecting, documenting, and bundling test cases comprised of C/C++ or Fortran source code. It can be helpful if you have a large application for which you want to extract a small test case for submission to Intel® Premier Support. CESR can be downloaded from Intel® Registration Center Product Downloads. Select your product and in the version dropdown, select CESR. CESR is unsupported and should be considered experimental, but we welcome your feedback on it through Intel® Premier Support. CESR requires prior installation of Python 2.2 or newer.

Documentation

You can view the Intel compiler and related HTML-based documentation with your Web browser. You should use a Web browser that supports JavaScript (such as Firefox*), so it can which provide full navigation, search, index look-up, and hyperlink capabilities amongst the online help files PDF versions of most manuals are available online at http://developer.intel.com/software/products/compilers/clin/docs/manuals.htm .

The documentation is installed in the <install-dir>/doc directory. An HTML index document can be found at <install-dir>/doc/Doc_Index.htm . The Intel® Debugger Manual is provided in HTML form in the Intel® Debugger doc directory.

For information on the GNU glibc C language library, documentation can be obtained from the Linux OS vendor or from the GNU web site, www.gnu.org.

Viewing Manpages

The icc(1) manpage provides a list of command-line options and related information for the icc and icpc compiler commands. To display the icc(1) manpage, type the following command after you set up your environment by using a source command to execute the <install-dir>/bin/iccvars.*sh file:
$ man icc
The man command provides single keys or key combinations that let you scroll through the displayed content, search for a string, jump to a location, and perform other functions. For example, type the z to view the next screen or w to view the previous screen. To obtain help about the man command, type the h key; when you are done viewing help, type the q key to return to the displayed manpage. To search, type / character followed by the search string (/string) and press Enter. After viewing the man command text, type q to return to the shell command prompt.

Viewing Documentation

The HTML documentation format has been tested to work with web browsers shipped on supported Linux* distributions. PDF versions of the compiler documentation are available at: http://developer.intel.com/software/products/compilers/clin/docs/manuals.htm

Additional Information

Related Products and Services

Information on Intel software development products is available at http://www.intel.com/software/products.

Some of the related products include:

Disclaimer and Legal Information

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications.

Intel may make changes to specifications and product descriptions at any time, without notice.

Developers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Improper use of reserved or undefined features or instructions may cause unpredictable behavior or failure in developer’s software code when running on an Intel processor. Intel reserves these features or instructions for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from their unauthorized use.

The software described in this document may contain software defects which may cause the product to deviate from published specifications. Current characterized software defects are available on request.

This document as well as the software described in it is furnished under license and may only be used or copied in accordance with the terms of the license. The information in this document is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Intel Corporation. Intel Corporation assumes no responsibility or liability for any errors or inaccuracies that may appear in this document or any software that may be provided in association with this document. Except as permitted by such license, no part of this document may be reproduced, stored in a retrieval system, or transmitted in any form or by any means without the express written consent of Intel Corporation.

BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino logo, Core Inside, FlashFile, i960, InstantIP, Intel, Intel logo, Intel386, Intel486, Intel740, IntelDX2, IntelDX4, IntelSX2, Intel Core, Intel Inside, Intel Inside logo, Intel. Leap ahead., Intel. Leap ahead. logo, Intel NetBurst, Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, Intel StrataFlash, Intel Viiv, Intel vPro, Intel XScale, IPLink, Itanium, Itanium Inside, MCS, MMX, Oplus, OverDrive, PDCharm, Pentium, Pentium Inside, skoool, Sound Mark, The Journey Inside, VTune, Xeon, and Xeon Inside 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.

Copyright (C) 2007, Intel Corporation.