Patrik Stridvall ps@leissner.se writes:
Patrik Stridvall ps@leissner.se writes:
Hmm. I'm note sure I like making unistd.h an optional header but then few part of Wine should include it anyway so perhaps it doesn't matter.
The question is whether you can build without it. If the needed definitions are provided by other includes then it's fine to make it optional; but if the code doesn't compile without it then there's no point in having a check.
Yes and in many cases it did work without unistd.h, but maybe that is because it really wasn't needed at all.
In some case it might have worked because some of the functions in unistd.h is defined else where in Windows and in some case we might get it to work by including needed files.
Of course in such cases we probably should fix Wine and include that other header exclusively instead of unistd.h.
Anyway, I just experimented a little trying to get Wine to compile under Windows. I'm not really sure exacly what to do.
Eventually I guess that the non-core DLL:s never should call any non Windows functions at all and the core DLL:s are not really useful to compile and run under Windows anyway.
Well I have only played with the shell32.dll and in any file in there except "shelllink.c" removing "unistd.h" entirely had no negative effect whatsoever. This means to me that it is not needed at all. The use of fork(), execvp(), and waitpid() in "shelllink.c" however seems to require the "unistd.h" header.
I'm not sure if shell32 should be considered a core DLL. It seems to me rather not. The desired operation could be possibly achieved with the use of Windows kernel functions as well.
Rolf Kalbermatter CIT Engineering Nederland BV tel: +31 (070) 415 9190 Treubstraat 7H fax: +31 (070) 415 9191 2288 EG Rijswijk http://www.citeng.com Netherlands mailto:rolf.kalbermatter@citeng.com