https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70624

--- Comment #8 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
This is fixed on x86_64-apple-darwin10 without regression on
x86_64-apple-darwin15 by the following patch

--- ../_clean/libsanitizer/asan/asan_mac.cc     2015-11-23 10:17:05.000000000
+0100
+++ libsanitizer/asan/asan_mac.cc       2016-04-15 13:22:01.000000000 +0200
@@ -97,10 +97,14 @@ void DisableReexec() {
   reexec_disabled = true;
 }

-extern "C" double dyldVersionNumber;
+extern "C" SANITIZER_WEAK_ATTRIBUTE double dyldVersionNumber;
 static const double kMinDyldVersionWithAutoInterposition = 360.0;

 bool DyldNeedsEnvVariable() {
+  // Although sanitizer support was added to LLVM on Darwin 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 can return true.
+  if (!&dyldVersionNumber) return true;
   // 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
   // GetMacosVersion() doesn't work for the simulator. Let's instead check

Reply via email to