X-Spam-Check-By: sourceware.org Date: Fri, 20 Jan 2006 13:08:50 +0200 Message-Id: From: Eli Zaretskii To: djh CC: emacs-devel AT gnu DOT org, cygwin AT cygwin DOT com In-reply-to: <43D0797C.1030604@it.to-be.co.jp> (message from djh on Fri, 20 Jan 2006 14:47:40 +0900) Subject: Re: New platform independent problem Reply-to: Eli Zaretskii References: <43D0797C DOT 1030604 AT it DOT to-be DOT co DOT jp> Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com > Date: Fri, 20 Jan 2006 14:47:40 +0900 > From: djh > > In December of last year, 2005, the cygwin developers deprecated d_ino > out of the dirent.h defined dirent structure. > > This break emac's dired.c (from compiling) > > Ref: http://www.cygwin.com/ml/cygwin/2005-12/msg00205.html Without knowing the full details, I'd risk saying that this was not the best decision. Is there really no way of making d_ino be consistent with what `stat' returns about the same directory? In any case, I think removing the member is a solution that is much worse than the problem: many programs refer to d_ino, but don't require too much from its contents. These programs will now fail to compile. I don't think that the goal of educating the maintainers of Bash and Find (a worthy goal in itself) justifies breaking the other packages. If making d_ino consistent with st_ino is impossible, a better way of dealing with problems in Bash and Find is to make changes in those packages' sources that are specific to Cygwin. > This change causes a "make bootstrap" error in building my emacs vers. > 22.0.50 source. > > "gcc -c -Demacs -DHAVE_CONFIG_H -DUSE_GTK -I. ..snipped...-O2 dired.c > dired.c: In function `directory_files_internal': > dired.c:230: error: structure has no member named `d_ino' > dired.c: In function `file_name_completion': > dired.c:538: error: structure has no member named `d_ino' > make[1]: *** [dired.o] Error 1 " > > Under the prior version of cygwin this built successfully. > > I unfortunatley am not expert enough to suggest any fixes for this, but, > I wanted to bring it to your attension to those of you out there who are > and want emacs to continue to be usable on the newer version of cygwin. The immediate fix seems to be to modify the definition of DIRENTRY_NONEMPTY for Cygwin so that it uses the same trick as on MS-DOS. (Isn't it sad that Cygwin needs old MS-DOS era tricks?) -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/