Hi,

The following patch might make a difference,

diff -up chicken-5.3.0rc1/file.c.orig chicken-5.3.0rc1/file.c
--- chicken-5.3.0rc1/file.c.orig	2021-08-24 15:19:00.847104480 +0300
+++ chicken-5.3.0rc1/file.c	2021-08-24 15:36:10.889230349 +0300
@@ -46,7 +46,7 @@ struct dirent
 typedef struct
 {
     struct _finddata_t  fdata;
-    int                 handle;
+    HANDLE              handle;
     struct dirent       current;
 } DIR;
 
diff -up chicken-5.3.0rc1/file.scm.orig chicken-5.3.0rc1/file.scm
--- chicken-5.3.0rc1/file.scm.orig	2021-08-24 15:18:56.063761366 +0300
+++ chicken-5.3.0rc1/file.scm	2021-08-24 15:36:02.129211933 +0300
@@ -77,7 +77,7 @@ struct dirent
 typedef struct
 {
     struct _finddata_t  fdata;
-    int                 handle;
+    HANDLE              handle;
     struct dirent       current;
 } DIR;
 
Since mingw-w64 provides opendir and readdir implementations, this could also 
work

diff -up chicken-5.3.0rc1/file.c.orig chicken-5.3.0rc1/file.c
--- chicken-5.3.0rc1/file.c.orig	2021-08-24 15:19:00.847104480 +0300
+++ chicken-5.3.0rc1/file.c	2021-08-24 15:36:10.889230349 +0300
@@ -34,7 +34,7 @@
 # define C_mkdir(str)       C_fix(mkdir(C_c_string(str)))
 #endif
 
-#if !defined(_WIN32) || defined(__CYGWIN__)
+#if !defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)
 # include <sys/types.h>
 # include <dirent.h>
 #else
@@ -46,7 +46,7 @@ struct dirent
 typedef struct
 {
     struct _finddata_t  fdata;
-    int                 handle;
+    HANDLE              handle;
     struct dirent       current;
 } DIR;
 
diff -up chicken-5.3.0rc1/file.scm.orig chicken-5.3.0rc1/file.scm
--- chicken-5.3.0rc1/file.scm.orig	2021-08-24 15:18:56.063761366 +0300
+++ chicken-5.3.0rc1/file.scm	2021-08-24 15:36:02.129211933 +0300
@@ -65,7 +65,7 @@
 # define C_mkdir(str)       C_fix(mkdir(C_c_string(str)))
 #endif
 
-#if !defined(_WIN32) || defined(__CYGWIN__)
+#if !defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)
 # include <sys/types.h>
 # include <dirent.h>
 #else
@@ -77,7 +77,7 @@ struct dirent
 typedef struct
 {
     struct _finddata_t  fdata;
-    int                 handle;
+    HANDLE              handle;
     struct dirent       current;
 } DIR;
 
At least that update-db doesn't get stuck on my computer (msys2,
mingw64/mingw-w64-x86_64-gcc 10.3.0-5).

Jani


Mark Fisher <[email protected]> writes:

> Hi all,
>
> I'm on a new PC with windows 10 and thought I'd try getting a chicken
> environment up and running on MSYS2 MingGW-64.
>
> I've installed a fresh copy of msys2 and mingw64 from the msys2 site, doing
> the pacman updates on top.
>
> I've then followed the guide at http://wiki.call-cc.org/msys2 (except using
> 5.2.0 source instead) running under a MINGW64 terminal as advised.
>
> The compilation works fine, but when I run the install phase, the
> "chicken-install -update-db" just hangs:

Reply via email to