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

From: Jan Schukat <[email-masked]>
Date: Mon, 04 Mar 2013 00:20:10 +0100

Thank you for the reply!

I guess it's best I send you my little test project, which is just a 
makefile and a different main .cc file for each platform. Although it's 
work in progress, it makes what I'm doing reproducible and explains it.

On 03/02/2013 04:28 PM, Ludovic Courtès wrote:
> Hello,
>
> Thanks for the report.
>
> Jan Schukat <[email-masked]> skribis:
>
>> But then on install (processing .texi files) guile.exe fails with this
>> message:
>>
>> "Throw without catch before boot:
>> Throw to key system-error with args ("canonicalize-path" "~A" ("No
>> such file or directory") (2))Aborting.
> [...]
>
>> Calling guile.exe directly gives this message:
>>
>> "Throw without catch before boot:
>> Throw to key misc-error with args ("primitive-load-path" "Unable to
>> find file ~S in load path" ("ice-9/boot-9") #f)Aborting.
> Does it happen when running the installed Guile?  That is, you
> successfully run ‘make’ and ‘make install’ (and ideally ‘make check’),

It's the guile.exe, guild.exe, guile-config.exe and guile-tools.exe in 
guile-2.0/meta.

And when I trick automake into installing (by running it twice, first 
with --program-suffix=.exe, then without, then the installed files fail, 
although they are not binaries, but hashbang scripts.
Same happens of course when I install the by hand into prefix/bin.

I haven't gotten to compile on Linux yet in my build setup since I tried 
it on windows, because of the linking conflicts with the boehm-GC 
callbacks. That's what I'm gonna continue with now.

> and it’s the installed ‘guile’ binary that produces this message?
>
> As most Unix and GNU packages, Guile expects to be installed in the
> place specified by --prefix.  If you install it elsewhere, it will fail
> to find its companion files, such as ice-9/boot-9.scm.  So you really
> must install it in --prefix, and leave it there.  Is it what you did?
>
> (Note that this restriction can be worked around by techniques such as
> found in
> <http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/patches/guile-relocatable.patch>.)
>
> Thanks,
> Ludo’.

Thank you for the hint. Eventually the binary should look for the scheme 
libraries relative to the binary position, at least on OSX where they 
will be placed in the .app directory and Windows.

Regards

Jan Schukat