(adding back cfe-commits, answers inline)

On 6/8/16, 10:11 AM, "tha...@google.com on behalf of Nico Weber" 
<tha...@google.com on behalf of tha...@chromium.org> wrote:
>Sounds like "commit to the current file case and fix all the world's includes" 
>then :-) (MinGW's windows headers have different case than MSVC's, making this 
>extra annoying.) 
>
>Maybe this warning could be keyed off -fmsc-version in clang-cl then and only 
>be enabled there once a future MSVC with headers where this is fixed has been 
>deployed and is picked via -fmsc-version?

I just changed the patch so that #includes to headers found in system include 
paths do not trigger this warning by default (unless the header is a known 
“portable” header – i.e., standard C/C++/Posix or Boost headers). This 
shouldn’t be an issue anymore.

>Eric, do you think you could send Stephan a list of #includes in Windows 
>headers that would need changing?

Since warnings are not emitted from within system headers, and since 
badly-cased #includes of WinSDK headers will no longer warn by default, is this 
still an issue? I don’t have an easy way to generate this list.

>(any reason cfe-commits got dropped from the cc list? This would be good to 
>discuss on-thread.)
>
>On Tue, Jun 7, 2016 at 6:42 PM, Stephan T. Lavavej 
><s...@exchange.microsoft.com> wrote:
>>Knowing Windows, there is probably no way that they would change the case on 
>>disk on the headers, as that would be observable to directory enumeration.
>> 
>>STL
>> 
>>From: tha...@google.com [mailto:tha...@google.com] On Behalf Of Nico Weber
>>Sent: Tuesday, June 7, 2016 3:40 PM
>>To: Stephan T. Lavavej <s...@exchange.microsoft.com>
>>Cc: Eric Niebler <enieb...@fb.com>; Taewook Oh <t...@fb.com>
>>Subject: Re: r271708 - Use the name of the file on disk to issue a new 
>>diagnostic about non-portable #include and #import paths.
>> 
>>>STL: "Make sure all filenames have lower-case names and all #includes refer 
>>>to them by lower-case name, and tell all users to include files by lower 
>>>case" is probably the only SDK change that's simple enough that it has a 
>>>chance to be understood and to actually happen. (The other alternative is 
>>>>>>"commit to keep the case of each SDK header as-is forever, and ask every 
>>>client to use the on-disk casing, which unless they use a compiler with a 
>>>warning like this they'll have to look up themselves" -- and at the moment I 
>>>think the on-disk case of windows.h is Windows.h while every program I 
>>>>>>know of includes it as <windows.h>, so this would require changing 
>>>decades of existing code.)
>>> 
>>>On Tue, Jun 7, 2016 at 12:57 PM, Stephan T. Lavavej 
>>><s...@exchange.microsoft.com> wrote:
>>>>Sure, but it's time consuming to figure out a build, and I have a limited 
>>>>amount of time to donate.
>>>>
>>>>On the other hand, if this gets into trunk and eventually Clang/C2, at that 
>>>>point auditing the headers would be pretty easy over here.
>>>>
>>>>STL 
>>>>
>>>>-----Original Message-----
>>>>From: Eric Niebler [mailto:enieb...@fb.com]
>>>>Sent: Tuesday, June 7, 2016 9:00 AM
>>>>To: Stephan T. Lavavej <s...@exchange.microsoft.com>; Nico Weber 
>>>><tha...@chromium.org>
>>>>Cc: Taewook Oh <t...@fb.com>
>>>>Subject: Re: r271708 - Use the name of the file on disk to issue a new 
>>>>diagnostic about non-portable #include and #import paths.
>>>>
>>>>>Someone who builds and distributes their own mingw distribution can figure 
>>>>>out how to build clang. ☺ The directions are here: 
>>>>>http://clang.llvm.org/get_started.html. I’m happy to answer any questions.
>>>>>
>>>>>\e
>>>>>
>>>>>On 6/6/16, 5:54 PM, "Stephan T. Lavavej" <s...@exchange.microsoft.com> 
>>>>>wrote:
>>>>>>Unfortunately, I haven't figured out how to build Clang/LLVM (all of my 
>>>>>>Clang work is with Clang/C2 which they build for me).
>>>>>>
>>>>>>STL
>>>>>>
>>>>>>-----Original Message-----
>>>>>>From: Eric Niebler [mailto:enieb...@fb.com]
>>>>>>Sent: Monday, June 6, 2016 3:19 PM
>>>>>>To: Stephan T. Lavavej <s...@exchange.microsoft.com>; Nico Weber 
>>>>>><tha...@chromium.org>
>>>>>>Cc: Taewook Oh <t...@fb.com>
>>>>>>Subject: Re: r271708 - Use the name of the file on disk to issue a new 
>>>>>>diagnostic about non-portable #include and #import paths.
>>>>>>
>>>>>>On 6/3/16, 5:17 PM, "Stephan T. Lavavej" <s...@exchange.microsoft.com> 
>>>>>>wrote:
>>>>>>> [Eric Niebler]
>>>>>>>> Once I sort out the -imsvc thing, how bad would it be to leave it 
>>>>>>>> alone?
>>>>>>>> Probably pretty bad for folks in the Windows world, huh?
>>>>>>>
>>>>>>> If you can send me an explicit list of WinSDK headers that are 
>>>>>>> including things with the wrong case, I can send it to Windows - they 
>>>>>>> are committed to cleaning up the WinSDK in order to make it friendlier 
>>>>>>> to other tools.
>>>>>>>
>>>>>>> Note that we can't go back in time and fix the shipped SDKs, though.
>>>>>>
>>>>>>It would actually be easier for you to generate this list than for me 
>>>>>>since I’m not set up to build anything with the Windows SDK. Check out 
>>>>>>the llvm/clang sources and apply the two linked patches. Configure and 
>>>>>>build. Then just use clang as normal and watch the warnings roll.
>>>>>>
>>>>>>http://reviews.llvm.org/D19842
>>>>>>http://reviews.llvm.org/D19843
>>>>>>
>>>>>>The warnings tell you exactly what to change the #include to, so this 
>>>>>>should be easy pickin’s.
>>>>>>
>>>>>>Eric


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

Reply via email to