This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB 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]

Re: [PATCH] winsock include fixes


2010/3/26 Ozkan Sezer <sezeroz@gmail.com>:
> Hi: Here is a patch fixing the winsock include problem
> which appeared after the recent winsock header work in
> mingw-w64-headers. Problem is this: ?GDB does windows.h
> and winsock2.h includes in its own headers and then it
> includes them in its sources in an arbitrary order. If
> winsock2.h or a header including winsock2.h (such as
> gdb_select.h) is included after windows.h or a header
> including windows.h (such as serial.h), then conflicting
> definitions occur and they result in error, because windows.h
> already includes winsock.h and including winsock2.h after
> that is an error. The patch fixes that in a quick and
> dirty way mostly by tweaking the include order. Tested
> by compiling gdb for x86_64-w64-mingw32, i686-w64-mingw32
> and x86_64-pc-linux-gnu. Please consider for applying.
>
> --
> Ozkan

Ok, patch is ok. Ugly, but ok.

> PS:
> A possibly better solution is defining WIN32_LEAN_AND_MEAN
> before including windows.h and then manually including
> the necessary additional headers in the sources, but that
> may require some more work.

Long term we should clean it up in gdb. But I am pretty sure this
wrong order appears in other projects, too. So I think we should make
winsock2.h able to override definitions of winsock.h to simply allow
this. I dislike to priest and have malfunctional projects using our
runtime. It is correct that this behavior is default for VC, but it
hard to argument here, as we will always hear that things are working
by using w32api.

Kai


-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]