Date: Wed, 8 Feb 2017 20:31:54 +0000 (UTC) From: Ed Maste <emaste@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r313458 - head/contrib/llvm/tools/lld/ELF Message-ID: <201702082031.v18KVsrR051960@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: emaste Date: Wed Feb 8 20:31:54 2017 New Revision: 313458 URL: https://svnweb.freebsd.org/changeset/base/313458 Log: lld: Allow arbitrary code alignment in .eh_frame According to the specification, CIE code alignment factor is an arbitrary unsigned LEB128 encoded value. PR: 216908 Reported by: Wolfgang Meyer Obtained from: Upstream LLD r277105 MFC after: 1 week Modified: head/contrib/llvm/tools/lld/ELF/EhFrame.cpp Modified: head/contrib/llvm/tools/lld/ELF/EhFrame.cpp ============================================================================== --- head/contrib/llvm/tools/lld/ELF/EhFrame.cpp Wed Feb 8 20:21:29 2017 (r313457) +++ head/contrib/llvm/tools/lld/ELF/EhFrame.cpp Wed Feb 8 20:31:54 2017 (r313458) @@ -117,9 +117,8 @@ template <class ELFT> uint8_t getFdeEnco StringRef Aug(reinterpret_cast<const char *>(D.begin()), AugEnd - D.begin()); D = D.slice(Aug.size() + 1); - // Code alignment factor should always be 1 for .eh_frame. - if (readByte(D) != 1) - fatal("CIE code alignment must be 1"); + // Skip code alignment factor. + skipLeb128(D); // Skip data alignment factor. skipLeb128(D);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201702082031.v18KVsrR051960>