[Bug 261798] lang/ghc: fix llvm code generation
- Reply: bugzilla-noreply_a_freebsd.org: "maintainer-feedback requested: [Bug 261798] lang/ghc: fix llvm code generation"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 261798] lang/ghc: Fails to compile due to base/ports LLVM triple target names: error: Warning: Couldn't figure out LLVM version!"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 261798] lang/ghc: Fails to compile due to base/ports LLVM triple target names: error: Warning: Couldn't figure out LLVM version!"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 261798] lang/ghc: Fails to compile due to base/ports LLVM triple target names: error: Warning: Couldn't figure out LLVM version!"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 261798] lang/ghc: Fails to compile due to base/ports LLVM triple target names: error: Warning: Couldn't figure out LLVM version!"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 261798] lang/ghc: Fails to compile due to base/ports LLVM triple target names: error: Warning: Couldn't figure out LLVM version!"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 08 Feb 2022 19:21:07 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=261798 Bug ID: 261798 Summary: lang/ghc: fix llvm code generation Product: Ports & Packages Version: Latest Hardware: amd64 OS: Any Status: New Severity: Affects Many People Priority: --- Component: Individual Port(s) Assignee: haskell@FreeBSD.org Reporter: contact@shiori.com.br Flags: maintainer-feedback?(haskell@FreeBSD.org) Assignee: haskell@FreeBSD.org Created attachment 231654 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=231654&action=edit patch Salve, salve! GHC searches for a `amd64-portbld-freebsd` version of LLVM, which does not match either base or ports version identifiers. If we try to compile a simple hello world: ``` $ ghc -fllvm main.hs -o main.o [1 of 1] Compiling Main ( main.hs, main.o ) <no location info>: error: Warning: Couldn't figure out LLVM version! Make sure you have installed LLVM between [9 and 13) ghc: panic! (the 'impossible' happened) (GHC version 8.10.7: Failed to lookup LLVM data layout Target: x86_64-portbld-freebsd Available targets: i386-unknown-windows i686-unknown-windows x86_64-unknown-windows arm-unknown-linux-gnueabihf arm-unknown-linux-musleabihf armv6-unknown-linux-gnueabihf armv6-unknown-linux-musleabihf armv6l-unknown-linux-gnueabihf armv6l-unknown-linux-musleabihf armv7-unknown-linux-gnueabihf armv7-unknown-linux-musleabihf armv7a-unknown-linux-gnueabi armv7a-unknown-linux-musleabi armv7a-unknown-linux-gnueabihf armv7a-unknown-linux-musleabihf armv7l-unknown-linux-gnueabi armv7l-unknown-linux-musleabi armv7l-unknown-linux-gnueabihf armv7l-unknown-linux-musleabihf aarch64-unknown-linux-gnu aarch64-unknown-linux-musl aarch64-unknown-linux i386-unknown-linux-gnu i386-unknown-linux-musl i386-unknown-linux x86_64-unknown-linux-gnu x86_64-unknown-linux-musl x86_64-unknown-linux x86_64-unknown-linux-android armv7-unknown-linux-androideabi aarch64-unknown-linux-android armv7a-unknown-linux-androideabi powerpc64le-unknown-linux-gnu powerpc64le-unknown-linux-musl powerpc64le-unknown-linux s390x-ibm-linux i386-apple-darwin x86_64-apple-darwin arm64-apple-darwin aarch64-apple-darwin armv7-apple-ios aarch64-apple-ios i386-apple-ios x86_64-apple-ios amd64-portbld-freebsd x86_64-unknown-freebsd aarch64-unknown-freebsd armv6-unknown-freebsd-gnueabihf armv7-unknown-freebsd-gnueabihf arm-unknown-nto-qnx-eabi Call stack: CallStack (from HasCallStack): callStackDoc, called at compiler/utils/Outputable.hs:1179:37 in ghc:Outputable pprPanic, called at compiler/llvmGen/LlvmCodeGen.hs:113:20 in ghc:LlvmCodeGen Please report this as a GHC bug: https://www.haskell.org/ghc/reportabug ``` It seems `amd64-portbld-freebsd` was in fact de identifier used on ports LLVM (please see https://gitlab.haskell.org/ghc/ghc/-/issues/15718), but that is not the case anymore. Now all versions (tested 90 (default), 10 (default on PowerPC) and 13) use `x86_64-portbld-freebsd`, causing GHC to fail. Although `x86_64-unknown-freebsd` (base LLVM) is correct, the way GHC searches for LLVM is neither clear nor documented, and it does not seem to use base LLVM at all. This patch addresses the problem renaming the identifier to the correct one. Poudriere testport does not complain. Built on both 13.0-RELEASE and 14.0-CURRENT. Cheers! -- You are receiving this mail because: You are the assignee for the bug.