summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/tools/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2016-09-05 18:54:13 +0000
committerpatrick <patrick@openbsd.org>2016-09-05 18:54:13 +0000
commitf3b5e4d27766113ab6f1e51772905df5fc56b702 (patch)
tree6a9f251b12d2569c471bc63f3faeff735c5079c4 /gnu/llvm/tools/clang/lib/Driver/Tools.cpp
parentIn some cases, for instance for statically linked binaries, our binutils (diff)
downloadwireguard-openbsd-f3b5e4d27766113ab6f1e51772905df5fc56b702.tar.xz
wireguard-openbsd-f3b5e4d27766113ab6f1e51772905df5fc56b702.zip
libunwind relies on the EH frame header. Our OpenBSD frontend code
does not tell our linker to produce that header for statically linked binaries. Just create that header for all binaries and we are fine. ok guenther@
Diffstat (limited to 'gnu/llvm/tools/clang/lib/Driver/Tools.cpp')
-rw-r--r--gnu/llvm/tools/clang/lib/Driver/Tools.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/gnu/llvm/tools/clang/lib/Driver/Tools.cpp b/gnu/llvm/tools/clang/lib/Driver/Tools.cpp
index 3c228b1ebe2..b19cd1065de 100644
--- a/gnu/llvm/tools/clang/lib/Driver/Tools.cpp
+++ b/gnu/llvm/tools/clang/lib/Driver/Tools.cpp
@@ -7570,12 +7570,13 @@ void openbsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back("__start");
}
+ CmdArgs.push_back("--eh-frame-hdr");
+
if (Args.hasArg(options::OPT_static)) {
CmdArgs.push_back("-Bstatic");
} else {
if (Args.hasArg(options::OPT_rdynamic))
CmdArgs.push_back("-export-dynamic");
- CmdArgs.push_back("--eh-frame-hdr");
CmdArgs.push_back("-Bdynamic");
if (Args.hasArg(options::OPT_shared)) {
CmdArgs.push_back("-shared");