<sys/unistd.h> not namespace-clean
Fergus Henderson
fjh@cs.mu.OZ.AU
Mon Jul 27 14:23:00 GMT 1998
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 <fjh@cs.mu.oz.au> | "I have always known that the pursuit
WWW: < http://www.cs.mu.oz.au/~fjh > | of excellence is a lethal habit"
PGP: finger fjh@128.250.37.3 | -- the last words of T. S. Garp.
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".
More information about the Cygwin
mailing list