diff options
Diffstat (limited to '')
-rw-r--r-- | devel/llvm60/files/lld/patch-head-r333401.diff | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/devel/llvm60/files/lld/patch-head-r333401.diff b/devel/llvm60/files/lld/patch-head-r333401.diff deleted file mode 100644 index 131f6a0ea274..000000000000 --- a/devel/llvm60/files/lld/patch-head-r333401.diff +++ /dev/null @@ -1,34 +0,0 @@ -r333401 | emaste | 2018-05-09 13:17:01 +0200 (Wed, 09 May 2018) | 19 lines - -lld: Omit PT_NOTE for SHT_NOTE without SHF_ALLOC - -A non-alloc note section should not have a PT_NOTE program header. - -Found while linking ghc (Haskell compiler) with lld on FreeBSD. Haskell -emits a .debug-ghc-link-info note section (as the name suggests, it -contains link info) as a SHT_NOTE section without SHF_ALLOC set. - -For this case ld.bfd does not emit a PT_NOTE segment for -.debug-ghc-link-info. lld previously emitted a PT_NOTE with p_vaddr = 0 -and FreeBSD's rtld segfaulted when trying to parse a note at address 0. - -LLVM PR: https://llvm.org/pr37361 -LLVM review: https://reviews.llvm.org/D46623 - -PR: 226872 -Reviewed by: dim -Sponsored by: The FreeBSD Foundation - -Index: tools/lld/ELF/Writer.cpp -=================================================================== ---- tools/lld/ELF/Writer.cpp (revision 333400) -+++ tools/lld/ELF/Writer.cpp (revision 333401) -@@ -1708,7 +1708,7 @@ template <class ELFT> std::vector<PhdrEntry *> Wri - // Create one PT_NOTE per a group of contiguous .note sections. - PhdrEntry *Note = nullptr; - for (OutputSection *Sec : OutputSections) { -- if (Sec->Type == SHT_NOTE) { -+ if (Sec->Type == SHT_NOTE && (Sec->Flags & SHF_ALLOC)) { - if (!Note || Sec->LMAExpr) - Note = AddHdr(PT_NOTE, PF_R); - Note->add(Sec); |