GNU bug report logs - #36601
Patch series for guile-2.9.2 on mingw-w64

Previous Next

Package: guile;

Reported by: Hannes Müller <h.c.f.mueller <at> gmx.de>

Date: Thu, 11 Jul 2019 16:33:02 UTC

Severity: normal

To reply to this bug, email your comments to 36601 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guile <at> gnu.org:
bug#36601; Package guile. (Thu, 11 Jul 2019 16:33:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Hannes Müller <h.c.f.mueller <at> gmx.de>:
New bug report received and forwarded. Copy sent to bug-guile <at> gnu.org. (Thu, 11 Jul 2019 16:33:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Hannes Müller <h.c.f.mueller <at> gmx.de>
To: bug-guile <at> gnu.org
Subject: Patch series for guile-2.9.2 on mingw-w64
Date: Thu, 11 Jul 2019 18:32:18 +0200
[Message part 1 (text/plain, inline)]
Hi, 
I propose the following patch series for current guile 3 development.
With these patches applied, on i686 and x86_64 I got until

  CCLD     guile.exe
  GEN      guile-procedures.texi
Backtrace:
           0 (primitive-load-path "C:/Users/hm/Documents/msys32/…")

ERROR: In procedure primitive-load-path:
In procedure primitive-load-path: Unable to find file
"C:/Users/hm/Documents/msys32/home/hm/mingw-w64-guile-2.9.2/src/build-
i686-w64-mingw32/libguile/C:/Users/hm/Documents/msys32/home/hm/mingw-
w64-guile-2.9.2/src/build-i686-w64-mingw32/meta/guild" in load path
make[3]: *** [Makefile:4295: guile-procedures.texi] Error 1

The latest error is related to building absolute path names, which
seems not new but I do not know how to fix it.

But I was able on i686 and x86_64 to run simple guile commands with
relative path names 
GUILE_AUTO_COMPILE=0 ../meta/build-env ./.libs/guile -l
../../../../test.scm

My configuration was:
autoreconf -fi
configure \
    --prefix=${MINGW_PREFIX} \
    --build=${MINGW_CHOST} \
    --host=${MINGW_CHOST} \
    --enable-shared \
    --enable-static \
    --enable-error-on-warning=no \
    --enable-jit=no

Attached also the used draft PKGBUILD file for mingw-w64.

Thanks
Hannes
[Message part 2 (text/html, inline)]
[0001-Get-latest-poll-module-from-gnulib-to-fix-compilatio.patch (text/x-patch, attachment)]
[0002-Fix-error-missing-netinet-tcp_h-on-mingw-w64.patch (text/x-patch, attachment)]
[0003-Fix-compilation-error-libguile-posix-w32_h.patch (text/x-patch, attachment)]
[0004-Fix-posix.c-for-mingw-w64.patch (text/x-patch, attachment)]
[PKGBUILD (text/plain, attachment)]

Information forwarded to bug-guile <at> gnu.org:
bug#36601; Package guile. (Mon, 15 Jul 2019 15:24:02 GMT) Full text and rfc822 format available.

Message #8 received at 36601 <at> debbugs.gnu.org (full text, mbox):

From: Hannes Müller <h.c.f.mueller <at> gmx.de>
To: 36601 <at> debbugs.gnu.org
Subject: bug#36601: Patch series for guile-2.9.2 on mingw-w64
Date: Mon, 15 Jul 2019 17:23:07 +0200
[Message part 1 (text/plain, inline)]
The error regarding the wrong absolute path names is related to
the prebuilt modulesprebuilt\64-bit-little-endian\ice-9\boot-9
.goprebuilt\32-bit-little-endian\ice-9\boot-9.go
They have been built with system-file-name-convention set to posix. In
fact on mingw-w64 this value is set to windows. I forcedrecompilation
of related modules by touch module\ice-9\boot-9.scm 
For i686 the compilation process succeeded, for x86_64 recompilation of
modules depending on boot-9 failed.
I recommend not to compile the posix/windows setting of  system-file-
name-convention into the prebuilt modules in boot-9.scm: (compile-time-
case (system-file-name-convention) ...
Instead it could be evaluated during runtime. Otherwise formally
different prebuilts are required, e.g.:  prebuilt\64-bit-little-endian-
posixprebuilt\32-bit-little-endian-posixprebuilt\64-bit-little-endian-
windowsprebuilt\32-bit-little-endian-windows

[Message part 2 (text/html, inline)]

Information forwarded to bug-guile <at> gnu.org:
bug#36601; Package guile. (Thu, 25 Jul 2019 17:39:01 GMT) Full text and rfc822 format available.

Message #11 received at 36601 <at> debbugs.gnu.org (full text, mbox):

From: "Thompson, David" <dthompson2 <at> worcester.edu>
To: Hannes Müller <h.c.f.mueller <at> gmx.de>
Cc: 36601 <at> debbugs.gnu.org
Subject: Re: bug#36601: Patch series for guile-2.9.2 on mingw-w64
Date: Thu, 25 Jul 2019 13:37:55 -0400
Hi Hannes,

On Thu, Jul 11, 2019 at 12:33 PM Hannes Müller <h.c.f.mueller <at> gmx.de> wrote:
>
> Hi,
> I propose the following patch series for current guile 3 development.
> With these patches applied, on i686 and x86_64 I got until
>
>   CCLD     guile.exe
>   GEN      guile-procedures.texi
> Backtrace:
>            0 (primitive-load-path "C:/Users/hm/Documents/msys32/…")
>
> ERROR: In procedure primitive-load-path:
> In procedure primitive-load-path: Unable to find file "C:/Users/hm/Documents/msys32/home/hm/mingw-w64-guile-2.9.2/src/build-i686-w64-mingw32/libguile/C:/Users/hm/Documents/msys32/home/hm/mingw-w64-guile-2.9.2/src/build-i686-w64-mingw32/meta/guild" in load path
> make[3]: *** [Makefile:4295: guile-procedures.texi] Error 1
>
> The latest error is related to building absolute path names, which seems not new but I do not know how to fix it.
>
> But I was able on i686 and x86_64 to run simple guile commands with relative path names
> GUILE_AUTO_COMPILE=0 ../meta/build-env ./.libs/guile -l ../../../../test.scm
>
> My configuration was:
> autoreconf -fi
> configure \
>     --prefix=${MINGW_PREFIX} \
>     --build=${MINGW_CHOST} \
>     --host=${MINGW_CHOST} \
>     --enable-shared \
>     --enable-static \
>     --enable-error-on-warning=no \
>     --enable-jit=no
>
> Attached also the used draft PKGBUILD file for mingw-w64.

Thanks for sharing these patches. I tried to write a Guix package
recipe for Guile 2.9.2 that could be built for i686-w64-mingw32 (for
starters), but failed. I used your patches and disabled JIT but got a
failure in numbers.h:

    numbers.h:43:34: error: expression in static assertion is not constant

Also, on the subject of JIT support, it seems that the reason it has
to be disabled is because gnulib does not have sys/mman.h, or maybe
it's because MinGW doesn't support mmap.  This is my first time
building things for windows with mingw so I don't really understand
this stuff.

Does anyone have thoughts on a path forward here?

- Dave




This bug report was last modified 5 years and 324 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.