[PATCH] D48626: New option -fwindows-filesystem, affecting #include paths.

2018-06-28 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. > first check all directories in a fully case sensitive manner, just like > today. And if that fails (and we'd have a real failure that we'd otherwise > return to the caller), redo it all with case insensitivity. I agree that the integration would be a bigger heada

[PATCH] D48626: New option -fwindows-filesystem, affecting #include paths.

2018-06-28 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. In https://reviews.llvm.org/D48626#1146282, @simon_tatham wrote: > Although, come to think of it, that's not good enough, because if you have > multiple directories on your include //path// then you expect a lot of > lookups to fail for reasons that have nothing to do

[PATCH] D48626: New option -fwindows-filesystem, affecting #include paths.

2018-06-28 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. @thakis : no, the backslash support is needed for include directives //in source files//, not just on command lines, because in my experience it's not unusual for Windows-only code bases to be full of things like `#include "Subdir\Header.h"`. @mstorsjo : in this d

[PATCH] D48626: New option -fwindows-filesystem, affecting #include paths.

2018-06-27 Thread Shoaib Meenai via Phabricator via cfe-commits
smeenai added subscribers: smeenai, compnerd, zturner. smeenai added a comment. Adding some people who are interested in Windows cross-compilation. Repository: rC Clang https://reviews.llvm.org/D48626 ___ cfe-commits mailing list cfe-commits@list

[PATCH] D48626: New option -fwindows-filesystem, affecting #include paths.

2018-06-27 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. FWIW, I'm also interested in this. I wasn't aware of the other ways of achieving this used by chromium, but although neat, I'd prefer something that doesn't require that kind of setup. As for performance - although I haven't studied how the code works - wouldn't it be

[PATCH] D48626: New option -fwindows-filesystem, affecting #include paths.

2018-06-27 Thread Nico Weber via Phabricator via cfe-commits
thakis added a comment. The things I pointed at only do case-insensitivity. I haven't seen anything using backslashes in the builds I worked on. (Is that for -I flags?) I'd think that the backslash bits can probably be implemented with less overhead. Repository: rC Clang https://reviews.llv

[PATCH] D48626: New option -fwindows-filesystem, affecting #include paths.

2018-06-27 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. No, I haven't measured it. Partly because that was one of the (many) things I was going to leave until after I //didn't// get feedback on the first draft that discouraged me from the whole idea :-) and also because I've already thought of one thing I can do to spee

[PATCH] D48626: New option -fwindows-filesystem, affecting #include paths.

2018-06-27 Thread Nico Weber via Phabricator via cfe-commits
thakis added a comment. There are 2 other patches out there for the case sensitivity. Neither landed, because the performance hit form this approach is pretty big, and it's not necessary: You can either put the Win SDK into a ciopfs mount (example: https://cs.chromium.org/chromium/src/build/vs_

[PATCH] D48626: New option -fwindows-filesystem, affecting #include paths.

2018-06-27 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham added a comment. As I mentioned on llvm-dev, this is an unfinished draft. I'm interested in review comments, but I already know things like 'needs more comments / tests / careful error handling' :-) Some 'known unknowns': - I'm caching the results of every directory scan, to save

[PATCH] D48626: New option -fwindows-filesystem, affecting #include paths.

2018-06-27 Thread Simon Tatham via Phabricator via cfe-commits
simon_tatham created this revision. Herald added a subscriber: cfe-commits. This option interposes a wrapper implementation of VirtualFileSystem in front of the one in the CompilerInstance. The wrapper filesystem differs from the standard one in that it tolerates backslashes as a path separator ev