[Mesa-dev] Problem with LLVM on Windows with MSVC

Shervin Sharifi shervin0 at gmail.com
Fri Apr 10 14:46:45 PDT 2015


Thanks everyone.
I was able to compile it using the instructions Jose sent from this page:
http://mesa3d.org/llvmpipe.html.
However, I believe there's a typo in that page. In the text I've pasted
below, the highlighted RELEASE should be DEBUG.

Thanks again,
    Shervin


For Windows you will need to build LLVM from source with MSVC or MINGW
(either natively or through cross compilers) and CMake, and set the LLVM
environment variable to the directory you installed it to. LLVM will be
statically linked, so when building on MSVC it needs to be built with a
matching CRT as Mesa, and you'll need to pass -DLLVM_USE_CRT_RELEASE=MTd
for debug and checked builds, -DLLVM_USE_CRT_RELEASE=MTd for profile and
release builds. You can build only the x86 target by passing
-DLLVM_TARGETS_TO_BUILD=X86 to cmake.

On Fri, Apr 10, 2015 at 1:21 AM, Predut, Marius <marius.predut at intel.com>
wrote:

>  Try to make local changes and remove this from file:
>
> #if defined(_MSC_VER)
>
> static double copysign(double x, double y)
>
>>
> #endif
>
> It needs because vs 2013 has his own copysign  function as standard api
> and then back here
>
>
>
> marius
>
>
>
> *From:* Shervin Sharifi [mailto:shervin0 at gmail.com]
> *Sent:* Thursday, April 09, 2015 8:45 PM
> *To:* Predut, Marius
> *Cc:* mesa-dev at lists.freedesktop.org
> *Subject:* Re: [Mesa-dev] Problem with LLVM on Windows with MSVC
>
>
>
> Thank you.
>
> I have compiled llvm with /MDd options, but Mesa doesn't accept that and
> asks for /MTd.
>
> So I compiled llvm with /MTd and it worked.
>
> However, I prefer to change Mesa to dynamic option, but I don't know how
> to do that. I tried the following, but got another error:
>
>
>
> The only thing I found is this in the scons\gallium.py:
>
>     if env['platform'] == 'windows' and msvc:
>
>         # Choose the appropriate MSVC CRT
>
>         # http://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx
>
>         if env['build'] in ('debug', 'checked'):
>
>             env.Append(CCFLAGS = ['/MTd'])
>
>             env.Append(SHCCFLAGS = ['/LDd'])
>
>         else:
>
>             env.Append(CCFLAGS = ['/MT'])
>
>             env.Append(SHCCFLAGS = ['/LD'])
>
>
>
> I changed the /MTd to /MDd and compiled. I got the following error, so I'm
> not sure if this is the right way of doing it.
>
>
>
> src\glsl\ir_constant_expression.cpp(57) : error C2491: 'copysign' :
> definition of dllimport function not allowed
>
>
>
> Thanks,
>
>     Shervin
>
>
>
> P.S. You're right Marius. It was a typo. I missed the i at the end when
> copying the command line ("gd" instead of "gdi").
>
>
>
>
>
> On Thu, Apr 9, 2015 at 9:42 AM, Predut, Marius <marius.predut at intel.com>
> wrote:
>
> Indeed seems you have some incompatible libraries (one build static and
> other dynamic –dll)
>
> https://bugzilla.mozilla.org/show_bug.cgi?id=732124
>
> but what suppose `libgl-gd' target? Is this a typo mismatch?
>
> Try to build llvm in a dynamic mode , may be it will solve your problems
>
>
>
> marius
>
>
>
>
>
> *From:* mesa-dev [mailto:mesa-dev-bounces at lists.freedesktop.org] *On
> Behalf Of *Shervin Sharifi
> *Sent:* Thursday, April 09, 2015 2:57 AM
> *To:* mesa-dev at lists.freedesktop.org
> *Subject:* [Mesa-dev] Problem with LLVM on Windows with MSVC
>
>
>
> Hi,
>
>
>
>  I'm trying to build mesa on windows (MSVC) with gles support and with
> llvm.
>
>  Here are the keys I'm using:
>
> scons.py gles=yes llvm=yes platform=windows libgl-gd
>
>
>
>  I'm getting a bunch of errors like this:
>
>
>
> LLVMCore.lib(ValueSymbolTable.obj) : error LNK2038: mismatch detected for
> 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value
> 'MTd_StaticDebug' in mesa.lib(uniform_query.obj)
>
>
>
> I understand that this is due to mismatch between the runtime libraries,
> but I don't know how to fix it.
>
> Should I change the CRT in llvm or in mesa? How should I do that?
>
>
>
>  Thanks,
>
>      Shervin
>
>
>
>
>
>
>
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150410/0bc7f716/attachment-0001.html>


More information about the mesa-dev mailing list