This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
Re: [WIP] mingw64 related changes to Cygwin configure and other assorted files with departed w32api/mingw
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