Subject: bug#13848: Statically linking guile-2.0.

From: [email-masked] (Ludovic Courtès)
Date: Sun, 07 Apr 2013 12:20:45 +0200

Hi Jan,

Jan Schukat <[email-masked]> skribis:

> But when I start the installed guile.exe, the output is like this and
> it can't find the scheme modules:
>
> path:   (/c/Users/shookie/guiletest/lib/share/guile/2.0
> /c/Users/shookie/guiletest/lib/share/guile/site/2.0
> /c/Users/shookie/guiletest/lib/share/guile/site
> /c/Users/shookie/guiletest/lib/sh are/guile)
> full_filename:  #f
> compiled_filename:      #f
>
> So as I suspected a conflict between mingw-paths and windows paths. I
> suspect the mingw paths in the installed exe are the static #defines
> that configure sets up since those /c/User/... paths also show up when
> you extract the strings fromthe binary with strings guile.exe|grep
> "/lib".

Yes.

> Now when I export
> GUILE_LOAD_PATH="/c/Users/shookie/guiletest/lib/share/guile/2.0" and
> GUILE_LOAD_COMPILE_PATH=""/c/Users/shookie/guiletest/lib/lib/guile/2.0/ccache"

You miss a ‘D’ here: ‘GUILE_LOAD_COMPILED_PATH’.

> before invoking the installed guile.exe it finds the modules, but it
> doesn't seem to like compile path and tries to recompile all the
> modules which eventually fails with a stall, usually at q.scm or
> thread.scm

That’s probably because of the above.

> Here is output from that case:
> 
> $ export
> GUILE_LOAD_PATH="/c/Users/shookie/guiletest/lib/share/guile/2.0/"
> GUILE_LOAD_COMPILED_PATH="/c/Users/shookie/guiletest/lib(lib/guile/2.0/ccache/";./lib/bin/guile 
> 
> 
> path:   (c:/Users/shookie/guiletest/lib/share/guile/2.0/
> /c/Users/shookie/guiletest/lib/share/guile/2.0
> /c/Users/shookie/guiletest/lib/share/guile/site/2.0
> /c/Users/shookie/guiletest/lib/share/guile/site
> /c/Users/shookie/guiletest/lib/sh
> are/guile)

IIUC the difference is that the first element in the path starts with
c:/ instead of /c.  That’s probably because of the conversion that MinGW
does when reading the environment variable (see
<http://www.mingw.org/wiki/Posix_path_conversion>.)

So that means that the file names obtained by ‘configure’ should be
rewritten in Windows style, I suppose.  I’m not sure exactly how this
should be done though.  Suggestions?

Ludo’.