RESEND: Patch to build on latest Cygwin (1.5.19)

Rick Rankin rrankin1424-xemacs at yahoo.com
Fri Jan 20 11:36:25 EST 2006


I sent this a couple of days ago, but it never showed up on either list I addressed it to...

The patch below fixes a compiler error that occurs when building the latest 21.5 sources from CVS on the latest Cygwin release. Cygwin 1.5.19 has removed the d_ino field from 'struct dirent' since it wasn't used on Cygwin and apparently POSIX doesn't require it to be present. I haven't done a great deal of testing with this patch, but dired seems to work fine with it.

Also, I had to disable the new allocator when building as it was causing core dumps. I haven't had much time to look at it, but apparently, SYS_PAGE_SIZE was returning an unrecognized value in init_mc_allocator() which was causing ABORT() to be called from the switch statement at the beginning of the function. I'll try to look at it in a bit more detail in a few days.

--Rick

Index: src/sysdir.h
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/sysdir.h,v
retrieving revision 1.7
diff -u -r1.7 sysdir.h
--- src/sysdir.h        2002/06/05 09:57:18     1.7
+++ src/sysdir.h        2006/01/19 04:41:47
@@ -62,7 +62,11 @@
    Since applying strlen to the name always works, we'll just do that.  */
 #define NAMLEN(p) strlen (p->d_name)
 
-#define DIRENTRY_NONEMPTY(p) ((p)->d_ino)
+#ifdef __CYGWIN__
+# define DIRENTRY_NONEMPTY(p) ((p)->d_name[0] != '\0')
+#else
+# define DIRENTRY_NONEMPTY(p) ((p)->d_ino)
+#endif
 
 /* encapsulation: directory calls */
 













More information about the XEmacs-Beta mailing list