diff options
| author | 2016-09-05 11:39:31 +0000 | |
|---|---|---|
| committer | 2016-09-05 11:39:31 +0000 | |
| commit | 6a0709021a66c81cd37d10aa2f6229864533ef35 (patch) | |
| tree | 80d3222f328d68775903f64cc04ee6070b63779e /gnu/llvm/tools/clang/lib/Driver/Tools.cpp | |
| parent | Add libcompiler_rt Makefile. (diff) | |
| download | wireguard-openbsd-6a0709021a66c81cd37d10aa2f6229864533ef35.tar.xz wireguard-openbsd-6a0709021a66c81cd37d10aa2f6229864533ef35.zip | |
Link static PIEs with the correct C runtime (rcrt0.o).
ok kettenis@
Diffstat (limited to 'gnu/llvm/tools/clang/lib/Driver/Tools.cpp')
| -rw-r--r-- | gnu/llvm/tools/clang/lib/Driver/Tools.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gnu/llvm/tools/clang/lib/Driver/Tools.cpp b/gnu/llvm/tools/clang/lib/Driver/Tools.cpp index b7ac24fe674..3c228b1ebe2 100644 --- a/gnu/llvm/tools/clang/lib/Driver/Tools.cpp +++ b/gnu/llvm/tools/clang/lib/Driver/Tools.cpp @@ -7600,6 +7600,10 @@ void openbsd::Linker::ConstructJob(Compilation &C, const JobAction &JA, if (Args.hasArg(options::OPT_pg)) CmdArgs.push_back( Args.MakeArgString(getToolChain().GetFilePath("gcrt0.o"))); + else if (Args.hasArg(options::OPT_static) && + !Args.hasArg(options::OPT_nopie)) + CmdArgs.push_back( + Args.MakeArgString(getToolChain().GetFilePath("rcrt0.o"))); else CmdArgs.push_back( Args.MakeArgString(getToolChain().GetFilePath("crt0.o"))); |
