r266108 - clang-cl: Remove -isystem, add -imsvc.
Nico Weber via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 14 04:09:12 PDT 2016
On Thu, Apr 14, 2016 at 4:09 AM, Ismail Donmez via cfe-commits <
cfe-commits at lists.llvm.org> wrote:
> Hi,
>
> On Tue, Apr 12, 2016 at 10:04 PM, Nico Weber via cfe-commits
> <cfe-commits at lists.llvm.org> wrote:
> > Author: nico
> > Date: Tue Apr 12 14:04:37 2016
> > New Revision: 266108
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=266108&view=rev
> > Log:
> > clang-cl: Remove -isystem, add -imsvc.
> >
> > r260990 exposed -isystem in clang-cl. -isystem adds a directory to the
> front of
> > the system include search path. The idea was to use this to point to a
> hermetic
> > msvc install, but as it turns out this doesn't work: -isystem then adds
> the
> > hermetic headers in front of clang's builtin headers, and clang's
> headers that
> > are supposed to wrap msvc headers (say, stdarg.h) aren't picked up at all
> > anymore.
> >
> > So revert that, and instead expose -imsvc which works as if the passed
> > directory was part of %INCLUDE%: The header is treated as a system
> header, but
> > it is searched after clang's lib/Header headers.
> >
> > Fixes half of PRPR26751.
>
> This fails the test for me on Linux x86-64:
>
> /home/abuild/rpmbuild/BUILD/llvm/stage2/./bin/clang --driver-mode=cl
> --driver-mode=cl -fcolor-diagnostics
> -fno-color-diagnostics -fdiagnostics-color
> -fno-diagnostics-color -fdiagnostics-parseable-fixits
> -ferror-limit=10 -fmsc-version=1800 -fno-strict-aliasing
> -fstrict-aliasing -fsyntax-only -fms-compatibility
> -fno-ms-compatibility -fms-extensions -fno-ms-extensions
> -mllvm -disable-llvm-optzns -Wunused-variable
> -fmacro-backtrace-limit=0 -Werror /Zs --
> /home/abuild/rpmbuild/BUILD/llvm/tools/clang/test/Driver/cl-options.c
> 2>&1
> --
> Exit Code: 1
>
> Command Output (stderr):
> --
>
> /home/abuild/rpmbuild/BUILD/llvm/tools/clang/test/Driver/cl-options.c:88:17:
> error: expected string not found in input
> // SLASH_imsvc: "-internal-isystem"
> "{{[^"]*}}lib{{/|\\\\}}clang{{[^"]*}}include"
> ^
> <stdin>:1:1: note: scanning from here
> openSUSE Linux clang version 3.9.0 (trunk 266277) (based on LLVM 3.9.0svn)
> ^
> <stdin>:5:709: note: possible intended match here
> "/home/abuild/rpmbuild/BUILD/llvm/stage2/bin/clang-3.9" "-cc1"
> "-triple" "x86_64-pc-windows-msvc18.0.0" "-emit-obj" "-mrelax-all"
> "-mincremental-linker-compatible" "-disable-free"
> "-disable-llvm-verifier" "-discard-value-names" "-main-file-name"
> "cl-options.c" "-mrelocation-model" "pic" "-pic-level" "2"
> "-mthread-model" "posix" "-relaxed-aliasing" "-fmath-errno"
> "-masm-verbose" "-mconstructor-aliases" "-munwind-tables"
> "-target-cpu" "x86-64" "-D_MT" "--dependent-lib=libcmt"
> "--dependent-lib=oldnames" "-fms-volatile" "-fdiagnostics-format"
> "msvc" "-momit-leaf-frame-pointer" "-dwarf-column-info"
> "-debugger-tuning=gdb" "-resource-dir"
> "/home/abuild/rpmbuild/BUILD/llvm/stage2/bin/../lib64/clang/3.9.0"
> "-internal-isystem"
> "/home/abuild/rpmbuild/BUILD/llvm/stage2/bin/../lib64/clang/3.9.0/include"
> "-internal-isystem" "myincludedir" "-internal-isystem" "C:/Program
> Files/Microsoft Visual Studio 10.0/VC/include" "-internal-isystem"
> "C:/Program Files/Microsoft Visual Studio 9.0/VC/include"
> "-internal-isystem" "C:/Program Files/Microsoft Visual Studio
> 9.0/VC/PlatformSDK/Include" "-internal-isystem" "C:/Program
> Files/Microsoft Visual Studio 8/VC/include" "-internal-isystem"
> "C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include"
> "-fdebug-compilation-dir"
> "/home/abuild/rpmbuild/BUILD/llvm/stage2/tools/clang/test/Driver"
> "-ferror-limit" "19" "-fmessage-length" "0" "-fms-extensions"
> "-fms-compatibility" "-fms-compatibility-version=18"
> "-fno-threadsafe-statics" "-fdelayed-template-parsing"
> "-fobjc-runtime=gcc" "-fdiagnostics-show-option" "-o"
> "/tmp/cl-options-ca1c04.obj" "-x" "c"
> "/home/abuild/rpmbuild/BUILD/llvm/tools/clang/test/Driver/cl-options.c"
>
It's supposed to match the
"-internal-isystem"
"/home/abuild/rpmbuild/BUILD/llvm/stage2/bin/../lib64/clang/3.9.0/include"
"-internal-isystem" "myincludedir"
bit in your output. Looks like it's "lib64" instead of "lib" on your
system. Does changing
// SLASH_imsvc: "-internal-isystem"
"{{[^"]*}}lib{{/|\\\\}}clang{{[^"]*}}include"
to
// SLASH_imsvc: "-internal-isystem"
"{{[^"]*}}lib{{(64)?/|\\\\}}clang{{[^"]*}}include"
help?
>
> Any ideas?
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160414/a59bc39b/attachment.html>
More information about the cfe-commits
mailing list