diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2016-08-29 23:42:34 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2016-08-29 23:42:34 +0000 |
commit | 8dbbf56aa104173e7defd9bce10603e6aa678810 (patch) | |
tree | 38ce60bd502d6e113fa7f06debc23990db8cce6e /clang/lib | |
parent | 89876673cd45cc9da6aa971be1a947c3e6e67f28 (diff) | |
download | bcm5719-llvm-8dbbf56aa104173e7defd9bce10603e6aa678810.tar.gz bcm5719-llvm-8dbbf56aa104173e7defd9bce10603e6aa678810.zip |
[cfi] Export __cfi_check when linking with -fsanitize-cfi-cross-dso.
Multi-DSO CFI model requires every DSO to export a __cfi_check function.
llvm-svn: 280031
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 5852ac1b2e2..464c4242acb 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -3194,6 +3194,11 @@ static bool addSanitizerRuntimes(const ToolChain &TC, const ArgList &Args, // to be dynamic to be sure we export sanitizer interface functions. if (AddExportDynamic) CmdArgs.push_back("-export-dynamic"); + + const SanitizerArgs &SanArgs = TC.getSanitizerArgs(); + if (SanArgs.hasCrossDsoCfi() && !AddExportDynamic) + CmdArgs.push_back("-export-dynamic-symbol=__cfi_check"); + return !StaticRuntimes.empty(); } |