Skip to content

Compiling packages seems to fail unless shared: True is set in cabal.project #185

Description

@hasufell

E.g. when trying to compile ghcup with a dynamic stable-haskell GHC, I get:

Failed to build host:directory-ospath-streaming-0.3-36314961506d372e9056f2aede13bfdfe30e9a034e346dbbc2d22b033cf11864.
Build log ( /home/hasufell/git/ghcup-hs/dist-newstyle/logs/host/x86_64-portbld-freebsd/directory-ospath-streaming-0.3-36314961506d372e9056f2aede13bfdfe30e9a034e346dbbc2d22b033cf11864 ):
Configuring library for directory-ospath-streaming-0.3...
Preprocessing library for directory-ospath-streaming-0.3...
Building library for directory-ospath-streaming-0.3...
[1 of 7] Compiling System.Directory.OsPath.Types ( src/System/Directory/OsPath/Types.hs, /home/hasufell/git/ghcup-hs/dist-newstyle/build/host/x86_64-portbld-freebsd/directory-ospath-streaming-0.3-36314961506d372e9056f2aede13bfdfe30e9a034e346dbbc2d22b033cf11864/build/System/Directory/OsPath/Types.o, /home/hasufell/git/ghcup-hs/dist-newstyle/build/host/x86_64-portbld-freebsd/directory-ospath-streaming-0.3-36314961506d372e9056f2aede13bfdfe30e9a034e346dbbc2d22b033cf11864/build/System/Directory/OsPath/Types.dyn_o )
[2 of 7] Compiling System.Directory.OsPath.FileType ( src/System/Directory/OsPath/FileType.hs, /home/hasufell/git/ghcup-hs/dist-newstyle/build/host/x86_64-portbld-freebsd/directory-ospath-streaming-0.3-36314961506d372e9056f2aede13bfdfe30e9a034e346dbbc2d22b033cf11864/build/System/Directory/OsPath/FileType.o, /home/hasufell/git/ghcup-hs/dist-newstyle/build/host/x86_64-portbld-freebsd/directory-ospath-streaming-0.3-36314961506d372e9056f2aede13bfdfe30e9a034e346dbbc2d22b033cf11864/build/System/Directory/OsPath/FileType.dyn_o )
src/System/Directory/OsPath/FileType.hs:30:1: error: [GHC-47808]
    Failed to load dynamic interface file for System.Posix.Files.PosixString:
      Exception when reading interface file  /home/hasufell/git/ghcup-hs/dist-newstyle/store/host/x86_64-portbld-freebsd/lib/unix-2.8.8.0-45ca9ee32595cfa83b4984aad95b19e2f444050985074ff84a88f20a55c58ffc/System/Posix/Files/PosixString.dyn_hi
        /home/hasufell/git/ghcup-hs/dist-newstyle/store/host/x86_64-portbld-freebsd/lib/unix-2.8.8.0-45ca9ee32595cfa83b4984aad95b19e2f444050985074ff84a88f20a55c58ffc/System/Posix/Files/PosixString.dyn_hi: withBinaryFile: does not exist (No such file or directory)
   |
30 | import qualified System.Posix.Files.PosixString as PosixF
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

[4 of 7] Compiling System.Directory.OsPath.Utils ( src/System/Directory/OsPath/Utils.hs, /home/hasufell/git/ghcup-hs/dist-newstyle/build/host/x86_64-portbld-freebsd/directory-ospath-streaming-0.3-36314961506d372e9056f2aede13bfdfe30e9a034e346dbbc2d22b033cf11864/build/System/Directory/OsPath/Utils.o )
Error: [Cabal-7125]
Failed to build host:directory-ospath-streaming-0.3-36314961506d372e9056f2aede13bfdfe30e9a034e346dbbc2d22b033cf11864 (which is required by exe:ghcup from host:ghcup-0.2.6.0-ghcup). See the build log above for details.

As the title says, setting shared: True makes it compile, but why is this setting required now? That seems wrong.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions