Intel® C++ Compiler for MeeGo*, Linux* Release Notes

Installation Guide and Release Notes 
20 May 2011

1 Introduction

The Intel AppUp™ SDK Suite for MeeGo* provides a compiler, debugger and high performance libraries for developing 32-bit applications for the MeeGo* operating system.

The Intel AppUp™ SDK Suite for MeeGo* integrates into Qt Creator*.

 

This document provides system requirements, installation instructions, issues and limitations, and legal information.

1.1 Product Contents 

 

Intel AppUp™ SDK Suite for MeeGo* - Intel® C++ Compiler for MeeGo*, Linux* hosted with cross and local compilers for Linux* simulator and MeeGo* targets includes the following components:

 

Component

Version

Intel® C++ Compiler

12.0

Intel® Debugger

Build 74.566.1

Intel® Integrated Performance Primitives

7.0

Intel® Threading Building Blocks

3.0

1.1.1 Intel® Integrated Performance Primitives Cryptography Libraries 

Due to United States export laws, the cryptography component of the Intel IPP library is distributed separately and requires a special registration process. To obtain the cryptography component follow the instructions contained in this article: Obtaining the Intel® IPP Library Cryptography Components for the Intel AppUp™ SDK Suite for MeeGo* available at http://appdeveloper.intel.com/en-us/article/obtaining-ipp-cryptography-for-intel-appup-sdk-for-meego.

1.2 System Requirements 

 

For an explanation of architecture names, see

http://software.intel.com/en-us/articles/intel-architecture-platform-terminology/

Requirements to develop applications with cross-platform tools for MeeGo* targets

 

  • A PC based on an IA-32 or Intel® 64 architecture processor supporting the Intel® Streaming SIMD Extensions 3 (Intel® SSE3) instructions (Intel® Core™2 Duo processor or later, Intel® Atom™ processor, or compatible non-Intel processor)
  • 1GB of RAM (2GB recommended)
  • 500MB free disk space for all features
  • One of the following Linux* distributions for 32-bit only (Qemu does not support 64-bit) (this is the list of distributions tested by Intel, other distributions may or may not work and are not recommended – please refer to Technical Support if you have questions):
    • Fedora* 12, 13
    • Ubuntu* 9.10, 10.04
    • MeeGo* v1.2 for Netbooks*
  • MeeGo* SDK v1.2 

 

Requirements to develop applications with local tools for the simulator

 

  • A PC based on an IA-32 or Intel® 64 architecture processor supporting the Intel® Streaming SIMD Extensions 3 (Intel® SSE3) instructions (Intel® Core™2 Duo processor or later, Intel® Atom™ processor, or compatible non-Intel processor)
  • 1GB of RAM (2GB recommended)
  • 500MB free disk space for all features
  • One of the following Linux* distributions (this is the list of distributions tested by Intel, other distributions may or may not work and are not recommended – please refer to Technical Support if you have questions):
    • Ubuntu* 9.10, 10.04
  • MeeGo* SDK v1.2

 

Requirements to run applications for tablets

  • Intel® Atom™ N330 processor or later (Intel® Atom™ N450 processor recommended)
  • MeeGo* developer preview for tablets

 

Requirements to run applications for netbooks

  • Intel® Atom™ N270 processor or later (Intel® Atom™ N450 processor recommended)
  • MeeGo* v1.2 for netbooks

1.3 Technical Support, Documentation and Samples

 

For information about how to find Technical Support, product documentation and samples, please visit http://appdeveloper.intel.com/en-us/article/intel-appup-sdk-suite-meego-support-articles.

 

Optimization Notice

Intel® compilers, associated libraries and associated development tools may include or utilize options that optimize for instruction sets that are available in both Intel® and non-Intel microprocessors (for example SIMD instruction sets), but do not optimize equally for non-Intel microprocessors.  In addition, certain compiler options for Intel compilers, including some that are not specific to Intel micro-architecture, are reserved for Intel microprocessors.  For a detailed description of Intel compiler options, including the instruction sets and specific microprocessors they implicate, please refer to the “Intel® Compiler User and Reference Guides” under “Compiler Options."  Many library routines that are part of Intel® compiler products are more highly optimized for Intel microprocessors than for other microprocessors.  While the compilers and libraries in Intel® compiler products offer optimizations for both Intel and Intel-compatible microprocessors, depending on the options you select, your code and other factors, you likely will get extra performance on Intel microprocessors.

