| Line 27: | Line 27: | ||
* 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) | ||
* '''gcc option -mfloat-abi=hard is the default and mandatory''' | * '''gcc option -mfloat-abi=hard is the default and mandatory''' | ||
| - | * | + | * Following sets of toolchain set-ups: |
* Default set: | * Default set: | ||
* RPM architecture name: "armv7hl" | * RPM architecture name: "armv7hl" | ||
* ARMv7 architecture (-march=armv7-a) | * ARMv7 architecture (-march=armv7-a) | ||
* VFPv3-D16 is in use (-mfpu=vfpv3-d16) | * VFPv3-D16 is in use (-mfpu=vfpv3-d16) | ||
| - | * | + | * Thumb2 not used (-mno-thumb) |
| - | * RPM architecture name: " | + | * Thumb2 set: |
| + | * RPM architecture name: "armv7thl" | ||
| + | * ARMv7 architecture (-march=armv7-a) | ||
| + | * VFPv3-D!& is in use (-mfpu=vfpv3-d16) | ||
| + | * Thumb2 is in use (-mthumb) | ||
| + | * NEON set: | ||
| + | * RPM architecture name: "armv7nhl" | ||
* ARMv7 architecture (-march=armv7-a) | * ARMv7 architecture (-march=armv7-a) | ||
* NEON is in use (-mfpu=neon) | * NEON is in use (-mfpu=neon) | ||
| - | + | * Thumb2 not used (-mno-thumb) | |
| + | * NEON and Thumb2 set | ||
| + | * RPM architecture name: "armv7thnl" | ||
| + | * ARMv7 architecture (-march=armv7-a) | ||
| + | * NEON is in use (-mfpu=neon) | ||
| + | * Thumb2 is in use (-mthumb) | ||
| + | * ARM RunFast is enabled in glibc by defaultx | ||
* New RPM architecture name "armv7hl" to indicate hardfp 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. | ||
| Line 42: | Line 54: | ||
'''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.''' | ||
| + | |||
| + | === Bugzilla === | ||
| + | All hardfp related issues are tracked in the metabug #11429 (http://bugs.meego.com/showdependencytree.cgi?id=11429&hide_resolved=0) | ||
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:
* RPM architecture name: "armv7hl" * ARMv7 architecture (-march=armv7-a) * VFPv3-D16 is in use (-mfpu=vfpv3-d16) * Thumb2 not used (-mno-thumb)
* RPM architecture name: "armv7thl" * ARMv7 architecture (-march=armv7-a) * VFPv3-D!& is in use (-mfpu=vfpv3-d16) * Thumb2 is in use (-mthumb)
* RPM architecture name: "armv7nhl" * ARMv7 architecture (-march=armv7-a) * NEON is in use (-mfpu=neon) * Thumb2 not used (-mno-thumb)
* RPM architecture name: "armv7thnl" * ARMv7 architecture (-march=armv7-a) * NEON is in use (-mfpu=neon) * Thumb2 is in use (-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 (http://bugs.meego.com/showdependencytree.cgi?id=11429&hide_resolved=0)