[PATCH 2/2] fix binary linking errors on Solaris due to misplacing of -Wl, -u, <symbol> option
Karel Gardas
karel.gardas at centrum.cz
Sun Jan 12 22:41:54 UTC 2014
---
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
More information about the ghc-devs
mailing list