https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70624
Iain Sandoe <iains at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |iains at gcc dot gnu.org
--- Comment #9 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Dominique d'Humieres from comment #8)
> 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
This looks good to (and works for) me;
please can we ask for this to be committed "upstream" and then imported?
BTW, there _are_ folks using both GCC and LLVM on Darwin10 for "day job" stuff,
so it is still very much of interest.