Some packages, network in particular, require to link additional libraries to avoid missing symbol errors when linking on Windows. diff --git a/haskell/private/actions/package.bzl b/haskell/private/actions/package.bzl index bcb83c73..46148f16 100644 --- a/haskell/private/actions/package.bzl +++ b/haskell/private/actions/package.bzl @@ -97,7 +97,12 @@ def package( "library-dirs": ["${pkgroot}"] + extra_lib_dirs, "dynamic-library-dirs": ["${pkgroot}"] + extra_dynamic_lib_dirs, "hs-libraries": [pkg_id.library_name(hs, my_pkg_id)] if has_hs_library else [], - "extra-libraries": extra_libs, + "extra-libraries": extra_libs + ([ + "stdc++", + "crypt32", + "shlwapi", + "ws2_32", + ] if hs.toolchain.is_windows else []), "depends": hs.package_ids, "exposed-modules": exposed_modules, }) diff --git a/haskell/assets/ghc_8_6_5_win_base.patch b/haskell/assets/ghc_8_6_5_win_base.patch index d870deef..77edb1d2 100644 --- a/haskell/assets/ghc_8_6_5_win_base.patch +++ b/haskell/assets/ghc_8_6_5_win_base.patch @@ -5,7 +5,7 @@ hs-libraries: HSbase-4.12.0.0 extra-libraries: - wsock32 user32 shell32 msvcrt mingw32 mingwex -+ wsock32 user32 shell32 msvcrt mingw32 mingwex shlwapi ++ wsock32 ws2_32 user32 shell32 msvcrt mingw32 mingwex shlwapi stdc++ include-dirs: $topdir\base-4.12.0.0\include includes: HsBase.h