
#15718: Build panic on ghc-8.6.1 under FreeBSD when using -fllvm -------------------------------------+------------------------------------- Reporter: gwright | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.1 Keywords: | Operating System: FreeBSD Architecture: x86_64 | Type of failure: Compile-time (amd64) | crash or panic Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- This looks like a straightforward oversight. I am building my pure haskell LU solver under FreeBSD. I use the -fllvm compiler option because I need extra numerical performance. When I build, I get (this is the output from GitLab CI, which is in turn running 'stack build') {{{ Running with gitlab-runner 11.2.0 (35e8515d) on stacker.18clay.com a2111f63 Using Shell executor... Running on stacker.18clay.com... Fetching changes... Removing .stack-work/ HEAD is now at f8fe3b4 Use llvm60 on FreeBSD. From https://gitlab.18clay.com/software/luSolve f8fe3b4..c993a26 streamlined -> origin/streamlined Checking out c993a262 as streamlined... Skipping Git submodules setup $ stack build --pedantic luSolve-0.5: configure (lib) Configuring luSolve-0.5... luSolve-0.5: build (lib) Preprocessing library for luSolve-0.5.. Building library for luSolve-0.5.. [1 of 1] Compiling Numeric.LinearAlgebra.LUSolve ( src/Numeric/LinearAlgebra/LUSolve.hs, .stack- work/dist/x86_64-freebsd/Cabal-2.4.0.1/build/Numeric/LinearAlgebra/LUSolve.o ) ghc: panic! (the 'impossible' happened) (GHC version 8.6.1 for x86_64-portbld-freebsd): Failed to lookup the datalayout for x86_64-unknown-freebsd; available targets: ["i386-unknown-windows","i686-unknown-windows","x86_64 -unknown-windows","arm-unknown-linux-gnueabihf","armv6-unknown-linux- gnueabihf","armv6l-unknown-linux-gnueabihf","armv7-unknown-linux-gnueabihf ","armv7a-unknown-linux-gnueabi","armv7l-unknown-linux-gnueabihf","aarch64 -unknown-linux-gnu","aarch64-unknown-linux","i386-unknown-linux-gnu","i386 -unknown-linux","x86_64-unknown-linux-gnu","x86_64-unknown-linux","armv7 -unknown-linux-androideabi","aarch64-unknown-linux-android","powerpc64le- unknown-linux","amd64-portbld-freebsd","arm-unknown-nto-qnx-eabi","i386 -apple-darwin","x86_64-apple-darwin","armv7-apple-ios","aarch64-apple- ios","i386-apple-ios","x86_64-apple-ios","aarch64-unknown-freebsd","armv6 -unknown-freebsd-gnueabihf","armv7-unknown-freebsd-gnueabihf"] CallStack (from HasCallStack): error, called at compiler/llvmGen/LlvmCodeGen.hs:96:24 in ghc:LlvmCodeGen Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug -- While building custom Setup.hs for package luSolve-0.5 using: /home/gitlab-runner/.stack/setup-exe-cache/x86_64-freebsd/Cabal- simple_mPHDZzAJ_2.4.0.1_ghc-8.6.1 --builddir=.stack- work/dist/x86_64-freebsd/Cabal-2.4.0.1 build lib:luSolve --ghc-options " -ddump-hi -ddump-to-file" Process exited with code: ExitFailure 1 ERROR: Job failed: exit status 1 }}} The bug seems simple. The compiler is looking for the datalayout for x86_64-unknown-freebsd; but what is available is amd64-portbld-freebsd. Is this just a simple naming error? The stack resolver was the cutting- edge nightly-2018-10-6; if it is a problem in their packaging rather than ghc itself I will file a report with them (though ghc did panic here, and as the breath ebbed from its ASTs and light faded from the code generator, it pleaded that a bug report be filed). I've attached the .cabal file in case it helps. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15718 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler