summaryrefslogtreecommitdiff
path: root/compiler/cmm/CLabel.hs
diff options
context:
space:
mode:
authorBen.Lippmeier.anu.edu.au <unknown>2010-01-02 10:03:34 +0000
committerBen.Lippmeier.anu.edu.au <unknown>2010-01-02 10:03:34 +0000
commit3f6e3045889112bf4cab2768c92095209f02fe6c (patch)
tree16706246b22cc31fef7ce8af1d14ee11bbd67688 /compiler/cmm/CLabel.hs
parent82be37a44c572d2e6df6b7da09ea4e059c3f3133 (diff)
downloadhaskell-3f6e3045889112bf4cab2768c92095209f02fe6c.tar.gz
Assume CmmLabels have dynamic linkage on non-Windows
Diffstat (limited to 'compiler/cmm/CLabel.hs')
-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)