`extra-bundled-libraries` shouldn't use `hsLibraries`
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
**Describe the bug**
In [GHC#22564](https://gitlab.haskell.org/ghc/ghc/-/issues/22564#note_468545) we noted that users of Cabal's `extra-bundled-libraries` field are saddled with the unfortunate requirement of naming their native libraries with a rather ad-hoc `libC` prefix (specified in the Cabal [reference documentation](https://cabal.readthedocs.io/en/stable/cabal-package.html#pkg-field-extra-bundled-libraries)).
This requirement is due to the strange implementation of `extra-bundled-libraries`: "bundled" libraries are added to the `hsLibraries` field of `InstalledPackageInfo`, leaving GHC's runtime linker with an ambiguity regarding whether the library is a Haskell object (in which case it may need a "way" suffix in its name) or native object. The required `libHS`/`libC` prefix exists merely to allow the linker to resolve this ambiguity.
IMHO it would be much better if `extra-bundled-libraries` were instead implemented in terms of a new `InstalledPackageInfo` field, eliminating the ambiguity by construction.
(this was originally filed as [GHC#22732](https://gitlab.haskell.org/ghc/ghc/-/issues/22732)
Contributor guide
Assessment
This issue has not been assessed yet.