[Haskell-cafe] Partial statical linking
Jason Dusek
jason.dusek at gmail.com
Sat Nov 26 07:59:18 CET 2011
Some time ago, I wrote to this list about making shared
libraries with GHC, in such a way that the RTS was linked and
ready to go. Recently, I've been looking a similar but, in a
sense, opposite problem: linking Haskell executables with some
of their non-Haskell dependencies, for distribution.
I tried passing a few different sets of options to the linker
through GHC, with -optl:
-optl'-Wl,-r'
-optl'-Wl,-r,-dy'
-optl'-Wl,-static,-lffi,-lgmp,-dy'
None of these had the desired effect. In the end, running GHC
with -v and carefully editing the linker line produced the
desired change (I have linked to and provided the diff below).
The effect -optl seems to be to introduce options in the linker
line just before -lHSrtsmain, which would seem to prevent one
from linking libffi and libgmp differently. Is editing and
storing away the linker script the best option at present for
partially static linking?
--
Jason Dusek
() ascii ribbon campaign - against html e-mail
/\ www.asciiribbon.org - against proprietary attachments
https://github.com/solidsnack/arx/commit/90ec5efdb0e991344aa9a4ad29456d466e022c3e
#@@ -122,10 +122,8 @@
# -lHSarray-0.3.0.2 \
# -lHSbase-4.3.1.0 \
# -lHSinteger-gmp-0.2.0.3 \
#- -lgmp \
# -lHSghc-prim-0.2.0.0 \
# -lHSrts \
#- -lffi \
# -lm \
# -lrt \
# -ldl \
#@@ -136,4 +134,7 @@
# -lgcc_s --no-as-needed \
# /usr/lib/gcc/x86_64-linux-gnu/4.6.1/crtend.o \
# /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crtn.o \
#+ -static \
#+ -lgmp \
#+ -lffi \
More information about the Haskell-Cafe
mailing list