compnerd added a comment.

In https://reviews.llvm.org/D34588#802533, @bruno wrote:

> > Thinking more about this, on Windows, is there a strong reason to default 
> > to a different libc by default on Windows?
>
> I'm mostly concerned with `-fms-extensions` + darwin, which doesn't apply to 
> this scenario, maybe someone else knows a better answer here.


Could something like _WIN32 && _MSC_VER make this better?  That would allow us 
to differentiate between the various environments.  It's kinda icky, but, does 
make sense in a round about way.

> 
> 
>> @bruno would reusing `-ffreestanding` work for you here?
> 
> I think forcing the use of `-ffreestanding` with Apple platforms just for 
> this is too restrictive.

Okay, was worth the shot anyways.

>> Or is there something else that we can identify about the target environment 
>> that can indicate that the MS CRT is unavailable?  I think that what is 
>> weird to me about this is that this is not about compatibility with Visual 
>> Studio but about the underlying libc.  It feels like it would be similar in 
>> spirit to say that libc++ defaults to libSystem as the underlying libc on 
>> Linux.
> 
> Right, makes total sense. I'm assuming that `-fms-extensions` for other 
> targets (Linux) will also rely in not using `_LIBCPP_MSVCRT`, however 
> #ifdefing for other platforms here doens't seem to add much because they 
> usually do not set `_MSC_VER` anyways. Additional ideas?

Another bad idea: -U_MSC_VER.  The undefine should come after the preprocessor 
is initialized and should have the same effect as not having it defined.


https://reviews.llvm.org/D34588



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to