From: Richard Levitte <levitte@openssl.org>
Date: Tue, 7 May 2019 08:48:30 +0000 (+0200)
Subject: Don't use '-z defs' if sanitizers are used
X-Git-Tag: openssl-3.0.0-alpha1~2076
X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ad37edce684f97ce87868c121e39743b99580d7a;p=oweals%2Fopenssl.git

Don't use '-z defs' if sanitizers are used

There are quite a number of sanitizers for clang that aren't
documented in the clang user documentation.  This makes it impossible
to be selective about what sanitizers to look at to determine if
'-z defs' should be used of not.

Under these circumstances, the sane thing to do is to just look for
any sanitizer specification and not use '-z defs' if there's one
present.

Fixes #8735

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/8892)
---

diff --git a/Configurations/shared-info.pl b/Configurations/shared-info.pl
index 83f28bd367..2e2d28d95e 100644
--- a/Configurations/shared-info.pl
+++ b/Configurations/shared-info.pl
@@ -33,9 +33,9 @@ my %shared_info;
             %{$shared_info{'gnu-shared'}},
             shared_defflag    => '-Wl,--version-script=',
             dso_ldflags       =>
-                $disabled{asan} && $disabled{msan} && $disabled{ubsan}
-                ? '-z defs'
-                : '',
+                (grep /(?:^|\s)-fsanitize/, @{$config{CFLAGS}})
+                ? ''
+                : '-z defs',
         };
     },
     'bsd-gcc-shared' => sub { return $shared_info{'linux-shared'}; },