[LLVMdev] Windows Installer

Eric Mader emader at gmx.us
Mon Sep 29 18:18:36 PDT 2014


Thanks for all the help. Comments inline below.

Regards,
Eric

On 9/29/14, 2:35 PM, Rafael Auler wrote:
> Which strange errors? If you are trying to build a C++ project, 
> remember that Clang does not yet support exception handling and you 
> should disable them. To do this, you should go to Project Properties 
> and navigate to Configuration Properties, C/C++, Command Line, 
> Additional Options and put /GR- /D_HAS_EXCEPTIONS=0 there.

The errors I'm seeing look like this:

1>  In file included from C:\Program Files (x86)\Microsoft Visual Studio 
12.0\VC\include\algorithm:6:
1>  In file included from C:\Program Files (x86)\Microsoft Visual Studio 
12.0\VC\include\xmemory:6:
1>  In file included from C:\Program Files (x86)\Microsoft Visual Studio 
12.0\VC\include\xmemory0:909:
1>  In file included from C:\Program Files 
(x86)\LLVM\msbuild-bin\..\lib\clang\3.6.0\include\intrin.h:34:
1>  In file included from C:\Program Files 
(x86)\LLVM\msbuild-bin\..\lib\clang\3.6.0\include\x86intrin.h:29:
1>  In file included from C:\Program Files 
(x86)\LLVM\msbuild-bin\..\lib\clang\3.6.0\include\immintrin.h:28:
1>C:\Program Files 
(x86)\LLVM\msbuild-bin\..\lib\clang\3.6.0\include\mmintrin.h(52,40): 
error : cannot initialize a parameter of type 
'__attribute__((__vector_size__(2 * sizeof(int)))) int' (vector of 2 
'int' values) with an rvalue of type '__v2si' (aka 'int')
1>      return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0);
1>                                         ^~~~~~~~~~~

I'm porting a bunch of code from MacOS X (using Xcode) to Windows. I 
suppose it's possible I haven't set some preprocessor variable 
correctly, but looking at the LLVM include files in the chain, they 
don't seem to depend on any preprocessor variables.
> If it builds a 32-bit binary, it should succeed with 64-bit, since the 
> toolset is exactly the same, with the difference of the parameters 
> passed to clang-cl.exe.
D'oh! Just worked out that when I hand-installed the x64 toolset, I 
didn't rename the .props and .targets files to "toolset.props" and 
"toolset.targets" per install.bat.

Now I get the same compilation errors I that I saw for Win32. (Progress!)

