r273016 - Driver: introduce and use `-isystem-after` for cross-windows
Rafael EspĂndola via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 17 12:45:14 PDT 2016
Looks like this broke a few bots:
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 at 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 at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list