Subject: Re: bug#14550: libltdl not found during configure of Guile 2.0.9

From: Mark H Weaver <[email-masked]>
Date: Mon, 10 Jun 2013 16:48:19 -0400

Hi Eric,

"Eric Sheibley" <[email-masked]> writes:

> Ludo,
> I figured it out but now I am getting another error when running 'make all'
> CCLD guile
> Undefined symbol		first referenced in file
> ffi_closure_alloc		./.libs/libguile-2.0.so
> ffi_type_pointer
> ffi_prep_closure_loc
> ffi_type_uint8
> ffi_type_sint8
> ffi_type_float
> GC_unregister_my_thread
> ffi_type_uint32
> ffi_type_uint16
> ffi_type_uint64
> ffi_type_sint32
> ffi_type_sint16
> ffi_type_sint64
> ffi_type_void
> ffi_type_double
> GC_register_my_thread
> ffi_call
> ffi_closure_free
> ffi_prop_cif
> GC_pthread_create
> GC_pthread_detach
> ld:fatal:symbol reference errors. No output written to .lib/guile
> collect2: ld returned 1 exit status
>
> I get this error when using either the Solaris 10 built in gcc version 3.4.3 or Solaris Studio version 12.3 as the compiler.

Apparently you're not successfully linking to libffi, which should
contain those ffi_* symbols.  What FFI-related options or environment
variables did you pass to ./configure?  I'd like to see the output of
"grep -i libffi config.log".

It also appears that Guile was configured with thread support, but that
your libgc was built without thread support.  If you don't need thread
support, then I suggest passing "--without-threads" to ./configure,
otherwise you'll need to rebuild libgc (preferably version 7.2d) with
thread support.

     Regards,
       Mark