summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'compiler')
-rw-r--r--compiler/cmm/CLabel.hs8
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/cmm/CLabel.hs b/compiler/cmm/CLabel.hs
index 7c8fe85a34..d7f7724b3c 100644
--- a/compiler/cmm/CLabel.hs
+++ b/compiler/cmm/CLabel.hs
@@ -808,13 +808,13 @@ labelDynamic this_pkg lbl =
-- is the RTS in a DLL or not?
RtsLabel _ -> not opt_Static && (this_pkg /= rtsPackageId)
+ IdLabel n _ k -> isDllName this_pkg n
+
+#if mingw32_TARGET_OS
-- When compiling in the "dyn" way, eack package is to be linked into its own shared library.
CmmLabel pkg _ _
-> not opt_Static && (this_pkg /= pkg)
- IdLabel n _ k -> isDllName this_pkg n
-
-#if mingw32_TARGET_OS
-- Foreign label is in some un-named foreign package (or DLL)
ForeignLabel _ _ ForeignLabelInExternalPackage _ -> True
@@ -831,6 +831,8 @@ labelDynamic this_pkg lbl =
-- so we claim that all foreign imports come from dynamic libraries
ForeignLabel _ _ _ _ -> True
+ CmmLabel pkg _ _ -> True
+
#endif
ModuleInitLabel m _ -> not opt_Static && this_pkg /= (modulePackageId m)
PlainModuleInitLabel m -> not opt_Static && this_pkg /= (modulePackageId m)