delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2002/10/29/02:09:34

Message-ID: <007e01c27f19$ad3aff70$0100a8c0@p4>
From: "Andrew Cottrell" <acottrel AT ihug DOT com DOT au>
To: "Laurynas Biveinis" <lauras AT softhome DOT net>
Cc: "DJGPP Workers" <djgpp-workers AT delorie DOT com>
References: <8942416321 DOT 20021028235207 AT softhome DOT net>
Subject: Re: Findutils 4.1.7 port bugs & fix
Date: Tue, 29 Oct 2002 18:05:46 +1100
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
Reply-To: djgpp-workers AT delorie DOT com

----- Original Message -----
.. SNIP..
> 'error waiting for rm' is caused by bitrot in DJGPP port - find 4.1
> upstream uses wait(), 4.1.7 uses waitpid(). DJGPP port used to provide
> its own version of wait() which does DTRT instead of stock lib
> version. I've updated it to provide special waitpid() instead, that
> solves the first problem. Patch (and ChangeLog, in the case you'd
> like to forward it upstream) are at the end.

Thanks for this. Upload on it's way to Clio as I write this
>
> The second problem is that find stats directories during their
> traversal and caches their inodes and in the end we receive error that
> inode of some directory has changed.
Check out the thread regarding the rm.exe issue I found as it looked like an
inode problem, but turned out to be something else.

> Is it possible that our stat() implementation returns different inode
> for the same directory? If yes, what could we do about it? If no, I'd
> like to know if this bug is 2K specific or not. I'd appreciate if
> someone downloads find-4.1.7 from 2.04 test build page, does something
> like (this is from GCC):
> $ touch Done
> $ find . -name '[Dd][Oo][Nn][Ee]' -exec rm -f '{}' ';'
>
> and reports any error messages on Win98/DOS, maybe on XP and other
> platforms too.
I used the updated find.exe which included the patch and my results are as
follows:

Tried this on an ancient Win98 PC and got the following:-
1) cannot touch a directory get permission denied (EACCESS) error
2) I get an error from rm as follows (re-typed)
    rm: invalid operation -- .
3) $ find . -name '[Dd][Oo][Nn][Ee]'
    returned "./done" which looked okay.

I copied bash.exe, find.exe, rm.exe into the temp directory on the Win98 PC
and set the path to be c:\temp only. It works on XP with the same binary
files. Any ideas on this?

On XP with SP1 I get the following results:
a) Under bash:
    bash-2.05b$ find . -name '[Dd][Oo][Nn][Ee]' -exec rm -f '{}' ';'
    rm: `./done' is a directory
b) Under command.com or cmd.exe
    DJGPP_204 C:\dj204\bin>find . -name '[Dd][Oo][Nn][Ee]' -exec rm -f '{}'
';'
    rm: `./done' is a directory


Andrew


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019