|
Message-ID: <20130510143516.GA17281@openwall.com> Date: Fri, 10 May 2013 18:35:16 +0400 From: Solar Designer <solar@...nwall.com> To: john-dev@...ts.openwall.com Subject: Re: os.h usage Jim - On Fri, May 10, 2013 at 07:24:04AM -0400, jfoug@....net wrote: > Shouldn't we add to this? I think another area where there is a lot of OS dependent stuff, is in includes. > > I was just wondering if the os.h file is 'open' for modifications? There already is one issue that I know of in the os.h. That is in the FLOCK section. The whole flock section should be wrapped with a #if defined (_MSC_VER) setting OS_FLOCK to 0 for it. There is no <sys/file.h> for VC VC support is something (only) you work on, and only in jumbo - so yes, it's up to you to add that. :-) > But I think a lot of the very ugliness in the #include block, can be hidden with 'less' ugly defines. > > So instead of: > > #if !defined (_MSC_VER) && !defined (__MINGW32__) && !defined (__SOME_OTHER_OS__) > #include <somefile.h> > #endif > > We could have: > > #if HAS_SOMEFILE_H > #include <somefile.h> > #endif > > Then set the HAS_SOMEFILE_H in os.h using the OS specific defines. You may experiment with this in jumbo and see if it actually ends up simplifying things. I think "#ifdef HAVE_SOMETHING" is more standard for this - and we already define some HAVE_*'s in the Makefile. > Also, I am really not sold on the 'NEEDS_OS_TIMER', 'NEEDS_OS_FLOCK', ..... Would it not be better to simply set all of the defined constants, whenever os.h is loaded? The problem is that we have os.h itself include other files and test for certain conditions in order to define the corresponding OS_* macros. If we have this happen for all OS_* macros all the time, we'd end up including extra files and also setting _XOPEN_SOURCE and _DARWIN_C_SOURCE for all source files that include os.h. While it may be OK and it may actually simplify things if the feature macros are set in the exact same way for all source files, this is not what has been tested so far, and to arrive at it consistently changes outside of os.h would be needed as well. Alexander
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.