This is the mail archive of the
cygwin-developers@cygwin.com
mailing list for the Cygwin project.
Re: Should sys/types.h include sys/sysmacros.h?
Jerry,
On Tue, May 21, 2002 at 04:46:40PM -0400, Gerald S. Williams wrote:
> Jason Tishler wrote:
> > Actually, I just determined that sys/types.h includes cygwin/types.h.
> > So, should I include sys/sysmacros.h in cygwin/types.h instead?
>
> But cygwin/types.h includes sys/sysmacros.h already.
AFAICT, cygwin/types.h did *not* include sys/sysmacros.h until the
following:
http://cygwin.com/ml/cygwin-cvs/2002-q2/msg00048.html
Am I missing something?
> I think the problem is that sys/types.h isn't always including
> cygwin/types.h. A closer look reveals that it doesn't do this
> if _POSIX_THREADS is defined.
>
> I don't know why it would only include cygwin/types.h if
> _POSIX_THREADS isn't defined--perhaps that should be changed?
I don't know the answer to the above. Maybe someone else does? Rob?
> I also noticed that cygwin/types.h is including this header
> file within an extern "C" statement under C++. I would have
> thought that generally each header file should have its own
> extern "C" if it's required, in which case this shouldn't
> be done (extern "C" isn't a valid ANSI C construct). Perhaps
> this:
>
> [snip]
>
> should be changed to this?
>
> #ifndef _CYGWIN_TYPES_H
> #define _CYGWIN_TYPES_H
>
> #include <sys/sysmacros.h>
>
> #ifdef __cplusplus
> extern "C"
> {
> #endif
>
> ...
>
> #ifdef __cplusplus
> }
> #endif
>
> #endif /* _CYGWIN_TYPES_H */
If the above is deemed appropriate, then I will submit a patch to
correct this.
Jason