Intel® compilers, associated libraries and associated development tools may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors.  These optimizations include Intel® Streaming SIMD Extensions 2 (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel® SSE3), and Supplemental Streaming SIMD Extensions 3 (Intel® SSSE3) instruction sets and other optimizations.  Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel.  Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors.

While Intel believes our compilers and libraries are excellent choices to assist in obtaining the best performance on Intel® and non-Intel microprocessors, Intel recommends that you evaluate other compilers and libraries to determine which best meet your requirements.  We hope to win your business by striving to offer the best performance of any compiler or library; please let us know if you find we do not.

Notice revision #20101101

2 Installation Notes

 

To begin installation, unpack the downloaded file into a writeable directory of your choice using the command:

tar xvfz name-of-downloaded-file

Then change the directory (cd) to the directory containing the unpacked files and begin the installation using the command:

./install.sh

 

Follow the prompts to complete installation.

2.1 Known Installation and Configuration Issues

  • If you have enabled the Security-Enhanced Linux* (SELinux*) feature of your Linux distribution, you must change the SELINUX mode to permissive before installing the Intel C++ Compiler. Please see the documentation for your Linux distribution for details. After installation is complete, you may reset the SELINUX mode to its previous value.

2.2 Default Installation Folders

 

The compiler installs, by default, under /opt/intel/appup-meego-tools/icc-meego-<n>.<pkg> (where <n> is the update number and <pkg> is the package number) – this is referenced as <install-dir> in the remainder of this document. You are able to specify a different location, and can also perform a “non-root” install in the location of your choice.

Each icc-meego-<n>.<pkg> directory contains the following directories that reference a specific update of the Intel® C++ Compiler for MeeGo* compiler:

 

  • bin – all executables
  • compiler – shared libraries and header files
  • debugger – debugger files
  • Documentation – documentation files
  • ipp – Intel® Integrated Performance Primitives libraries and header files
  • pkg_bin – symbolic link to the compiler bin directory
  • qt_support – Qt* configuration files
  • tbb – Intel® Threading Building Blocks libraries and header files

2.3 Removal/Uninstall

 

Removing (uninstalling) the product should be done by the same user who installed it (root or a non-root user). If sudo was used to install, it must be used to uninstall as well.

  • Open a terminal window
  • Type the command: <install-dir>/bin/uninstall.sh
  • Follow the prompts
  • Repeat steps 2 and 3 to remove additional versions

 

2.4 Known Issues

It is not supported if multiple MeeGo SDK versions installed on the system. We recommend you remove the old MeeGo SDK 1.1 or 1.2 preview.  

3 Intel® C++ Compiler

This section summarizes changes, new features and late-breaking news about the Intel C++ Compiler.

3.1 Establishing the Compiler Environment

 

The compilervars.sh script is used to establish the compiler environment.

compilervars.csh is also provided.

The command takes the form:

source <install-dir>/bin/compilervars.sh argument

where argument is ia32. Establishing the compiler environment also establishes the environment for the Intel® Debugger and Intel® Performance Libraries.

3.2 Compiler Options Supported in Intel® C++ Composer XE 2011 not in this release

 

For users of the Intel® C++ Compiler in other products, the following compiler options supported in those products are not available in this release:

  • -ax
  • -cilk-serialize
  • -diag-enable sc
  • -diag-sc-dir
  • -[no-]intel-extensions
  • -m64
  • -march
  • -mcmodel
  • -mcpu
  • -mkl
  • -mtune
  • -openmp
  • -par*
  • -auto-ilp32
  • -tcollect
  • -x (only valid for -xSSE3_ATOM)

 

3.3 Known Issues

Please visit the Intel AppUp SDK Suite for MeeGo* Known Issues page for the latest information.

4 Intel® Debugger (IDB)

 

