The standard is specified to get the standard functions. Eg. if i specify _POSIX_C_SOURCE=200112L then I want (for example) POSIX's flockfile, if the OS supports POSIX. This doesn't mean that I don't want rpc. This means that I need to change third party code, which needs POSIX functions, not to declare POSIX/POSIX_C_SOURCE/XSI to get BSD/other functions (and inderectly the POSIX 200112 functions).Why are you specifying a standard and then using features outside its scope? Either you want a BSD environment (in which case don't specify
Since it isn't that way on any UNIX (at least I know about) vendors are forced to do special treatment for FreeBSD. Which is IMHO really bad and may lead to less support for FreeBSD.
a standard), or you want a standard environment (where file.h doesn't exist). Indeed what you are trying to do is unsupported.
IMHO this is bad and breaks compilation of much third-party code.
I've read/looked at the standard (see my posting to standards@) and I don't think it forces FreeBSD's behaviour. I even think FreeBSD's behaviour isn't the spirit of the standard.For details on how to write a conforming application see section 2.2 of POSIX.1-2001.
Best regards,
Marc
"Premature optimization is the root of all evil." -- Donald E. Knuth
msg48356/pgp00000.pgp
Description: PGP signature