Support level definitions
Describes the levels of support for various ARM® Compiler features.
ARM Compiler 6 is built on Clang and LLVM technology and as such, has morefunctionality than the set of product features described in the documentation. Thefollowing definitions clarify the levels of support and guarantees on functionalitythat is expected from these features.
ARM welcomes feedback regarding the use of all ARM Compiler6 features, and endeavors to support users to a level that is appropriate for thatfeature. You can contact support at http://www.arm.com/support.
Identification in the documentation
All features that are documented in the ARM Compiler6 documentation are product features, except where explicitly stated. Thelimitations of non-product features are explicitly stated.
Product features are suitable for use in a production environment. Thefunctionality is well-tested, and is expected to be stable across feature and updatereleases.
- ARM endeavors to give advance notice of significant functionality changes toproduct features.
- If you have a support and maintenance contract, ARM providesfull support for use of all product features.
- ARM welcomes feedback on product features.
- Any issues with product features that ARM encounters or is made aware of areconsidered for fixing in future versions of ARM Compiler.
In addition to fully supported product features, some product features areonly alpha or beta quality.
- Beta product features
Beta product features are implementation complete, but have not beensufficiently tested to be regarded as suitable for use in production environments.
Beta product features are indicated with [BETA].
- ARM endeavors to document known limitations on beta productfeatures.
- Beta product features are expected to eventually become product featuresin a future release of ARM Compiler6.
- ARM encourages the use of beta product features, and welcomes feedback onthem.
- Any issues with beta product features that ARM encounters or is madeaware of are considered for fixing in future versions of ARM Compiler.
- Alpha product features
Alpha product features are not implementation complete, and are subject to changein future releases, therefore the stability level is lower than in betaproduct features.
Alpha product features are indicated with [ALPHA].
- ARM endeavors to document known limitations of alpha product features.
- ARM encourages the use of alpha product features, and welcomes feedbackon them.
- Any issues with alpha product features that ARM encounters or is madeaware of are considered for fixing in future versions of ARM Compiler.
ARM Compiler 6 is built on LLVM technology and preserves the functionality ofthat technology where possible. This means that there are additional featuresavailable in ARM Compiler that are not listed in the documentation. These additionalfeatures are known as community features. For information on these communityfeatures, see the documentation for the Clang/LLVM project.
Where community features are referenced in the documentation, they are indicated with [COMMUNITY].
- ARM makes no claims about the quality level or the degree offunctionality of these features, except when explicitly stated in thisdocumentation.
- Functionality might change significantly between featurereleases.
- ARM makes no guarantees that community features are going toremain functional across update releases, although changes are expected to beunlikely.
Some community features might become product features in the future, but ARMprovides no roadmap for this. ARM is interested in understanding your use of thesefeatures, and welcomes feedback on them. ARM supports customers using these featureson a best-effort basis, unless the features are unsupported. ARM accepts defectreports on these features, but does not guarantee that these issues are going to befixed in future releases.
Guidance on use of community features
There are several factors to consider when assessing the likelihood of acommunity feature being functional:
- The following figure shows the structure of the ARM Compiler 6 toolchain:
Figure 1-1 Integration boundaries in ARM Compiler 6.
The dashed boxes are toolchain components, and any interaction betweenthese components is an integration boundary. Community features that span anintegration boundary might have significant limitations in functionality. Theexception to this is if the interaction is codified in one of the standardssupported by ARM Compiler 6. See Application Binary Interface (ABI) for theARM® Architecture.
- Features primarily used when targeting hosted environments such as Linux orBSD, might have significant limitations, or might not be applicable, whentargeting bare-metal environments.
- The Clang implementations of compiler features, particularly those that havebeen present for a long time in other toolchains, are likely to be mature. Thefunctionality of new features, such as support for new language features, islikely to be less mature and therefore more likely to have limitedfunctionality.
With both the product and community feature categories, specific features anduse-cases are known not to function correctly, or are not intended for use with ARM Compiler6.
Limitations of product features are stated in the documentation. ARM cannotprovide an exhaustive list of unsupported features or use-cases for communityfeatures. The known limitations on community features are listed in Community features.
List of known unsupported features
The following is an incomplete list of unsupported features, andmight change over time:
The Clang option
-stdlib=libstdc++is not supported.
- The ARM Compiler 6 libc++ libraries do not support theAtomic operations library <atomic> and the Thread support library<thread>.
- Use of C11 library features is unsupported.
- Any community feature that exclusively pertains to non-ARMarchitectures is not supported by ARM Compiler 6.