summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2017-02-25 10:21:52 +0000
committerkettenis <kettenis@openbsd.org>2017-02-25 10:21:52 +0000
commita42ebde17ee65ad99b77ac7412d1c41d1d477650 (patch)
tree0116b9cb9a2fcfb810f2d89549efe5c06460793e
parentAdd missing includes to avoid implicit function declarations. (diff)
downloadwireguard-openbsd-a42ebde17ee65ad99b77ac7412d1c41d1d477650.tar.xz
wireguard-openbsd-a42ebde17ee65ad99b77ac7412d1c41d1d477650.zip
Make sure the .eh_frame ends with a terminator. This avoids creating a
zero-sized .eh_frame section, which confuses the strip from our frankenbinutils. With this diff lld seems to be usable as the arm64 system linker. ok patrick@, jsg@
-rw-r--r--gnu/llvm/tools/lld/ELF/OutputSections.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/gnu/llvm/tools/lld/ELF/OutputSections.cpp b/gnu/llvm/tools/lld/ELF/OutputSections.cpp
index 7c708ce4ed6..edcc0f186b3 100644
--- a/gnu/llvm/tools/lld/ELF/OutputSections.cpp
+++ b/gnu/llvm/tools/lld/ELF/OutputSections.cpp
@@ -394,7 +394,7 @@ template <class ELFT> void EhOutputSection<ELFT>::finalize() {
Off += alignTo(Fde->size(), sizeof(uintX_t));
}
}
- this->Size = Off;
+ this->Size = Off + 4;
}
template <class ELFT> static uint64_t readFdeAddr(uint8_t *Buf, int Size) {