diff options
author | Richard Levitte <levitte@openssl.org> | 2019-04-15 10:40:18 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2019-04-15 16:47:25 +0200 |
commit | 72eb100f8a38c5b3822d7751eddaa2f3f4576fa1 (patch) | |
tree | 27a6e9f405b727e8ed8431663da2fd4b111f6fcf | |
parent | f2dbb71cb6bf6cd570f96e7663a22dd87854f08b (diff) |
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 <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/8749)
-rw-r--r-- | Configurations/shared-info.pl | 5 |
1 files changed, 4 insertions, 1 deletions
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'}; }, |