I am able to fix my build problem, by creating a link to&nbsp;<i>libHSrts-ghc7.4.2.so,&nbsp;</i>named&nbsp;<i>libHSrts.so</i>:<br><br><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font face="courier new, monospace" size="1" color="#0000ff">dbanas@dbanas-lap:~/prj/AMI-Tool$ ll /usr/lib/ghc-7.4.2/libHSrts*</font></div><div><font face="courier new, monospace" size="1" color="#0000ff">-rw-r--r-- 1 root root &nbsp;980950 Apr 23 20:08 /usr/lib/ghc-7.4.2/libHSrts.a</font></div><div><font color="#0000ff" face="courier new, monospace" size="1">{snip}</font></div><div><font face="courier new, monospace" size="1" color="#0000ff">-rwxr-xr-x 1 root root &nbsp;429218 Apr 23 20:08 /usr/lib/ghc-7.4.2/libHSrts-ghc7.4.2.so*</font></div><div><font color="#0000ff" face="courier new, monospace" size="1">{snip}</font></div><div><font face="courier new, monospace" size="1" color="#0000ff">lrwxrwxrwx 1 root root &nbsp; &nbsp; &nbsp;20 Apr 27 08:20 /usr/lib/ghc-7.4.2/<b>libHSrts.so</b> -&gt; libHSrts-ghc7.4.2.so*</font></div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font color="#0000ff" face="courier new, monospace" size="1">{snip}</font></div></blockquote><div>&nbsp;</div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font face="courier new, monospace" size="1" color="#0000ff">dbanas@dbanas-lap:~/prj/AMI-Tool$ make</font></div><div><font face="courier new, monospace" size="1" color="#0000ff">rm -f libami.so</font></div><div><font face="courier new, monospace" size="1" color="#0000ff">ghc -o libami.so -shared -dynamic -package parsec -lHSrts -lm -lffi -lrt AMIParse.o AMIModel.o ami_model.o ExmplUsrModel.o Filter.o</font></div><div><font face="courier new, monospace" size="1" color="#0000ff">dbanas@dbanas-lap:~/prj/AMI-Tool$&nbsp;</font></div></blockquote><div><br></div><div>However, I'm a little confused as to why the "-package parsec" isn't triggering the same issue, since the parsec dynamic libraries were given the same "-ghc7.4.2" suffix:</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div><font face="courier new, monospace" size="1" color="#0000ff">dbanas@dbanas-lap:~/prj/AMI-Tool$ ll ~/.cabal/lib/parsec-3.1.3/ghc-7.4.2/</font></div></div><div><div><font face="courier new, monospace" size="1" color="#0000ff">total 5816</font></div></div><div><div><font color="#0000ff" face="courier new, monospace" size="1">{snip}</font></div></div><div><div><font face="courier new, monospace" size="1" color="#0000ff">-rw-r--r-- 1 dbanas dbanas 1006668 Apr 24 16:37 HSparsec-3.1.3.o</font></div></div><div><div><font face="courier new, monospace" size="1" color="#0000ff">-rw-r--r-- 1 dbanas dbanas 1340698 Apr 24 16:37 libHSparsec-3.1.3.a</font></div></div><div><div><font face="courier new, monospace" size="1" color="#0000ff">-rwxr-xr-x 1 dbanas dbanas 1061317 Apr 24 16:37 libHSparsec-3.1.3<b>-ghc7.4.2</b>.so*</font></div></div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font face="courier new, monospace" size="1" color="#0000ff">{snip}</font></div></blockquote><div><br></div><div><b>Any thoughts?</b></div><div><br></div><div>Thanks,</div><div>-db</div><div><br></div><div><br></div>On Saturday, April 27, 2013 6:37:43 AM UTC-7, David Banas wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir="ltr">Recently, I had to recompile ghc, in order to get the "-dyn" versions of the standard libraries installed. (The standard Ubuntu 12.10 64-bit Linux distribution doesn't include them in its "haskell-platform" package, and you can't upgrade "base" using the normal "cabal iinstall" approach, from what I understand.)<div>
<br></div><div>When I did this, the "-dyn" versions of the standard libraries were, in fact, installed. However, they were given names with a "-<a href="http://ghc7.4.2.so" target="_blank">ghc7.4.2.so</a>" suffix. And this is causing the build of a previously working project to break, thusly:</div>
<div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><div><span style="color:rgb(0,0,255);font-family:'courier new',monospace;font-size:x-small">ghc -o libami.so -shared -dynamic -package parsec <b>-lHSrts</b> -lm -lffi -lrt AMIParse.o AMIModel.o ami_model.o ExmplUsrModel.o Filter.o</span><br>
</div><div><span style="color:rgb(0,0,255);font-family:'courier new',monospace;font-size:x-small"><br></span></div><div><font color="#0000ff" face="courier new, monospace" size="1">/usr/bin/ld: /usr/lib/ghc-7.4.2/<b>libHSrts.a</b>(<wbr>RtsAPI.o): relocation R_X86_64_32S against `ghczmprim_GHCziTypes_Czh_con_<wbr>info' can not be used when making a shared object; recompile with -fPIC</font></div>
<div><br></div></div></div></blockquote><div><div>The problem is this: the linker is picking up the "*.a" version of the <i>HSrts</i> library, instead of the "*.so" version, which is what it really needs. And the reason it's doing this is the "*.so" version has been given a "-ghc7.4.2" suffix:</div>
<div><br></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><div><font face="courier new, monospace" size="1" color="#0000ff">dbanas@dbanas-lap:~/prj/AMI-<wbr>Tool$ l /usr/lib/ghc-7.4.2/libHSrts*</font></div>
</div></div><div><div><div><font face="courier new, monospace" size="1" color="#0000ff">/usr/lib/ghc-7.4.2/libHSrts.a</font></div></div></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">
<div><div><div><font color="#0000ff" face="courier new, monospace" size="1">{snip}</font></div></div></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div>
<div><font face="courier new, monospace" size="1" color="#0000ff">/usr/lib/ghc-7.4.2/libHSrts<b>-<wbr>ghc7.4.2</b>.so*</font></div></div></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">
<div><div><div><font color="#0000ff" face="courier new, monospace" size="1">{snip}</font></div></div></div></blockquote><div><div><div><br></div><div>So, it seems to me that I need to either:</div>
<div><ol><li>Tell the linker about the possibility of a "-ghc7.4.2" file name suffix, or</li><li>rebuild my "*.so"s without that suffix.</li></ol><b>Can anyone tell me:</b></div>
<div><ul><li><b>How to accomplish either #1 or #2, above?</b></li><li><b>Which one is the preferred solution to the problem?</b></li><li><b>Am I completely off in the weeds?</b></li><li>
<b>If so, what should I really be doing, in order to fix this issue?</b></li></ul><div>Thanks!</div><div>-db</div><div><br></div></div></div></div></div>
</blockquote>