On Wed, 19 Mar 2014, Michael Kerrisk (man-pages) wrote: > On Wed, Mar 19, 2014 at 2:48 PM, Robert P. J. Day <rpjday@xxxxxxxxxxxxxx> wrote: > > > > last quibble for the day ... perusing the feature test macros > > related to XPG and XPG XSI in features.h, starting with the comment: > > > > _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if > > Single Unix conformance is wanted, to 600 for the > > sixth revision, to 700 for the seventh revision. > > > > ok, fair enough, and if we read further, we see the explanation of the > > associated __USE macros: > > > > __USE_XOPEN2K Define XPG6 things. > > __USE_XOPEN2KXSI Define XPG6 XSI things. > > __USE_XOPEN2K8 Define XPG7 things. > > __USE_XOPEN2K8XSI Define XPG7 XSI things. > > > > which *suggests* that those represent distinct use definitions. > > Yes, they are. Translate the above parlance as follows > > XPG == POSIX Base specification > XSI == POSIX base specification + XSI extension > (Since I know you have it, see also TLPI pages 14, 15, and 61ff) > > > but > > reading further: > > > > #ifdef _XOPEN_SOURCE > > # define __USE_XOPEN 1 > > # if (_XOPEN_SOURCE - 0) >= 500 > > # define __USE_XOPEN_EXTENDED 1 > > # define __USE_UNIX98 1 > > # undef _LARGEFILE_SOURCE > > # define _LARGEFILE_SOURCE 1 > > # if (_XOPEN_SOURCE - 0) >= 600 > > # if (_XOPEN_SOURCE - 0) >= 700 > > # define __USE_XOPEN2K8 1 > > # define __USE_XOPEN2K8XSI 1 > > # endif > > # define __USE_XOPEN2K 1 > > # define __USE_XOPEN2KXSI 1 > > > > it seems clear that, based on the value of _XOPEN_SOURCE, you get > > either both of the related __USE macros, or neither of them. as in, > > based on _XOPEN_SOURCE, you'll get both of these defined: > > > > # define __USE_XOPEN2K 1 > > # define __USE_XOPEN2KXSI 1 > > But note that there is also: > > #if (_POSIX_C_SOURCE - 0) >= 200112L > # define __USE_XOPEN2K 1 > ... > #endif > > So, __USE_XOPEN2K might be set when __USE_XOPEN2KXSI is not. ah, that's that bit i missed, thanks. so many variables ... rday -- ======================================================================== Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ======================================================================== -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html