Subject: <sys/unistd.h> not namespace-clean
From: [email-masked] (Fergus Henderson)

27 Jul 1998 21:23:12 -0700
Message-ID: <[email-masked]>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
To: Cygnus GNU-win32 mailing list <[email-masked]>

I really wish Cygnus had used glibc rather than reimplementing it all
from scratch... if they'd done that, I probably wouldn't be reporting
this bug now.

The bug is that <sys/unistd.h> uses some names that are in the user's
namespace.  This means that certain programs which ought to work fail
with strange error messages in system header files.  For example:

	bash$ cat foo.c
	#define length 42
	#include <sys/unistd.h>
	int main() { return 0; }

	bash$ gcc foo.c
	In file included from C:\CYGNUS\B19\H-I386~1\lib\gcc-lib\i386-cygwin32
	\2.7-B19\../../../../i386-cygwin32/include/unistd.h:4,
			 from foo.c:2:
	C:\CYGNUS\B19\H-I386~1\lib\gcc-lib\i386-cygwin32\2.7-B19\../../../../i
	386-cygwin32/include/sys/unistd.h:76: parse error before `42'
	C:\CYGNUS\B19\H-I386~1\lib\gcc-lib\i386-cygwin32\2.7-B19\../../../../i
	386-cygwin32/include/sys/unistd.h:77: parse error before `42'

The fix is simple.

--- unistd.h	Thu Feb 26 10:42:23 1998
+++ unistd.h.fixed	Tue Jul 28 03:51:41 1998
@@ -73,8 +73,8 @@
 
 #ifdef __CYGWIN32__
 unsigned _EXFUN(usleep, (unsigned int _useconds ));
-int     _EXFUN(ftruncate, (int fd, off_t length));
-int     _EXFUN(truncate, (const char *, off_t length));
+int     _EXFUN(ftruncate, (int _fd, off_t _length));
+int     _EXFUN(truncate, (const char *, off_t _length));
 #endif
 
 # define	F_OK	0

-- 
Fergus Henderson <[email-masked]>  |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>  |  of excellence is a lethal habit"
PGP: finger [email-masked]        |     -- the last words of T. S. Garp.
-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".