Skip to content
Snippets Groups Projects
Commit 12f27fc4 authored by Julian Lettner's avatar Julian Lettner
Browse files

[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] 3fb0de82

Reviewed By: delcypher

Differential Revision: https://reviews.llvm.org/D81197
parent bd4757cc
No related branches found
No related tags found
No related merge requests found
......@@ -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> {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment