Skip to content

Commit

Permalink
[compiler-rt] Produce the right arch suffix for arm baremetal
Browse files Browse the repository at this point in the history
D98452 introduced a mismatch between clang expectations for
builtin name for baremetal targets on arm. Fix it by
adding a case for baremetal. This now matches the output of
"clang -target armv7m-none-eabi -print-libgcc-file-name \
-rtlib=compiler-rt"

Reviewed By: mstorsjo

Differential Revision: https://reviews.llvm.org/D113357
  • Loading branch information
m-gupta committed Nov 7, 2021
1 parent 2e20ff8 commit db27867
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions compiler-rt/cmake/Modules/AddCompilerRT.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -130,11 +130,14 @@ macro(set_output_name output name arch)
else()
set(triple "${TARGET_TRIPLE}")
endif()
# When using arch-suffixed runtime library names, clang only looks for
# libraries named "arm" or "armhf", see getArchNameForCompilerRTLib in
# clang. Therefore, try to inspect both the arch name and the triple
# if it seems like we're building an armhf target.
if ("${arch}" MATCHES "hf$" OR "${triple}" MATCHES "hf$")
# Except for baremetal, when using arch-suffixed runtime library names,
# clang only looks for libraries named "arm" or "armhf", see
# getArchNameForCompilerRTLib in clang. Therefore, try to inspect both
# the arch name and the triple if it seems like we're building an armhf
# target.
if (COMPILER_RT_BAREMETAL_BUILD)
set(${output} "${name}-${arch}${COMPILER_RT_OS_SUFFIX}")
elseif ("${arch}" MATCHES "hf$" OR "${triple}" MATCHES "hf$")
set(${output} "${name}-armhf${COMPILER_RT_OS_SUFFIX}")
else()
set(${output} "${name}-arm${COMPILER_RT_OS_SUFFIX}")
Expand Down

0 comments on commit db27867

Please sign in to comment.