Should sys/types.h include sys/sysmacros.h?

Gerald S. Williams gsw@agere.com
Tue May 21 13:46:00 GMT 2002


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. 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 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:

 #ifdef __cplusplus
 extern "C"
 {
 #endif

 #ifndef _CYGWIN_TYPES_H
 #define _CYGWIN_TYPES_H

 #include <sys/sysmacros.h>

 ...

 #endif /* _CYGWIN_TYPES_H */

 #ifdef __cplusplus
 }
 #endif

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 */

-Jerry



More information about the Cygwin-developers mailing list