From: Richard Levitte Date: Mon, 15 Apr 2019 08:40:18 +0000 (+0200) Subject: Don't use '-z defs' with Clang's sanitizers X-Git-Tag: openssl-3.0.0-alpha1~2177 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=72eb100f8a38c5b3822d7751eddaa2f3f4576fa1;p=oweals%2Fopenssl.git Don't use '-z defs' with Clang's sanitizers The clang documentation in all sanitizers we currently use says this: When linking shared libraries, the {flavor}Sanitizer run-time is not linked, so -Wl,-z,defs may cause link errors (don’t use it with {flavor}Sanitizer) (in our case, {flavor} is one of Address, Memory, or UndefinedBehavior) Therefore, we turn off that particular flag specifically when using the sanitizers. Fixes #8735 Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/8749) --- diff --git a/Configurations/shared-info.pl b/Configurations/shared-info.pl index f821ad7e8d..83f28bd367 100644 --- a/Configurations/shared-info.pl +++ b/Configurations/shared-info.pl @@ -32,7 +32,10 @@ my %shared_info; return { %{$shared_info{'gnu-shared'}}, shared_defflag => '-Wl,--version-script=', - dso_ldflags => '-z defs', + dso_ldflags => + $disabled{asan} && $disabled{msan} && $disabled{ubsan} + ? '-z defs' + : '', }; }, 'bsd-gcc-shared' => sub { return $shared_info{'linux-shared'}; },