m (Minor typo) |
(→Change Content) |
||
| Line 25: | Line 25: | ||
In MeeGo Release 1.2 and onwards the following is about to change: | 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 | + | * The toolchain is based on gcc-4.5.1 with binutils-2.20 and glibc-2.11 |
* '''gcc option -mfloat-abi=hard is the default and mandatory''' | * '''gcc option -mfloat-abi=hard is the default and mandatory''' | ||
| - | * There are | + | * There are three build configurations in the toolchain - Baseline and two Optimized configurations: |
* Baseline configuration maximizes compatibility between various ARMv7-A based chipsets | * Baseline configuration maximizes compatibility between various ARMv7-A based chipsets | ||
* Optimized configuration allows optimization for NEON and Thumb2 instructions in the devices where these can be used | * Optimized configuration allows optimization for NEON and Thumb2 instructions in the devices where these can be used | ||
| - | * Applications should always target Baseline configuration. The applications benefit from Optimized | + | * Applications should always target Baseline configuration. The applications benefit from Optimized configurations can additionally provide optmized binaries. Offering an application without Baseline configuration should not be done, unless the Baseline configuration binary is unusable for this particular application for a valid reason. |
* Baseline configuration (NEON and Thumb2 is not allowed): | * Baseline configuration (NEON and Thumb2 is not allowed): | ||
* RPM architecture name: "armv7hl" | * RPM architecture name: "armv7hl" | ||
| Line 46: | Line 46: | ||
* NEON is used (-mfpu=neon) | * NEON is used (-mfpu=neon) | ||
* Thumb2 instruction set is used (-mthumb) | * Thumb2 instruction set is used (-mthumb) | ||
| - | * Optimized configuration 1 is the default Optimized configuration for MeeGo Release 1.2. When newer ARM hardware becomes available it is likely that Optimized configuration 2 becomes as the default optimized configuration, but this happens earliest in MeeGo Release 1.3. | + | * Optimized configuration 1 is the default Optimized configuration for MeeGo Release 1.2. When newer ARM hardware becomes available it is likely that Optimized configuration 2 becomes as the default optimized configuration, but this happens earliest in MeeGo Release 1.3. |
Contents |
ARM Toolchain will be changed in MeeGo release 1.2. This page describes the change and the effects of the change.
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]:
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.
In MeeGo Release 1.2 and onwards the following is about to change:
* Baseline configuration maximizes compatibility between various ARMv7-A based chipsets * Optimized configuration allows optimization for NEON and Thumb2 instructions in the devices where these can be used
* RPM architecture name: "armv7hl" * ARMv7 architecture (-march=armv7-a) * VFPv3-D16 is in use (-mfpu=vfpv3-d16) * Thumb2 instruction set not used (-mno-thumb)
* RPM architecture name: "armv7nhl" * ARMv7 architecture (-march=armv7-a) * NEON allowed (-mfpu=neon) * Thumb2 instruction set not used (-mno-thumb)
* RPM arhcitecture name: "armv7tnhl" * ARMv7 architecture (-march=armv7-a) * NEON is used (-mfpu=neon) * Thumb2 instruction set is used (-mthumb)
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.
All hardfp related issues are tracked in the metabug #11429 [3].
[1] http://wiki.debian.org/ArmHardFloatPort/VfpComparison#DetailsonGCCfloating-pointoptions
[2] http://lists.meego.com/pipermail/meego-dev/2011-January/481145.html
[3] http://bugs.meego.com/showdependencytree.cgi?id=11429&hide_resolved=0