Subject: bug#10474: Building guile 2.x under mingw + msys

From: Eli Zaretskii <[email-masked]>
Date: Tue, 17 Jan 2012 10:09:21 +0200

[I removed [email-masked] from the CC list; let me know if that is
not TRT.]

> Date: Tue, 10 Jan 2012 23:00:35 +0100
> Cc: [email-masked], [email-masked]
> 
> > so I've been trying to build guile 2.0.3 from source with mingw (gcc 4.6.2) + msys.
> 
> Thanks for the report!

I have a similar, although slightly different in details, experience.
(I will post the details as soon as the saga is finished for me and I
have all it figured out ;-)

> > make[3]: Entering directory `/home/Commander/guile-2.0.3/libguile'
> >   GEN    guile-procedures.texi
> > Throw without catch before boot:
> > Throw to key system-error with args ("canonicalize-path" "~A" ("No such file or
> > directory") (2))Aborting.
> 
> AIUI the canonicalize_path binding that gnulib provides for mingw ends
> up shelling out to `rm' and other commands.

I don't think this is true; at least I don't see any such shelling out
in lib/canonicalize-lgpl.c, which I believe is the module you allude
to.

The problem, AFAIK, is entirely different and quite mundane:
canonicalize_file_name simply does not support Windows-style
D:/foo/bar file names, nor does it support backslashes as separators
in file names.

My evidence is that I added an fprintf to canonicalize-path where it
calls canonicalize_file_name, and the file name passed to it was
entirely reasonable, something like

   D:\path\to\guile-2.03/module/ice-9/boot-9.scm

(or some such, I'm writing this from my faulty memory).

I think I know how to fix canonicalize_file_name, and I will send a
tentative patch later, perhaps even today, when I have it working and
get past this abort.