<div dir="ltr"><div class="Wj3C7c">On Tue, Aug 19, 2008 at 7:15 PM, Matthew Fluet <span dir="ltr">&lt;<a href="mailto:fluet@tti-c.org" target="_blank">fluet@tti-c.org</a>&gt;</span> wrote:<br></div><div class="gmail_quote">
<div dir="ltr"><div class="gmail_quote"><div><div></div><div class="Wj3C7c"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>On Tue, 19 Aug 2008, Wesley W. Terpstra wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I don&#39;t have a i386 with osx, but I gather from this checkin that .hidden<br>
doesn&#39;t work. Could someone try &quot;.private_extern&quot; instead?<br>
</blockquote>
<br></div>
&quot;.private_extern&quot; seems to work for &#39;-format archive&#39;.<br>
But, with &#39;-format library&#39;, I get:<br>
<br>
[fluet@fenrir temp]$ ../mlton.git-svn.trunk/build/bin/mlton -default-ann &#39;allowFFI true&#39; -export-header foo.h -format library -keep g -keep o -verbose 2 foo.sml<br>
...<br>
 &nbsp; Link starting<br>
 &nbsp; &nbsp; &nbsp;gcc -o foo.dylib -dynamiclib foo.1.o foo.0.o \<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-L/Users/fluet/devel/mlton/mlton.git-svn.trunk/build/lib/self \<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-lmlton-pic -lgdtoa-pic -lm -lgmp -L/usr/local/lib -L/opt/local/lib<br>
ld: foo.0.o has local relocation entries in non-writable section (__TEXT,__text)<br>
/usr/libexec/gcc/i686-apple-darwin8/4.0.1/libtool: internal link edit command failed<br>
 &nbsp; Link raised in 0.06 + 0.00 (0% GC)<br>
MLton raised in 0.23 + 0.00 (0% GC)<br>
call to system failed with exit status 1:<br>
gcc -o foo.dylib -dynamiclib foo.1.o foo.0.o -L/Users/fluet/devel/mlton/mlton.git-svn.trunk/build/lib/self -lmlton-pic -lgdtoa-pic -lm -lgmp -L/usr/local/lib -L/opt/local/lib</blockquote></div></div><div><br>That&#39;s because the i386 assembly isn&#39;t PIC, and osx requires PIC libraries (unlike linux) &lt;<a href="http://hackage.haskell.org/trac/ghc/wiki/Commentary/PositionIndependentCode" target="_blank">http://hackage.haskell.org/trac/ghc/wiki/Commentary/PositionIndependentCode</a>&gt;. Grrrr.<br>

<br>A text relocation is where the linker records what locations of the code need to be changed after loading a library. I was hopeful I wouldn&#39;t need PIC for i386. :-(<br><br></div></div></div>
</div><br></div>