maintainer-feedback requested: [Bug 261798] lang/ghc: fix llvm code generation
- In reply to: bugzilla-noreply_a_freebsd.org: "[Bug 261798] lang/ghc: fix llvm code generation"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 08 Feb 2022 19:21:07 UTC
Bugzilla Automation <bugzilla@FreeBSD.org> has asked freebsd-haskell (Nobody)
<haskell@FreeBSD.org> for maintainer-feedback:
Bug 261798: lang/ghc: fix llvm code generation
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=261798
--- Description ---
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!