bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#13848: Statically linking guile-2.0.


From: Jan Schukat
Subject: bug#13848: Statically linking guile-2.0.
Date: Sat, 06 Apr 2013 01:14:46 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130308 Thunderbird/17.0.4

Finally got to look into the load path issues on windows. Did so by adding some debug output into scm_init_load_path and scm_primitive_load_path.

When during the build/compile the load paths are are normal windows paths, with output like this:

  GEN      libguile/guile-procedures.txt

path: (c:\Users\shookie\guiletest\lib\guile-2.0\module c:\Users\shookie\guiletest\lib\guile-2.0\guile-readline) full_filename: c:\Users\shookie\guiletest\lib\guile-2.0\module\ice-9/boot-9.scm compiled_filename: c:\Users\shookie\guiletest\lib\guile-2.0\module\ice-9/boot-9.go

full_filename: c:\Users\shookie\guiletest\lib\guile-2.0\module\ice-9/r4rs.scm compiled_filename: c:\Users\shookie\guiletest\lib\guile-2.0\module\ice-9/r4rs.go


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".

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" 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

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)
full_filename: c:/Users/shookie/guiletest/lib/share/guile/2.0/ice-9/boot-9.scm
compiled_filename:      #fb

full_filename: c:/Users/shookie/guiletest/lib/share/guile/2.0/ice-9/r4rs.scm
compiled_filename:      #f

full_filename: c:/Users/shookie/guiletest/lib/share/guile/2.0/ice-9/psyntax-pp.scm
compiled_filename:      #f

full_filename: c:/Users/shookie/guiletest/lib/share/guile/2.0/ice-9/posix.scm
compiled_filename:      #f

full_filename: c:/Users/shookie/guiletest/lib/share/guile/2.0/ice-9/networking.scm
compiled_filename:      #f

full_filename: c:/Users/shookie/guiletest/lib/share/guile/2.0/srfi\srfi-4.scm
compiled_filename:      #f

full_filename: c:/Users/shookie/guiletest/lib/share/guile/2.0/rnrs\bytevectors.scm
compiled_filename:      #f

full_filename: c:/Users/shookie/guiletest/lib/share/guile/2.0/ice-9\command-line.scm compiled_filename: c:/Users/shookie/.cache/guile/ccache/2.0-LE-4-2.0\c/Users/shookie/guiletest/lib/share/guile/2.0/ice-9/command-line.scm.go

......snip.....

full_filename: c:/Users/shookie/guiletest/lib/share/guile/2.0/ice-9\futures.scm compiled_filename: c:/Users/shookie/.cache/guile/ccache/2.0-LE-4-2.0\c/Users/shookie/guiletest/lib/share/guile/2.0/ice-9/futures.scm.go

full_filename: c:/Users/shookie/guiletest/lib/share/guile/2.0/srfi\srfi-11.scm
compiled_filename:      #f
;;; compiling c:/Users/shookie/guiletest/lib/share/guile/2.0/srfi\srfi-11.scm ;;; it seems c:/Users/shookie/guiletest/lib/share/guile/2.0/srfi\srfi-11.scm
;;; is part of the compiler; skipping auto-compilation

full_filename: c:/Users/shookie/guiletest/lib/share/guile/2.0/ice-9\q.scm
compiled_filename: c:/Users/shookie/.cache/guile/ccache/2.0-LE-4-2.0\c/Users/shookie/guiletest/lib/share/guile/2.0/ice-9/q.scm.go

And at that point it stalls.

I will look more into it, but I hope this is already useful. But as usual each build takes quite a while, so progress is slow, since I always go away doing other things after I initiated a build and test-run.

Regards

Jan Schukat

On 03/30/2013 10:27 PM, Ludovic Courtès wrote:
Jan Schukat <address@hidden> skribis:

Starting the guile.exe or my own guiletest.exe still fails due to init
not finding the paths to the scheme modules,
Did you try after running “make install”?  If you try before, it’s
normal that it doesn’t find.

but that is something I need to look into anyway, and will do that
over Easter. It's possible that that is due to the different path
treatment in mingw and windows proper, or it could just be that guile
can't handle windows paths with drive letters, colons and backslashes.
It can handle that now (until 2.0.7 included that didn’t work
correctly.)

Ludo’.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]