Depend on crc32c
package
#24
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When cross-compiling to Windows
ouroboros-consensus
using Haskell.nix, we encountered the following error:The veredict is that both
crc32c
anddigest
(on which we depend via different dependencies) compile C sources for libcrc32c, and they both expose the same symbols. In a normal Windows build this is not a problem, but it is a problem for the cross-compilation.digest
has a git submodule with Google's crc32c, andcrc32c
instead has a local vendored version of the source code.A possible alternative would be to create a package that prepares the C sources for both
crc32c
anddigest
. In the same spirit as https://hackage.haskell.org/package/zlib-clib.I'm opening this PR as a way to start the discussion on how to best solve this. Unfortunately
digest
exposed quite some cabal flags which do not exist incrc32c
, so I don't really know how to best proceed.