The Intel® Debugger for MeeGo* is a Linux* hosted Eclipse* RCP based cross-debug solution for MeeGo* target. It works with both networked devices running MeeGo* as well as QEMU based virtual machines running MeeGo*. The Intel® Debugger for MeeGo* provides Qt* C++ class awareness providing easy value access to your C++ class based variable contents through the standard debugger variable views. It is designed to attach to any MeeGo* application that has been launched locally on the physical or virtual MeeGo* based device or that has been launched remotely through Qt Creator*. Furthermore it can deploy and launch an application on the MeeGo* target. The automatic application deployment does however only apply for the application binary itself. If there are dependencies on shared object files, those need to be copied manually.

In addition the Intel® Debugger for MeeGo* offers the full range of in depth threading awareness, thread level breakpoints, and run control with thread grouping and thread freezing and thawing.

In this version, the idb command invokes the full GUI interface. To get the command-line interface, use idbc. The debugger supports all features of the command line version of the Intel® IDB Debugger. Debugger functions can be called from within the debugger GUI or the GUI-command line.

4.1 Starting the Debugger

How to use the Intel® Debugger is documented at http://appdeveloper.intel.com/en-us/article/debugging-meego-applications-intel-debugger

4.2 Debugger Features

Qt* C++ Class Awareness

The debugger is able to resolve Qt* C++ classes such that when monitoring variables in such classes they will be resolved correctly and their value will be directly displayed without having to follow the expanded C++ class treeview.

Extended Breakpoints Feature

With this feature you can set breakpoints on routines in shared libraries which have not yet been loaded. The requested breakpoint will be realized whenever possible. You’ll see unrealized breakpoints marked with a yellow triangle (not having an address, file and symbol name) in the GUI. On the command line those are marked as <PENDING>. Any ambiguity is directly resolved and you will get multiple realizations, e.g. requesting a breakpoint for an overloaded function. In the GUI, those are visualized as a tree with the requesting breakpoint as its node. On the command line the requesting breakpoint is marked as <MULTIPLE> and its realizations follow.

Please note that for the command line this feature is only available in GDB mode.

Command solib-search-path now implemented

The command line debugger idbc and the Command window of the GUI debugger now support the existing gdb command solib-search-path which is used to look up images or shared libraries when they have not been found in the usual places such as $LD_LIBRARY_PATH.

Please invoke the command line help to see the solib-search-path command usage:

(idb) help set solib-search-path

(idb) help show solib-search-path

or the abbreviated commands:

(idb) h set sol

(idb) h sho sol

4.3 Known Issues

4.3.1 Trouble Communicating with Remote Debug Server launched inside QEMU

The installer should automatically do this, but if you encounter problems communicating with the Remote Debug Server launched inside a QEMU you may need to modify information file for the QEMU image you want to debug. In the information file you will add port forwarding to the Remote Debug Server (idbserver).

If, for example, the image you would like to enable is “meego-tablet-ia32-qemu-<version>-sda-runtime” you would change to the
/usr/lib/madde/linux-i686/runtimes/meego-handset-ia32-qemu-<version>-sda-runtime/ directory and edit the information file adding the part in red below:

qemu_args='-name MeeGo -m 1024 -boot c -hda meego-handset-ia32-qemu-1.1.20101031.2201-sda.raw -enable-kvm -vga std -enable-gl -device virtio-gl-pci -skin /opt/meego/qemu-gl/share/qemugl/meego/skin/handset/skin.xml -usbdevice tablet -soundhw ac97 -net nic -net user,hostfwd=tcp:127.0.0.1:6666-:22,hostfwd=tcp:127.0.0.1:13219-:13219,hostfwd=tcp:127.0.0.1:14168-:14168,hostfwd=tcp:127.0.0.1:2000-:2000'

4.3.2 Application Upload to Target from within Debugger

It currently is only possible to upload an application to the MeeGo* target from within the debugger once per debug session. For re-uploading the debuggee application from within the same debugger instance, first disconnect the debugger from the remote debug server idbserver and then kill and restart idbserver. Afterwards you can reconnect and upload the application again.

