[PATCH] Change base mutex implementations to use STL-provided mutexes
Zachary Turner
zturner at google.com
Fri Jun 6 11:09:55 PDT 2014
Couldn't this be solved by definining everything we need (e.g.
_WIN32_WINNT, NOMINMAX, etc) at the CMake level? What's the problem with
COFF.h?
On Fri, Jun 6, 2014 at 11:07 AM, Reid Kleckner <rnk at google.com> wrote:
> On Fri, Jun 6, 2014 at 10:52 AM, Zachary Turner <zturner at google.com>
> wrote:
>>
>> Ack, this breaks everything. WindowsSupport.h is in
>> src\llvm\lib\Support\Windows. In other words, it's not in the include
>> path. It's usually only included from source files, in which case it's in
>> the same tree, so it works. It this kind of "don't put platform specific
>> stuff in header files" a universal policy? It seems to me like the
>> WindowsSupport.h (and correspondingly, the Unix support headers), should be
>> in the include directories so other headers can use them. I'm guessing a
>> lot of the reason that these void* impls are needed is precisely because of
>> this restriction, and could be done away with in many cases if header files
>> had access to platform specific types, even if only through other header
>> files which typedefed platformed specific types to a set of common,
>> platform-independent types.
>>
>
> LLVM has a bunch of conflicts with windows.h, so including it from
> include/* will break if someone includes it with llvm/Support/COFF.h.
> windows.h has so many configuration macros (WIN32_LEAN_AND_MEAN, WINVER,
> NOMINMAX) that including it broadly is inviting include order dependence
> problems, so we've avoided it so far.
>
> I think we should be able to get by with a semi-opaque
> CriticalSectionMutex, where the methods are defined out-of-line in
> lib/Support/Windows/Something.inc.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140606/f4af5c70/attachment.html>
More information about the llvm-commits
mailing list