This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Bug somewhere between cygwin, gcc and cvs


My information may be out-of-date, but I thought direct access to directories was not POSIX-compliant? Of course, if that's true, one would think CVS would long ago have adapted to that restriction.

Anyway, trying to access a directory using any old naive program (i.e., one that doesn't detect and make a special accommodation for directories) such as "dd," "od," or "cat" gives "Is a directory" diagnostics every time.

Are you sure your CVS build environment was properly configured? Is the main-line CVS source code featured for (ported to) Cygwin?

You said you're trying to build the "latest stable CVS code" and that it's version 1.11.2. However, by my observation, the latest Cygwin CVS is 1.11.0.

I'm guessing that the CVS source code you're using does not bear the requisite Cygwin-specific patches.

Why don't you use the source code that's distributed with / by the Cygwin project? Of course, unless you're going to modify it, you'll just end up with the functional equivalent of the current Cygwin binary package for CVS.

If there's a feature of CVS 1.11.2 that you need, you could probably get a considerable head start by taking the Cygwin patches from the Cygwin 1.11.0 source package and applying them (with any necessary changes, of course) to the 1.11.2 source code.

I hope the Cygwin CVS package maintainer will definitively confirm, refute or refine the speculation I've indulged in here...

Randall Schulz

At 10:22 2002-12-25, Arkadiy Belousov wrote:
Hello all!

I downloaded latest stable CVS code (1.11.2) and compiled it under cygwin.
"cvs co", "cvs login" and "cvs commit" worked, but not "cvs update".

I traced the bug to call to

open (".", O_RDONLY);

at lib/savecwd.c:61 in CVS source. This call is made the same way during commit and update, yet it fails during update only, with the error "file already exist".

When I tried to make similar call from other places in the code, I learned that placing the call right before save_cwd is called from recurse.c makes the entire thing work.

The next thing I tried was optimization level in the compiler. When I replaced -O2 with -O, the whole situation went away.

I am running Windows ME.
GCC gives the following in response to -v :

$ gcc -v
Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/3.2/specs
Configured with: /netrel/src/gcc-3.2-3/configure --enable-languages=c,c++,f77,java --enable-libgcj --enable-threads=posix --with-system-zlib --enable-nls --without-included-gettext --enable-interpreter --disable-sjlj-exceptions --disable-version-specific-runtime-libs --enable-shared --build=i686-pc-linux --host=i686-pc-cygwin --target=i686-pc-cygwin --enable-haifa --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --includedir=/nonexistent/include --libexecd
Thread model: posix
gcc version 3.2 20020927 (prerelease)

cygwin version is cygwin 1.3.17-1 , according to cygcheck

Unsubscribe info:
Bug reporting:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]