From 72eb100f8a38c5b3822d7751eddaa2f3f4576fa1 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Mon, 15 Apr 2019 10:40:18 +0200 Subject: Don't use '-z defs' with Clang's sanitizers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- Configurations/shared-info.pl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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'}; }, -- cgit v1.2.3