forked from OSchip/llvm-project
[Darwin] Cleanup code via improved GetMacosAlignedVersion()
Checking the OS version via `GetMacosAlignedVersion()` now works in
simulators [1]. Let's use it to simplify `DyldNeedsEnvVariable()`.
[1] 3fb0de8207
Reviewed By: delcypher
Differential Revision: https://reviews.llvm.org/D81197
This commit is contained in:
parent
bd4757cc4e
commit
12f27fc4b5
|
@ -879,20 +879,10 @@ bool ReexecDisabled() {
|
|||
return false;
|
||||
}
|
||||
|
||||
extern "C" SANITIZER_WEAK_ATTRIBUTE double dyldVersionNumber;
|
||||
static const double kMinDyldVersionWithAutoInterposition = 360.0;
|
||||
|
||||
bool DyldNeedsEnvVariable() {
|
||||
// Although sanitizer support was added to LLVM on OS X 10.7+, GCC users
|
||||
// still may want use them on older systems. On older Darwin platforms, dyld
|
||||
// doesn't export dyldVersionNumber symbol and we simply return true.
|
||||
if (!&dyldVersionNumber) return true;
|
||||
static bool DyldNeedsEnvVariable() {
|
||||
// If running on OS X 10.11+ or iOS 9.0+, dyld will interpose even if
|
||||
// DYLD_INSERT_LIBRARIES is not set. However, checking OS version via
|
||||
// GetMacosAlignedVersion() doesn't work for the simulator. Let's instead
|
||||
// check `dyldVersionNumber`, which is exported by dyld, against a known
|
||||
// version number from the first OS release where this appeared.
|
||||
return dyldVersionNumber < kMinDyldVersionWithAutoInterposition;
|
||||
// DYLD_INSERT_LIBRARIES is not set.
|
||||
return GetMacosAlignedVersion() < MacosVersion(10, 11);
|
||||
}
|
||||
|
||||
void MaybeReexec() {
|
||||
|
|
|
@ -44,6 +44,7 @@ struct VersionBase {
|
|||
return major > other.major ||
|
||||
(major == other.major && minor >= other.minor);
|
||||
}
|
||||
bool operator<(const VersionType &other) const { return !(*this >= other); }
|
||||
};
|
||||
|
||||
struct MacosVersion : VersionBase<MacosVersion> {
|
||||
|
|
Loading…
Reference in New Issue