summaryrefslogtreecommitdiffstats
path: root/Configurations/shared-info.pl
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2019-04-15 10:40:18 +0200
committerRichard Levitte <levitte@openssl.org>2019-04-15 16:47:25 +0200
commit72eb100f8a38c5b3822d7751eddaa2f3f4576fa1 (patch)
tree27a6e9f405b727e8ed8431663da2fd4b111f6fcf /Configurations/shared-info.pl
parentf2dbb71cb6bf6cd570f96e7663a22dd87854f08b (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)
Diffstat (limited to 'Configurations/shared-info.pl')
-rw-r--r--Configurations/shared-info.pl5
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'}; },