Summary: | misc/talkfilters crashes clang when building for AARCH64 (fixup value out of range) | ||||||
---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Sean Bruno <sbruno> | ||||
Component: | Individual Port(s) | Assignee: | Andrew Turner <Andrew> | ||||
Status: | Closed FIXED | ||||||
Severity: | Affects Some People | CC: | Andrew, dim, ehaupt, emaste | ||||
Priority: | --- | Flags: | bugzilla:
maintainer-feedback?
(ehaupt) |
||||
Version: | Latest | ||||||
Hardware: | arm64 | ||||||
OS: | Any | ||||||
URL: | https://llvm.org/bugs/show_bug.cgi?id=24234 | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 201763 | ||||||
Attachments: |
|
Description
Sean Bruno
![]() ![]() Reported upstream here: https://llvm.org/bugs/show_bug.cgi?id=24234 Unfortunately I don't have the possibility to test this but would adding CFLAGS_aarch64= -O0 to the Makefile mitigate the problem? The upstream issue is reported to be fixed with https://reviews.llvm.org/rL277331. A commit references this bug: Author: dim Date: Thu Sep 1 18:11:44 UTC 2016 New revision: 305218 URL: https://svnweb.freebsd.org/changeset/base/305218 Log: Pull in r277331 from upstream llvm trunk (by Diana Picus): [AArch64] Return the correct size for TLSDESC_CALLSEQ The branch relaxation pass is computing the wrong offsets because it assumes TLSDESC_CALLSEQ eats up 4 bytes, when in fact it is lowered to an instruction sequence taking up 16 bytes. This can become a problem in huge files with lots of TLS accesses, as it may slowly move branch targets out of the range computed by the branch relaxation pass. Fixes PR24234 https://llvm.org/bugs/show_bug.cgi?id=24234 Differential Revision: https://reviews.llvm.org/D22870 This fixes "error in backend: fixup value out of range" when compiling the misc/talkfilters port for AArch64. Reported by: sbruno PR: 201762 MFC after: 3 days Changes: head/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp (In reply to commit-hook from comment #4) > URL: https://svnweb.freebsd.org/changeset/base/305218 > > Log: > Pull in r277331 from upstream llvm trunk (by Diana Picus): I intend to merge this to stable/11, and I already merged it to the clang390-import branch. This is fixed in in head with r305218 A commit references this bug: Author: dim Date: Wed Sep 7 18:16:06 UTC 2016 New revision: 305550 URL: https://svnweb.freebsd.org/changeset/base/305550 Log: MFC r305218: Pull in r277331 from upstream llvm trunk (by Diana Picus): [AArch64] Return the correct size for TLSDESC_CALLSEQ The branch relaxation pass is computing the wrong offsets because it assumes TLSDESC_CALLSEQ eats up 4 bytes, when in fact it is lowered to an instruction sequence taking up 16 bytes. This can become a problem in huge files with lots of TLS accesses, as it may slowly move branch targets out of the range computed by the branch relaxation pass. Fixes PR24234 https://llvm.org/bugs/show_bug.cgi?id=24234 Differential Revision: https://reviews.llvm.org/D22870 This fixes "error in backend: fixup value out of range" when compiling the misc/talkfilters port for AArch64. Reported by: sbruno PR: 201762 Changes: _U stable/11/ stable/11/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp Fixed in head (r305218) and stable/11 (r305550). |