Meego Wiki
Views

SDK/Toolchains/ToolchainChange

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
Line 26: Line 26:
* The toolchain is based on gcc-4.5.1 with binutils-2.20 (or newer) and glibc-2.10 (or newer)
* The toolchain is based on gcc-4.5.1 with binutils-2.20 (or newer) and glibc-2.10 (or newer)
-
* Support of -mfloat-abi=hard as gcc option
+
* '''cc option -mfloat-abi=hard is the default and mandatory'''
* Two sets of toolchain set-ups: Default set and NEON optimized set
* Two sets of toolchain set-ups: Default set and NEON optimized set
* Default set:
* Default set:
Line 37: Line 37:
   * NEON is in use (-mfpu=neon)
   * NEON is in use (-mfpu=neon)
-
* New RPM architecture name "armv7hl" to indicate hardfp supported ARM architecture and the sub-architecture name "armv7nhl" to indicate that the NEON is used.
+
* New RPM architecture name "armv7hl" to indicate hardfp ARM architecture and the sub-architecture name "armv7nhl" to indicate that the NEON is used.
=== Impact of the Change ===
=== Impact of the Change ===
-
ARM Packages compiled in MeeGo Release 1.2 are not binary compatible with those packages that are compiled using gcc-option -mfloat-abi=softfp in MeeGo Release 1.0 or 1.1. So all the packages from Release 1.0 or 1.1 must be re-compiled using the toolchain of MeeGo 1.2.
+
'''ARM Packages compiled in MeeGo Release 1.2 are not binary compatible with those packages that are compiled using gcc-option -mfloat-abi=softfp in MeeGo Release 1.0 or 1.1. So all the packages from Release 1.0 or 1.1 must be re-compiled using the toolchain of MeeGo 1.2.'''

Revision as of 12:06, 4 January 2011

Contents

Toolchain Change in MeeGo 1.2

ARM Toolchain will be changed in MeeGo release 1.2. This page describes the change and the effects of the change.

Background

This change effects to ARM cross compiler part of MeeGo toolchain.

The toolchain in current MeeGo 1.1 supports ARM architecture only partially what comes to Floating Point Unit (FPU) support.

gcc compiler provides three options to support floating points in option -mfloat-abi [1]:

  • soft - Full software implementation of floating points. Fits the processors without the FPU. All floating point operations are emulated by the compiler
  • softfp - FPU unit is in use but the code is compatible to full software code. Floating Point operations are passed to the FPU in integer registers
  • hard - Floating Point arguments are passed directly to the FPU registers. No compatibility to soft and softfp.

Full utilization of the FPU gives performance improvement to applications using plenty of floating point operations - like games, location based services and graphics.

In order to take -mfloat-abi=hard option into use in MeeGo 1.2 the toolchain is needed to be updated to gcc-4.5.1 based.

The change proposal (SDK/Toolchains/ToolchainChangeProposal) was approved in MeeGo TSG on December 1, 2010.

Change Content

In MeeGo Release 1.2 and onwards the following is about to change:

  • The toolchain is based on gcc-4.5.1 with binutils-2.20 (or newer) and glibc-2.10 (or newer)
  • cc option -mfloat-abi=hard is the default and mandatory
  • Two sets of toolchain set-ups: Default set and NEON optimized set
  • Default set:
  * RPM architecture name: "armv7hl"
  * ARMv7 architecture (-march=armv7-a)
  * VFPv3-D16 is in use (-mfpu=vfpv3-d16)
  • NEON optimized set:
  * RPM architecture name: "armv7nhl" (sub-architecture of "armv7hl")
  * ARMv7 architecture (-march=armv7-a)
  * NEON is in use (-mfpu=neon)
  • New RPM architecture name "armv7hl" to indicate hardfp ARM architecture and the sub-architecture name "armv7nhl" to indicate that the NEON is used.

Impact of the Change

ARM Packages compiled in MeeGo Release 1.2 are not binary compatible with those packages that are compiled using gcc-option -mfloat-abi=softfp in MeeGo Release 1.0 or 1.1. So all the packages from Release 1.0 or 1.1 must be re-compiled using the toolchain of MeeGo 1.2.

Personal tools