4.3.3 Debugger Online Help

There currently is no context sensitive online help documentation available from within the debugger. Please refer to http://appdeveloper.intel.com/en-us/article/debugging-meego-applications-intel-debugger and the documents referenced there for detailed debugger usage information

4.3.4 Debugger Launch from within Qt Creator*

Currently not supported. Implementation expected with next release.

4.3.5 Signals Dialog Not Working

The Signals dialog accessible via the GUI dialog Debug / Signal Handling or the shortcut Ctrl+S is not working correctly. Please refer to the Intel® Debugger (IDB) Manual for use of the signals command line commands instead.

4.3.6 Resizing GUI

If the debugger GUI window is reduced in size, some windows may fully disappear. Enlarge the window and the hidden windows will appear again.

4.3.7 $cdir, $cwd Directories

$cdir is the compilation directory (if recorded).This is supported in that the directory is set; but $cdir is not itself supported as a symbol.

$cwd is the current working directory. Neither the semantics nor the symbol are supported.

The difference between $cwd and '.' is that $cwd tracks the current working directory as it changes during a debug session. '.' is immediately expanded to the current directory at the time an entry to the source path is added.

4.3.8 info stack Usage

The GDB mode debugger command info stack does not currently support negative frame counts in the optional syntax below:

$ info stack [num]

A positive frame count num will print the innermost num frames. A negative or zero count will print no frames rather than the outermost num frames.

4.3.9 $stepg0 Default Value Changed

The debugger variable $stepg0 changed default to a value of 0. With the value "0" the

debugger will step over code without debug information if you do a "step" command. Set the

debugger variable to 1 to be compatible with previous debugger versions as follows:

(idb) set $stepg0 = 1

4.3.10 Thread Syncpoint Creation in GUI

While for plain code and data breakpoints the field Location is mandatory, thread syncpoints require both Location and Thread Filter to be specified. The latter specifies the threads to synchronize. Please note that for the other breakpoint types this field restricts the breakpoints created to the threads listed.

4.3.11 Data Breakpoint Dialog

The fields Within Function and Length are not used. The location to watch provides the watched length implicitly (the type of the effective expression is used). Also Read access is not working.

4.3.12 Stack Alignment for IA-32 Architecture

Due to changes in the default stack alignment for the IA-32 architecture, the usage of inferior calls (i.e. evaluation of expressions that cause execution of debuggee code) might fail. This can cause as well crashes of the debuggee and therefore a restart of the debug session. If you need to use this feature, make sure to compile your code with 4 byte stack alignment by proper usage of the --falign-stack=<mode> option.

4.3.13 GNOME Environment Issues

With GNOME 2.28, debugger menu icons may not being displayed by default. To get the menu

icons back, you need to go to the System->Preferences->Appearance, Interface tab and

enable, "Show icons in menus". If there is not Interface tab available, you can change this with the corresponding GConf keys in console as follows:

(idb) gconftool-2 --type boolean –set /desktop/gnome/interface/buttons_have_icons true

(idb) gconftool-2 --type boolean –set /desktop/gnome/interface/menus_have_icons true

5 Intel® Integrated Performance Primitives

You can read the release notes for the Intel® Integrated Performance Primitives (including information on how to obtain the cryptography libraries) at http://appdeveloper.intel.com/en-us/article/intel-ipp-7.0-release-notes-for-intel-appup-sdk-for-meego.

6 Intel® Threading Building Blocks

You can read the release notes for the Intel® Threading Building Blocks at http://appdeveloper.intel.com/en-us/article/intel-threading-building-blocks-meego-release-notes.

7 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.
UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.
Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.
The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.
Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.
Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or go to: http://www.intel.com/design/literature.htm

Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different processor families. Go to:
http://www.intel.com/products/processor_number/

Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. For more information go to http://www.intel.com/performance

Intel AppUp, Intel Atom, Intel Core, and Xeon are trademarks of Intel Corporation in the U.S. and other countries.

* Other names and brands may be claimed as the property of others.

Java and all Java based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.

Copyright (C) 2011, Intel Corporation. All rights reserved.

 

0