This is the mail archive of the newlib@sourceware.org mailing list for the newlib 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] |
Hi Joel, On Nov 23 08:37, Joel Sherrill wrote: > Hi > > Looking through old RTEMS PRs, someone reported these > are missing in newlib. If no target has needed them > should we add them for completion? > > If so, Linux has them wrapped like this: > > #if __USE_POSIX1999309 || defined __USE_UNIX98 > #define O_DSYNC XXX > #if defined(__O_RSYNC) > #define O_RSYNC __ORSYNC > #else > #define O_RSYNC XXX > #endif > #endif > > How/if should we guard the definitions of O_RSYNC/O_DSYNC? > Open Group just cites them as C Library extensions. Linux is > marking is as 1999. Does that correspond to newlib's > __XSI_VISIBLE >= 600? Hmm, good question. What about __POSIX_VISIBLE >= 199309? > Should I just pick the next logical values in sys/_default_fcntl.h > around line 25 and add these around 45? Have a look at lines 48-50. These are already defined for ages on Cygwin (no idea, though, who thought _WIN32 would ever be useful). Cygwin also defines additional values in its own fcntl.h, and you never know if other targest define their own values, too. It would be nice not to introduce clashing values in the default fcntl header. Here's what Cygwin defines in /usr/include/fcntl.h: /* sys/_default_fcntl.h defines values up to 0x40000 (O_NOINHERIT). */ #define _FDIRECT 0x80000 #define _FNOFOLLOW 0x100000 #define _FDIRECTORY 0x200000 #define _FEXECSRCH 0x400000 #define O_DIRECT _FDIRECT #define O_NOFOLLOW _FNOFOLLOW #define O_DSYNC _FSYNC #define O_RSYNC _FSYNC #define O_DIRECTORY _FDIRECTORY #define O_EXEC _FEXECSRCH #define O_SEARCH _FEXECSRCH As you can see, O_DSYNC and O_RSYNC are == O_SYNC == _FSYNC. Given the potential implementation differences between targets and given their state as optional in SUSv4, shouldn't the definitions stay outside of sys/_default_fcntl.h? Also, for 16 bit targets the O_DSYNC and O_RSYNC values, as well as any other value, should override values from lines 10 to 25 not used in the open call (_FMARK, _FDEFER, etc), otherwise we're out of 16 bit flag values. Corinna -- Corinna Vinschen Cygwin Maintainer Red Hat
Attachment:
pgpc2eBwqf9kP.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |