---
 compiler/main/DriverPipeline.hs |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs
index 337778e..1c593b6 100644
--- a/compiler/main/DriverPipeline.hs
+++ b/compiler/main/DriverPipeline.hs
@@ -1790,7 +1790,16 @@ linkBinary' staticLink dflags o_files dep_packages = do
                                  -- HS packages, because libtool doesn't 
accept other options.
                                  -- In the case of iOS these need to be added 
by hand to the
                                  -- final link in Xcode.
-            else package_hs_libs ++ extra_libs ++ other_flags
+            else other_flags ++ package_hs_libs ++ extra_libs -- -Wl,-u,<sym> 
contained in other_flags
+                                                              -- needs to be 
put before -l<package>,
+                                                              -- otherwise 
Solaris linker fails linking
+                                                              -- a binary with 
unresolved symbols in RTS
+                                                              -- which are 
defined in base package
+                                                              -- the reason 
for this is a note in ld(1) about
+                                                              -- '-u' option: 
"The placement of this option
+                                                              -- on the 
command line is significant.
+                                                              -- This option 
must be placed before the library
+                                                              -- that defines 
the symbol."
 
     pkg_framework_path_opts <-
         if platformUsesFrameworks platform
-- 
1.7.3.2

_______________________________________________
ghc-devs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/ghc-devs

Reply via email to