On Fri, Jun 17, 2016 at 12:45 PM, Rafael EspĂndola < rafael.espind...@gmail.com> wrote:
> Looks like this broke a few bots: > Yeah, sorry about that. It should all be cleared up by now (I had a couple of follow ups to make the test more generic). > > http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/7311 > > Cheers, > Rafael > > > On 17 June 2016 at 13:23, Saleem Abdulrasool via cfe-commits > <cfe-commits@lists.llvm.org> wrote: > > Author: compnerd > > Date: Fri Jun 17 12:23:16 2016 > > New Revision: 273016 > > > > URL: http://llvm.org/viewvc/llvm-project?rev=273016&view=rev > > Log: > > Driver: introduce and use `-isystem-after` for cross-windows > > > > This mirrors the many other -i*after options to insert a new system > search > > directory at the end of the search path. This makes it possible to > actually > > inject a search path after the resource dir. This option is similar in > spirit > > to the /imsvc option in the clang-cl driver. This is needed to properly > use the > > driver for Windows targets where the clang headers wrap some of the > system > > headers. > > > > This concept is actually useful on other targets (e.g. Linux) and would > be > > really easy to support on the core toolchain. > > > > Modified: > > cfe/trunk/include/clang/Driver/Options.td > > cfe/trunk/lib/Driver/CrossWindowsToolChain.cpp > > cfe/trunk/lib/Driver/Tools.cpp > > cfe/trunk/test/Driver/windows-cross.c > > > > Modified: cfe/trunk/include/clang/Driver/Options.td > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=273016&r1=273015&r2=273016&view=diff > > > ============================================================================== > > --- cfe/trunk/include/clang/Driver/Options.td (original) > > +++ cfe/trunk/include/clang/Driver/Options.td Fri Jun 17 12:23:16 2016 > > @@ -1277,6 +1277,9 @@ def isysroot : JoinedOrSeparate<["-"], " > > def isystem : JoinedOrSeparate<["-"], "isystem">, Group<clang_i_Group>, > > Flags<[CC1Option]>, > > HelpText<"Add directory to SYSTEM include search path">, > MetaVarName<"<directory>">; > > +def isystem_after : JoinedOrSeparate<["-"], "isystem-after">, > > + Group<clang_i_Group>, Flags<[DriverOption]>, > MetaVarName<"<directory>">, > > + HelpText<"Add directory to end of the SYSTEM include search path">; > > def iwithprefixbefore : JoinedOrSeparate<["-"], "iwithprefixbefore">, > Group<clang_i_Group>, > > HelpText<"Set directory to include search path with prefix">, > MetaVarName<"<dir>">, > > Flags<[CC1Option]>; > > > > Modified: cfe/trunk/lib/Driver/CrossWindowsToolChain.cpp > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/CrossWindowsToolChain.cpp?rev=273016&r1=273015&r2=273016&view=diff > > > ============================================================================== > > --- cfe/trunk/lib/Driver/CrossWindowsToolChain.cpp (original) > > +++ cfe/trunk/lib/Driver/CrossWindowsToolChain.cpp Fri Jun 17 12:23:16 > 2016 > > @@ -62,6 +62,8 @@ AddClangSystemIncludeArgs(const llvm::op > > llvm::sys::path::append(ResourceDir, "include"); > > addSystemInclude(DriverArgs, CC1Args, ResourceDir); > > } > > + for (const auto &P : > DriverArgs.getAllArgValues(options::OPT_isystem_after)) > > + addSystemInclude(DriverArgs, CC1Args, P); > > addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + > "/usr/include"); > > } > > > > > > Modified: cfe/trunk/lib/Driver/Tools.cpp > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=273016&r1=273015&r2=273016&view=diff > > > ============================================================================== > > --- cfe/trunk/lib/Driver/Tools.cpp (original) > > +++ cfe/trunk/lib/Driver/Tools.cpp Fri Jun 17 12:23:16 2016 > > @@ -502,6 +502,13 @@ void Clang::AddPreprocessingOptions(Comp > > << > A->getAsString(Args); > > } > > } > > + } else if (A->getOption().matches(options::OPT_isystem_after)) { > > + // Handling of paths which must come late. These entries are > handled by > > + // the toolchain itself after the resource dir is inserted in the > right > > + // search order. > > + // Do not claim the argument so that the use of the argument does > not > > + // silently go unnoticed on toolchains which do not honour the > option. > > + continue; > > } > > > > // Not translated, render as usual. > > > > Modified: cfe/trunk/test/Driver/windows-cross.c > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/windows-cross.c?rev=273016&r1=273015&r2=273016&view=diff > > > ============================================================================== > > --- cfe/trunk/test/Driver/windows-cross.c (original) > > +++ cfe/trunk/test/Driver/windows-cross.c Fri Jun 17 12:23:16 2016 > > @@ -67,3 +67,10 @@ > > // CHECK-SANITIZE-TSAN: error: unsupported argument 'tsan' to option > 'fsanitize=' > > // CHECK-SANITIZE-TSAN-NOT: "-fsanitize={{.*}}" > > > > +// RUN: %clang -### -target armv7-windows-itanium -isystem-after > "Windows Kits/10/Include/10.0.10586.0/ucrt" -isystem-after "Windows > Kits/10/Include/10.0.10586.0/um" -isystem-after "Windows > Kits/10/Include/10.0.10586.0/shared" -c %s -o /dev/null 2>&1 \ > > +// RUN: | FileCheck %s --check-prefix CHECK-ISYSTEM-AFTER > > +// CHECK-ISYSTEM-AFTER: "-internal-isystem" "{{.*}}/clang/3.9.0/include" > > +// CHECK-ISYSTEM-AFTER: "-internal-isystem" "Windows > Kits/10/Include/10.0.10586.0/ucrt" > > +// CHECK-ISYSTEM-AFTER: "-internal-isystem" "Windows > Kits/10/Include/10.0.10586.0/um" > > +// CHECK-ISYSTEM-AFTER: "-internal-isystem" "Windows > Kits/10/Include/10.0.10586.0/shared" > > + > > > > > > _______________________________________________ > > cfe-commits mailing list > > cfe-commits@lists.llvm.org > > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > -- Saleem Abdulrasool compnerd (at) compnerd (dot) org
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits