This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix up bswap_* types


> Personally I find the __need_* scheme pretty fragile, and it's also been 
> reported as causing problems for such things as attempts at pre-parsed 
> headers in GCC - it's generally nicer if a header does something 
> well-defined that doesn't depend on whether such a macro is defined before 
> including it.

It's true.  I was suggesting something that follows the prevailing scheme
for such cases, but that doesn't mean it's the ideal scheme.

> Thus, whenever you are tempted to give a header a special __need_* 
> interface, I'd rather split out the relevant bits into a new internal 
> (bits/*) header and include that header in both places.

Yes, we could instead move __*_ENDIAN into another file.  The cleanest
arrangement would be:

* bits/endian.h becomes a generic header that defines __*_ENDIAN and does
  #include <bits/byteorder.h>.  Only this file would need complex
  guards to allow inclusion via <endian.h> or <ctype.h> or <wctype.h>.
* sysdeps bits/endian.h files all renamed to bits/byteorder.h and have
  a guard for _BITS_BYTEORDER_H.


Thanks,
Roland


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]