[builtins] Do not force thumb mode directive in arm/sync-ops.h
authorKhem Raj <raj.khem@gmail.com>
Sat, 12 Mar 2022 00:25:49 +0000 (16:25 -0800)
committerFangrui Song <i@maskray.me>
Sat, 12 Mar 2022 00:25:49 +0000 (16:25 -0800)
commit5017de8ba4b1fe985169cf54590e858a9019a91f
treebffcf685371702a26739d9b14939e42ec786432c
parent6299089b942b6bcdf322b48c96c7e24bfdc9d1cb
[builtins] Do not force thumb mode directive in arm/sync-ops.h

.thumb_func was not switching mode until [1]
so it did not show up but now that .thumb_func (without argument) is
switching mode, its causing build failures on armv6 ( rpi0 ) even when
build is explicitly asking for this file to be built with -marm (ARM
mode), therefore use DEFINE_COMPILERRT_FUNCTION macro to add function
header which considers arch and mode from compiler cmdline to decide if
the function is built using thumb mode or arm mode.

[1] https://reviews.llvm.org/D101975

Note that it also needs https://reviews.llvm.org/D99282

Reviewed By: peter.smith, MaskRay

Differential Revision: https://reviews.llvm.org/D104183
compiler-rt/lib/builtins/arm/sync-ops.h