Namespace conflicts
One common problem in building CVS is that variable and function names in the CVS source code may conflict with names defined by the operating system.
First, the rant. Don't OS authors realize that the namespace restrictions in POSIX, ANSI and other standards are there for a *reason*? It is quite easy to design a package to use namespace in a clean way (for example, pthread_* in POSIX threads), so go do it. Trying to work around this in CVS and other applications is never easy, because of the large number of platforms that CVS builds on and the fact that the list of names being usurped is always changing.
OK, well, yeah, I know, that wasn't really a full-fledged rant, but I never really was an expert at such things. Anyway, on to the details.
With HPUX 11 there is a clash regarding UNKNOWN (from the system's shadow.h).
Old issues
With cygwin version b20, DELETE is defined by direct.h as well as by CVS. Looks like a cygwin bug to me. There is some sentiment that to avoid pollution, CVS should be using dirent.h instead of direct.h (because the former is in POSIX). Hard to argue with that. Commenting out HAVE_DIRECT_H in config.h is said to work around the problem, which suggests that a fix along these lines will work. Kind of a moot point, as Larry Jones checked in a workaround (to rename DELETE) in CVS on 1999-03-24.
![[Cyclic Home]](../cyclic-pages/cyclichome.gif)
![[ Valid XHTML 1.0! ]](/branding/w3c-valid-xhtml10-44x16.png)
![[ Valid CSS! ]](/branding/w3c-valid-css-44x16.png)
