The HSC2HS_EXTRA option was fixed in ``` commit 99623358754d812b8b4bdfcdc57190d38617b9cc Author: Matthew Pickering <matthewtpicker...@gmail.com> Date: Thu Mar 10 20:48:44 2022 +0000
hadrian: Correct generation of hsc2hs wrapper If you inspect the inside of a wrapper script for hsc2hs you will see that the cflag and lflag values are concatenated incorrectly. ``` HSC2HS_EXTRA="--cflag=-U__i686--lflag=-fuse-ld=gold" ``` It should instead be ``` HSC2HS_EXTRA="--cflag=-U__i686 --lflag=-fuse-ld=gold" ``` Fixes #21221 ``` On Tue, Mar 21, 2023 at 1:28 PM Matthew Pickering <matthewtpicker...@gmail.com> wrote: > > Hi Martin, > > Thanks for your reports. > > I have approved your account on gitlab now. > > * The FreeBSD bindists are not officially created during the release > process. The ones you are using from ghcup are created (and > maintained) by the ghcup maintainers. > * Most linux bindists are created using the old make build system on > the 9.2.* series but it seems these bindists were not. > * We will gladly fix the bugs you report with the hsc2hs wrapper. > * Please open an issue for the problem with --target flag > > Cheers, > > Matt > > On Mon, Mar 20, 2023 at 2:05 AM Martin Baulig via ghc-devs > <ghc-devs@haskell.org> wrote: > > > > Hello, > > > > I am a FreeBSD user, running FreeBSD 13.1 with Clang 13 and GCC 12.2, and > > still fairly new to the Haskell Platform. > > > > When I tried to upgrade a hobby project to Stackage's latest LTS 20.15, I > > realized that neither the GHC 9.2.6 nor > > the GHC 9.2.7 binary packages from GHCUP work anymore. > > > > There are two issues - and I wrote a detailed article about my > > investigation on Medium: > > https://medium.com/@martin.baulig/ghc-9-2-7-on-freebsd-22afab71c715 > > > > The first one is a trivial one-line change - in > > hadrian/src/Rules/BinaryDist.hs, we need to change > > > > ( "HSC2HS_EXTRA=\"" <> unwords ccArgs <> unwords ldFlags <> "\"" > > > > > > into > > > > ( "HSC2HS_EXTRA=\"" <> unwords (ccArgs <> ldFlags) <> "\"" > > > > > > Otherwise, this will break when both ccArgs and ldFlags are non-empty: > > > > HSC2HS_EXTRA="--cflag=--target=x86_64-portbld-freebsd--lflag=--target=x86_64-portbld-freebsd > > --lflag=-fuse-ld=lld" > > > > > > Unfortunately, this is not quite it just yet. > > > > The problem is that Clang supports the --target= argument, but GCC does not > > - and it looks like Cabal insists on always > > invoking hsc2hs with an explicit --cc= argument. > > > > Overriding that in ~/.cabal/config doesn't work either - because then Cabal > > passes "-pgmc /usr/bin/cc" to GHC, but no > > "-pgma" and GHC tries to invoke GCC for assembling with a Clang-only > > argument. > > > > I am a bit lost here now about what the correct path forward is, but would > > very much like to help fixing this problem, > > so I created an account on gitlab.haskell.org to report this issue, but got > > a message saying that it is awaiting admin > > approval. Looking a bit further in the documentation for new contributors, > > I saw a comment suggesting I should > > post on this mailing list and ask for approval. Could an admin please have > > a look at that? My user name is my last > > name in lowercase, baulig. > > > > Looking forward to hear back from you, > > > > Martin > > > > _______________________________________________ > > ghc-devs mailing list > > ghc-devs@haskell.org > > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs