<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); ">Hi All, <div><br></div><div>I am trying to run a Haskell program compiled on my Ubuntu box on a server box that does not have GHC installed and where I dont have root privileges. I run into several missing libraries, in particular libgmp, libffi and libuuid (the later two are needed by my program). How I can statically link my program such that I can run it on this server?</div>
<div><br></div><div>I have a tried static linking as follows:</div><div><i>  ghc -static -optl-static -optl-pthread --make -o p main.hs</i></div><div><br></div><div>This gives me several warnings of the form:</div><div><div>
<i>/usr/lib/haskell-packages/ghc6/lib/network-2.2.1.7/ghc-6.12.3/libHSnetwork-2.2.1.7.a(BSD.o): In function `sw4B_info&#39;:</i></div><div><i>(.text+0x584c): warning: Using &#39;getservbyport&#39; in statically linked applications requires at runtime the shared libraries from the glibc version used for linking</i></div>
</div><div><br></div><div>And sure enough the generated executable segfaults on the server which has a different glibc version. </div><div><br></div><div>Is there some way to static link all the other libraries needed except glibc? I have looked around for an example of this but to no avail and the output of the -v switch seemed a bit overwhelming. Or is there some other way to go about doing this?</div>
<div><br></div><div>thanks in advance,</div><div>Roshan</div><div><br></div><div>ps. including these, in case they maybe of some use: </div><div><br></div><div>My machine:</div><div><br></div><div><div><div><i>$ ldd p</i></div>
<div><i><span style="white-space: pre-wrap; ">        </span>linux-vdso.so.1 =&gt;  (0x00007fff3ffff000)</i></div><div><i><span style="white-space: pre-wrap; ">        </span>libncurses.so.5 =&gt; /lib/libncurses.so.5 (0x00007fbdbbf4f000)</i></div>
<div><i><span style="white-space: pre-wrap; ">        </span>libuuid.so.1 =&gt; /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fbdbbd4a000)</i></div><div><i><span style="white-space: pre-wrap; ">        </span>librt.so.1 =&gt; /lib/x86_64-linux-gnu/librt.so.1 (0x00007fbdbbb41000)</i></div>
<div><i><span style="white-space: pre-wrap; ">        </span>libutil.so.1 =&gt; /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fbdbb93e000)</i></div><div><i><span style="white-space: pre-wrap; ">        </span>libdl.so.2 =&gt; /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbdbb73a000)</i></div>
<div><i><span style="white-space: pre-wrap; ">        </span>libpthread.so.0 =&gt; /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbdbb51b000)</i></div><div><i><span style="white-space: pre-wrap; ">        </span>libgmp.so.3 =&gt; /usr/lib/libgmp.so.3 (0x00007fbdbb2be000)</i></div>
<div><i><span style="white-space: pre-wrap; ">        </span>libffi.so.5 =&gt; /usr/lib/libffi.so.5 (0x00007fbdbb0b6000)</i></div><div><i><span style="white-space: pre-wrap; ">        </span>libm.so.6 =&gt; /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbdbae30000)</i></div>
<div><i><span style="white-space: pre-wrap; ">        </span>libc.so.6 =&gt; /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbdbaa9c000)</i></div><div><i><span style="white-space: pre-wrap; ">        </span>/lib64/ld-linux-x86-64.so.2 (0x00007fbdbc1b5000)</i></div>
</div><div><br></div><div>Server:</div><div><br></div><div><div><i>$ ldd p</i></div><div><i>./p: /lib64/libuuid.so.1: no version information available (required by ./p)</i></div><div><i>        linux-vdso.so.1 =&gt;  (0x00007fffc51fd000)</i></div>
<div><i>        libncurses.so.5 =&gt; /usr/lib64/libncurses.so.5 (0x00000037bce00000)</i></div><div><i>        libuuid.so.1 =&gt; /lib64/libuuid.so.1 (0x00000037b7200000)</i></div><div><i>        librt.so.1 =&gt; /lib64/librt.so.1 (0x00000037b5a00000)</i></div>
<div><i>        libutil.so.1 =&gt; /lib64/libutil.so.1 (0x00000037bda00000)</i></div><div><i>        libdl.so.2 =&gt; /lib64/libdl.so.2 (0x00000037b4a00000)</i></div><div><i>        libpthread.so.0 =&gt; /lib64/libpthread.so.0 (0x00000037b5200000)</i></div>
<div><i>        libgmp.so.3 =&gt; not found</i></div><div><i>        libffi.so.5 =&gt; not found</i></div><div><i>        libm.so.6 =&gt; /lib64/libm.so.6 (0x00000037b4e00000)</i></div><div><i>        libc.so.6 =&gt; /lib64/libc.so.6 (0x00000037b4600000)</i></div>
<div><i>        /lib64/ld-linux-x86-64.so.2 (0x00000037b4200000)</i></div></div></div><div><i><br></i></div></span>