[Lldb-commits] Remove <windows.h> from lldb-types.h

Greg Clayton gclayton at apple.com
Tue Sep 3 09:47:39 PDT 2013


Looks good.

On Aug 30, 2013, at 10:44 PM, Virgile Bello <virgile.bello at gmail.com> wrote:

> Hello,
> 
> One of the biggest issue with the current MinGW build was that lldb-types included <Windows.h>.
> 
> It leads to slower compile time, but more importantly, due to its monolithic architecture, it was pulling lot of unwanted #defines. This results in various clash (requiring #undef). As an example, this recently resulted in many enum/#define conflicts with llvm's COFF.h.
> 
> On top of that, it was also polluding user code including LLDB since it would in turn include Windows.h, pulling all those unwanted #define, and removing control over how the user might want to include <windows.h> himself (it's controllable through various "pre #define").
> 
> As a result, I tried to remove <windows.h> from lldb-types.h.
> This led to various small refactoring (usually moving things from .h to .cpp, esp. for sockaddr, TimeValue, using LLVM atomic, etc...).
> Also SocketAddress is considered internal only (included only in .cpp, not .h) because it requires system defines (only .h file requiring windows.h).
> I had to get rid of timeval from headers (which is unfortunately defined by winsock2.h in Windows).
> 
> Note that I added two new functions and a constructor in TimeValue: seconds() and nanoseconds(). It doesn't match casing of existing lldb class but I tried to use LLVM's TimeValue function name so that a later transition to LLVM one will be more easy.
> 
> Patch might need some tuning, but it should give you a good idea of what I want to achieve.
> Let me know what you think about it.
> 
> Virgile
> <lldb-remove-windows-h.diff>_______________________________________________
> lldb-commits mailing list
> lldb-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits




More information about the lldb-commits mailing list