On Mon, Sep 29, 2014 at 9:26 PM, Eric Mader <emader at gmx.us 
<mailto:emader at gmx.us>> wrote:
>
>     I replaced all instances of "$(Platform)" with "x64" for the x64
>     .props file and it still fails, so it looks like that guess was
>     wrong as well.
>
>     Regards,
>     Eric
>
>
>     On 9/29/14, 2:11 PM, Eric Mader wrote:
>>     Quoting doesn't seem to make a difference. Strangely, the Win32
>>     toolset seems to work. (Where "work" means that clang runs and
>>     produces a bunch of strange errors ;-)
>>
>>     The only difference I see between the two .props files is that
>>     one passes "-m86" to the compiler and the other one passes "-m64".
>>
>>     They both reference $(Platform), so I wonder if maybe $(Platform)
>>     isn't getting set correctly? The platform name in the project is
>>     "x64" which seems right...
>>
>>     Regards,
>>     Eric
>>
>>     On 9/29/14, 12:40 PM, Rafael Auler wrote:
>>>     Your install dir has a whitespace. Have you tried quoting? e.g.
>>>      <LLVMInstallDir>"C:\Program Files (x86)\LLVM"</LLVMInstallDir>
>>>
>>>     Best regards,
>>>     Rafael Auler
>>>
>>>     On Mon, Sep 29, 2014 at 7:38 PM, Eric Mader <emader at gmx.us
>>>     <mailto:emader at gmx.us>> wrote:
>>>
>>>         I changed tooset-vs2013.props to this:
>>>
>>>         <Project
>>>         xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
>>>         <http://schemas.microsoft.com/developer/msbuild/2003>>
>>>           <Import
>>>         Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v120\Microsoft.Cpp.$(Platform).v120.props"Condition="Exists('$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v120\Microsoft.Cpp.$(Platform).v120.props')"/>
>>>           <Import
>>>         Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v120\Toolset.props"Condition="Exists('$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v120\Toolset.props')"/>
>>>
>>>           <PropertyGroup>
>>>             <LLVMInstallDir>C:\Program Files (x86)\LLVM</LLVMInstallDir>
>>>         <ExecutablePath>"$(LLVMInstallDir)\msbuild-bin";$(ExecutablePath)</ExecutablePath>
>>>         <LibraryPath>$(LLVMInstallDir)\lib\clang\3.6.0\lib\windows;$(LibraryPath)</LibraryPath>
>>>           </PropertyGroup>
>>>
>>>           <ItemDefinitionGroup>
>>>             <ClCompile>
>>>               <!-- Set the value of _MSC_VER to claim for
>>>         compatibility -->
>>>               <AdditionalOptions>-m64 -fmsc-version=1800
>>>         %(AdditionalOptions)</AdditionalOptions>
>>>             </ClCompile>
>>>           </ItemDefinitionGroup>
>>>         </Project>
>>>
>>>         It still doesn't work... Is there something else I need to
>>>         change?
>>>
>>>         Regards,
>>>         Eric
>>>
>>>
>>>         On 9/29/14, 10:41 AM, Rafael Auler wrote:
>>>>         Open the file toolset-vs2013.props and you'll understand
>>>>         what's happening and where the path is set. It tries to
>>>>         fetch the LLVM installation path from the Windows registry.
>>>>         Just fix this (maybe editing your registry or editing the
>>>>         .props file, whatever suits you best).
>>>>
>>>>         On Mon, Sep 29, 2014 at 5:33 PM, Eric Mader <emader at gmx.us
>>>>         <mailto:emader at gmx.us>> wrote:
>>>>
>>>>             I copied the x64 toolsets by hand and now when I try to
>>>>             compile a file, I get an error message saying that the
>>>>             build tools for llvm-2013 cannot be found. I guess that
>>>>             this is because the installer didn't correctly add the
>>>>             LLVM tools to $PATH. How can I correctly add the LLVM
>>>>             tools to the path?
>>>>
>>>>             Regards,
>>>>             Eric
>>>>
>>>>
>>>>             On 9/29/14, 10:22 AM, Eric Mader wrote:
>>>>>             Ah, OK. I did find the install.bat script and ran it
>>>>>             in a command shell w/ admin access.  I have VS 2010
>>>>>             and VS 2013 installed. The script reported that it
>>>>>             copied 6 files. Poking around, I noticed that it wrote
>>>>>             toolsets only for win32. (vs2010, vs2013, vs2113_xp)
>>>>>             Looking at the script, it seems like it should write
>>>>>             x64 toolsets too. I'll try copying the x64 toolsets by
>>>>>             hand to see what happens
>>>>>
>>>>>             Regards,
>>>>>             Eric Mader
>>>>>
>>>>>             On 9/29/14, 9:38 AM, Rafael Auler wrote:
>>>>>>             I was not necessarily asking you to build, but just
>>>>>>             to check your installation folder and see whether you
>>>>>>             have "tools/msbuild/install.bat" there because I
>>>>>>             don't know if the Windows installer puts this there.
>>>>>>             However, if you want to build outside VS, I recommend
>>>>>>             mingw-w64. If you have any difficulties about the VS
>>>>>>             build process though, feel free to ask questions :-)
>>>>>>
>>>>>>             Usually, to build LLVM on a Windows system from
>>>>>>             scratch (with VS installed), I would just install git
>>>>>>             for windows, which already installs a lot of
>>>>>>             important GNU tools, and ask to put everything in my
>>>>>>             path. Then I would install CMake and put this in my
>>>>>>             path. Afterwards, open a shell with VS paths, create
>>>>>>             a build folder, run CMake -G"Visual Studio
>>>>>>             ...<yourversion>" and then "msbuild <name of
>>>>>>             project>". A lot of people prefer to use ninja
>>>>>>             instead of msbuild, though, but you must install
>>>>>>             ninja and use CMake -GNinja instead.
>>>>>>
>>>>>>             On Mon, Sep 29, 2014 at 4:29 PM, Eric Mader
>>>>>>             <emader at gmx.us <mailto:emader at gmx.us>> wrote:
>>>>>>
>>>>>>                 I was hoping to not have to build LLVM myself,
>>>>>>                 especially on Windows. Can anybody help me with
>>>>>>                 the Windows installer?
>>>>>>
>>>>>>                 Failing that, I find the directions for how to
>>>>>>                 compile on Windows hard to follow? Can I build
>>>>>>                 using Cygwin?
>>>>>>
>>>>>>                 Regards,
>>>>>>                 Eric
>>>>>>
>>>>>>
>>>>>>                 On 9/29/14, 8:11 AM, Rafael Auler wrote:
>>>>>>>                 I'm not sure about the Windows installer, but if
>>>>>>>                 you build and install LLVM for Windows from the
>>>>>>>                 source code, you should be able to go to the
>>>>>>>                 installation folder, find a subfolder named
>>>>>>>                 "tools/msbuild" and run the "install.bat"
>>>>>>>                 script. This should make your LLVM toolset
>>>>>>>                 appear in VS.
>>>>>>>
>>>>>>>                 On Mon, Sep 29, 2014 at 2:52 PM, Eric Mader
>>>>>>>                 <emader at gmx.us <mailto:emader at gmx.us>> wrote:
>>>>>>>
>>>>>>>                     I’m trying to install
>>>>>>>                     LLVM-3.6.0-r218288-win32.exe on Windows 7
>>>>>>>                     Ultimate x64. The install doesn’t complain,
>>>>>>>                     but the toolset doesn’t show up in either
>>>>>>>                     Visual Studio 2013 or Visual Studio 2010.
>>>>>>>                     Also I selected the choices to add LLVM to
>>>>>>>                     the path for every user and put an LLVM icon
>>>>>>>                     on the desktop. Neither of this happened.
>>>>>>>                     Can anyone tell me how to get this to work?
>>>>>>>
>>>>>>>                     Regards,
>>>>>>>                     Eric Mader
>>>>>>>                     _______________________________________________
>>>>>>>                     LLVM Developers mailing list
>>>>>>>                     LLVMdev at cs.uiuc.edu
>>>>>>>                     <mailto:LLVMdev at cs.uiuc.edu>
>>>>>>>                     http://llvm.cs.uiuc.edu
>>>>>>>                     http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140929/6e425f91/attachment.html>


More information about the llvm-dev mailing list