Skip to content

compiler-rt inconsistent with Clang about meaning of "arm-none-eabi" #137054

Open
@RossSmyth

Description

@RossSmyth

Hello,

This is partly a questions of "is this desired?"

If you ask Clang to build for "arm-none-eabi", this is essentially an alias for "armv4t-unknown-none-eabi". This is good, and also consistent with GCC.

Next if you would like to build compiler_rt for "arm-none-eabi", it is not quite the same as Clang's interpretation. Instead it builds for "armv7-a". This is surprising! It can lead to build failures that are unexpected, for example:

/build/compiler-rt-src-19.1.7/compiler-rt/lib/builtins/arm/sync-ops.h:22:2: error: #error DMB is only supported on ARMv6+
   22 | #error DMB is only supported on ARMv6+

When building compiler-rt for arm-embedded (Clang's interpretation) on nixpkgs right now, because it expects that the two agree on what it means.

There is a test that checks for this (I think?) as well, so at minimum someone knows of it.

test_target_arch(arm "" "-march=armv7-a" "-mfloat-abi=soft")

Metadata

Metadata

Assignees

No one assigned

    Labels

    cmakeBuild system in general and CMake in particularcompiler-rt

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions