diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2016-01-25 18:29:16 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2016-01-25 18:29:16 +0000 |
commit | b17bc536d3e53a62aeea3dbd62c0a160e536891f (patch) | |
tree | 49c920721014f4af06c85d148aa9c3be4bac0cd6 /clang/lib/Driver/Tools.cpp | |
parent | 0aa1ccb0d91967ea77f83d210609e632234cc8ef (diff) | |
download | llvm-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.cpp | 3 |
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)) |