aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2016-01-25 18:29:16 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2016-01-25 18:29:16 +0000
commitb17bc536d3e53a62aeea3dbd62c0a160e536891f (patch)
tree49c920721014f4af06c85d148aa9c3be4bac0cd6 /clang/lib/Driver/Tools.cpp
parent0aa1ccb0d91967ea77f83d210609e632234cc8ef (diff)
downloadllvm-b17bc536d3e53a62aeea3dbd62c0a160e536891f.zip
llvm-b17bc536d3e53a62aeea3dbd62c0a160e536891f.tar.gz
llvm-b17bc536d3e53a62aeea3dbd62c0a160e536891f.tar.bz2
Pass --wrap=pthread_create to linker for -fsplit-stack.
From https://gcc.gnu.org/ml/gcc-patches/2010-09/msg01807.html -fsplit-stack should pass --wrap=pthread_create to linker for -fsplit-stack It is needed to initialize the stack guard. This fixes PR 20148. Patch by H.J Lu! llvm-svn: 258698
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 6a1517f..574bf5c 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -9001,6 +9001,9 @@ void gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
if (WantPthread && !isAndroid)
CmdArgs.push_back("-lpthread");
+ if (Args.hasArg(options::OPT_fsplit_stack))
+ CmdArgs.push_back("--wrap=pthread_create");
+
CmdArgs.push_back("-lc");
if (Args.hasArg(options::OPT_static))