[all-commits] [llvm/llvm-project] f4382d: [Compiler-RT] For arm64e test suites use the SDK v...
Dan Liew via All-commits
all-commits at lists.llvm.org
Wed Sep 15 14:24:13 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: f4382d4b0972ac31a2027610adfb9d4dc36caa2e
https://github.com/llvm/llvm-project/commit/f4382d4b0972ac31a2027610adfb9d4dc36caa2e
Author: Dan Liew <dliew at apple.com>
Date: 2021-09-15 (Wed, 15 Sep 2021)
Changed paths:
M compiler-rt/cmake/config-ix.cmake
Log Message:
-----------
[Compiler-RT] For arm64e test suites use the SDK version as the minimum deployment target.
Previously we used the minimum deployment target used for the platform
(e.g. iOS is 9.0). Unfortunately this leads to ABI incompatibilities with
arm64e devices running newer OSs. In particular the following TSan test
cases that used libcxx would fail due to the ABI mismatch.
* Darwin/libcxx-shared-ptr-recursive.mm
* Darwin/libcxx-shared-ptr-stress.mm
* Darwin/libcxx-shared-ptr.mm
* libcxx/std_shared_ptr.cpp
Given that arm64e is not ABI stable we should ideally match the
deployment target for sanitizer runtimes and their tests cases to the
device when building for arm64e. Unfortunately having a mixed deployment
target (based on architecture) isn't currently supported by the build system
and is non-trivial to implement.
As a stop-gap measure this patch changes the sanitizer test suites (but not the
sanitizer runtimes themselves) to use a newer deployment target when
targetting arm64e.
The deployment target used for arm64e is the SDK version because this
"should" match the OS version running on the target device (it is a
configuration error to not match them).
rdar://83080611
More information about the All-commits
mailing list