Kevin Rosenberg | 29 Aug 2005 04:13
Favicon

Re: uffi and clsql-mysql and AMD_64

Carlos Konstanski wrote:
> Here's the end of compilation and the error dump:

Looks like your shared library wasn't built. Or it is was, CLSQL is
not finding it. It looks like your using common-lisp-controller. Is
this on Debian? Because the Debian CLSQL package automatically
installs the shared libraries and adds /etc/clsql-init.lisp file with
the following:
  (clsql:push-library-path #p"/usr/lib/")
  (clsql:push-library-path #p"/usr/lib/clsql/")

> root <at> sphinktoo:/# ls -l /usr/lib/clsql/clsql_uffi.so 
> -rwxr-xr-x  1 root root 2528 Aug 28 18:19 /usr/lib/clsql/clsql_uffi.so
> 
> Now we know that at least the one .so file is there.

Yep, you can use an /etc/clsql-init.lisp file to add that path like
the above.

> /usr/share/common/lisp/source/clsql-uffi/uffi/.  Maybe I am once

That's from the common lisp controller. 

Is this a gentoo package your trying to build. If so, it's not
correctly made.

> misinterpreting things, but it seems to be saying it wants to find the
> .so files there.

You are correct.

> * clsql-uffi-system::*library-file-dir*
> (:ABSOLUTE "usr" "share" "common-lisp" "source" "clsql-uffi" "uffi")
> which is the path to the asdf packages, not the .so files.  So this path
> is probably not the issue, and it's not supposed to be the path to the
> .so files.  Dead end.

That's the path to the CLSQL source.

> I did attempt to cripple the 64 bit part, with the result that I got a
> nearly identical backtrace to the one shown above, but it only
> complained about clsql_uffi rather than both libraries.  Which brings up
> a point - this debug trace is complaining about both libraries, though
> one of them is present on the filesystem.

But not found in a standard place. You need the clsql-init.lisp file
to tell CLSQL where the shared library is.

> Also, creating the symlink clsql_uffi64.so -> clsql_uffi.so has no effect.

That's right. clsql_uffi.so is all you need. Don't worry about the
*64.so file.

> Is there a path somewhere that points to the .so files that I can check?
> Maybe we're looking in the wrong place entirely for the libraries, using
> a path that isn't reported in the debug trace.

No, that was ripped out in the recent reworking of library file
searchs. Now, the correct way is to place the library file in a system
location (like /usr/lib), so push a path for CLSQL to search in the
/etc/clsql-init.lisp file.

Kevin

Gmane