On Tue, Nov 13, 2012 at 10:33:01AM +0100, Corinna Vinschen wrote: >On Nov 12 22:31, Christopher Faylor wrote: >> On Mon, Nov 12, 2012 at 07:02:57PM -0500, Christopher Faylor wrote: >> >On Mon, Nov 12, 2012 at 10:50:23PM +0100, Corinna Vinschen wrote: >> >>I'm a bit puzzled about the necessity of some of the changes to source >> >>files. Yaakov's Fedora 17 version of the headers is supposedly cut from >> >>the mingw64 trunk on 2012-10-16, while JonY's official headers have an >> >>upload date of 2012-10-18. They should be practically identical. Why >> >>do I not see any problems to build CVS HEAD?!? >> > >> >You can keep asking me this question but I don't really have an answer. >> >Since I don't run Fedora, I'm not going to install it to figure it out. > >I just checked and there's no difference in the header files at all. >Yaakov's version == JonY's version. > >> Actually, an idea came to me in the thinking room that this might be due >> to the fact that my windows headers may not be considered to be system >> headers since they aren't in a preinstalled location. I know that gcc >> can be more lax about redefine symbols in some situations when dealing >> with system headers. Maybe that's it. > >Looks like it. The w32api headers are system headers so -isystem rather >than -idirafter should show a better result without requiring any of the >source file changes.
Maybe I can use -isystem with ccwraper. I'd previously gotten things working without the wrapper, using idirafter so that's what I stuck with. However, the wrapper may now allow just always including the windows headers last. >Especially having to define _WIN32 in winlean.h and winsup.h looks >pretty wrong. I would also like to keep the ifndef/define brackets in >the headers since > > #ifndef _CYGWIN_IF_H_ > #define _CYGWIN_IF_H_ > >can be tested for in other headers while #pragma once can not. I think that testing for "BLAH_DECLARED" for individual definitions is a much better way to see if something is defined than relying on an implementation detail like "_CYGWIN_IF_H". Those are not supposed to be a published interface. In theory anyone could change those to something like: #ifndef _CYGWIN_IF_INCLUDED #define _CYGWIN_IF_INCLUDED and they would have been within their rights to do that. I always felt that it was wrong to be testing for those guards, even when I was doing it. However, I won't check those changes in. cgf