Hmm... that does indeed look like the wiki page I was referencing.  Is gcc-4.0.0 not the current version?<div><br></div><div>Here's the exact script (with sequence of commands) that I wrote to preserve exactly how I went about acquiring and installing ffigen and h-to-ffi.sh. If you have trouble reproducing it, let me know. It's just a stock Ubuntu 10.04 on x86_64, but I can give you a login on a remote box if need be, or get you a virtualbox image.<div>
<div><div><br></div><div>Thanks,<br>Jason</div><div><br></div><div><div>jaten@AtenMBP-2:~/research/djitia$ cat install-ffigen.sh </div><div>#!/bin/bash</div><div>svn co <a href="http://svn.clozure.com/publicsvn/ffigen4/trunk/ffigen4">http://svn.clozure.com/publicsvn/ffigen4/trunk/ffigen4</a></div>
<div>cd ffigen4/</div><div>wget <a href="http://ftp.gnu.org/gnu/gcc/gcc-4.0.0/gcc-core-4.0.0.tar.bz2">http://ftp.gnu.org/gnu/gcc/gcc-4.0.0/gcc-core-4.0.0.tar.bz2</a></div><div>wget <a href="http://ftp.gnu.org/gnu/gcc/gcc-4.0.0/gcc-objc-4.0.0.tar.bz2">http://ftp.gnu.org/gnu/gcc/gcc-4.0.0/gcc-objc-4.0.0.tar.bz2</a></div>
<div>make</div><div># example sudo tar xfz /home/jaten/pkg/llvm28/llvm-2.8/tools/ldc2/ffigen/ffigen4/ffigen-bin-linuxx8664-gcc-4.0.0-2011-03-18-23-40-54.tar.gz -C /usr/local</div><div>export TARBALL=`ls -1 | grep ffigen-bin`</div>
<div>export HERE=`pwd`</div><div><br></div><div>echo "installing now to:    /usr/local/ffigen   and   /usr/local/bin/h-to-ffi.sh   ...with sudo"</div><div>echo "sudo tar xfz `pwd`/`ls -1 | grep ffigen-bin` -C /usr/local"</div>
<div>sudo tar xfz `pwd`/`ls -1 | grep ffigen-bin` -C /usr/local</div><div><br></div><br><div class="gmail_quote">On Sat, Mar 19, 2011 at 11:37 AM, Gary Byers <span dir="ltr"><<a href="mailto:gb@clozure.com">gb@clozure.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hmm.  The Wiki page at <<a href="http://trac.clozure.com/ccl/wiki/BuildFFIGEN" target="_blank">http://trac.clozure.com/ccl/wiki/BuildFFIGEN</a>> is<br>

supposed to be the canonical reference that describes how to obtain/build/install<br>
the FFI translator.  In the past, we've distributed sources and binaries via<br>
other means, but there aren't supposed to be any links to those older versions<br>
and I can't find any links in the documentation.<br>
<br>
The current version doesn't have any problem translating /usr/include/link.h<br>
(or with the SIMD vector type referenced in the included file), but I'd certainly<br>
believe that older versions did.  If you got an older version, that'd explain<br>
it; if you remember how you got that version, we should fix any links to it<br>
so that they reference the Wiki page instead.<div class="im"><br>
<br>
On Sat, 19 Mar 2011, Jason E. Aten wrote:<br>
<br>
</div><div><div></div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thank you Raffael. ?I appreciate the pointer. I guess that confirms #1, and<br>
answers #2. :-)<br>
<br>
For #3, I've managed to locate the source code for the ffigen loader, and<br>
figured out that :SUBDIR is supposed to be :libc or :elf ?or similar.<br>
<br>
However I do manage to have populate.sh run into an issue:<br>
<br>
+++ /usr/include/link.h<br>
Need to create info for type:<br>
?<vector_type 0x7fab52eacb60<br>
?? ?type <real_type 0x7fab53619000 float SF<br>
?? ? ? ?size <integer_cst 0x7fab535fba80 constant invariant 32><br>
?? ? ? ?unit size <integer_cst 0x7fab535fb5a0 constant invariant 4><br>
?? ? ? ?align 32 symtab 18 alias set -1 precision 32<br>
?? ? ? ?pointer_to_this <pointer_type 0x7fab53619270>><br>
?? ?BLK<br>
?? ?size <integer_cst 0x7fab536146f0 type <integer_type 0x7fab536015b0<br>
bit_size_type> constant invariant 256><br>
?? ?unit size <integer_cst 0x7fab535fb570 type <integer_type 0x7fab536014e0<br>
long unsigned int> constant invariant 32><br>
?? ?align 256 symtab 341 alias set -1 nunits 8><br>
In file included from /usr/include/link.h:36:<br>
/usr/include/bits/link.h:68: internal compiler error: in<br>
ffi_create_type_info, at ffi.c:428<br>
Please submit a full bug report,<br>
with preprocessed source if appropriate.<br>
See <URL:<a href="http://gcc.gnu.org/bugs.html" target="_blank">http://gcc.gnu.org/bugs.html</a>> for instructions.<br>
<br>
where the relevant section from /usr/include/bits/link.h, including line 68<br>
is this:<br>
<br>
/* Registers for entry into PLT on x86-64. ?*/<br>
# if __GNUC_PREREQ (4,0)<br>
typedef float La_x86_64_xmm __attribute__ ((__vector_size__ (16)));<br>
typedef float La_x86_64_ymm __attribute__ ((__vector_size__ (32))); ?/* line<br>
68 */<br>
# else<br>
typedef float La_x86_64_xmm __attribute__ ((__mode__ (__V4SF__)));<br>
# endif<br>
<br>
Arg. What should I try? ?Is this the right place to report this?<br>
<br>
Thank you.<br>
<br>
Jason<br>
<br>
<br>
On Sat, Mar 19, 2011 at 12:21 AM, Raffael Cavallaro<br>
<<a href="mailto:raffaelcavallaro@mac.com" target="_blank">raffaelcavallaro@mac.com</a>> wrote:<br>
<br>
      On Mar 19, 2011, at 1:09 AM, Jason E. Aten wrote:<br>
<br>
      > In order words, when two different threads need to be able to<br>
      name the same variable (after locking the thread inspects the<br>
      shared variable, possibly updates it, then releases the lock),<br>
      how do I tell lisp this is what I'd like?<br>
<br>
See section 4.8 of the documentation "Static Variables"<br>
<br>
e.g., (defstatic *foo* 3)<br>
<br>
It's an error to dynamically rebind a static variable; its value is<br>
always the same across all threads. Naturally, as you suggest, you'll<br>
want to avoid race conditions by using a lock or semaphore.<br>
<br>
warmest regards,<br>
<br>
Ralph<br>
<br>
<br>
Raffael Cavallaro<br>
<a href="mailto:raffaelcavallaro@me.com" target="_blank">raffaelcavallaro@me.com</a><br>
<br>
<br>
<br>
<br>
</blockquote>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Jason E. Aten, Ph.D.<br><br><br>
</div></div></div></div>