I suspect that when you built LLVM, you built with the Debug build type instead of Release. That's why you need LLVM_USE_CRT_DEBUG= instead of LLVM_USE_CRT_RELEASE=. But I don't recommend you use a Debug LLVM build, it can be much slower.

To be safe, I could update the instructions to mention both LLVM_USE_CRT_DEBUG/RELEASE=


But you're right about a typo there: the 2nd -DLLVM_USE_CRT_RELEASE= should have "MT", not "MTd".


Jose


On 10/04/15 22:46, Shervin Sharifi wrote:
Thanks everyone.
I was able to compile it using the instructions Jose sent from this
page: http://mesa3d.org/llvmpipe.html
<https://urldefense.proofpoint.com/v2/url?u=http-3A__mesa3d.org_llvmpipe.html&d=AwMFaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=zfmBZnnVGHeYde45pMKNnVyzeaZbdIqVLprmZCM2zzE&m=-nzRORyOJMG_Ypxfmg_i-cQCYiYB2RdnLwC8UALwNv4&s=5iUUSKJP0-twh5_K-h8u1oZnrJKh1nwBPKzufoV9nRY&e=>.
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.pre...@intel.com
<mailto:marius.pre...@intel.com>> wrote:

    Try to make local changes and remove this from file:____

    #ifdefined(_MSC_VER)____

    staticdoublecopysign(doublex,doubley)____

    …____

    #endif____

    It needs because vs 2013 has his own copysign  function as standard
    api and then back here____

    __ __

    marius____

    __ __

    *From:*Shervin Sharifi [mailto:sherv...@gmail.com
    <mailto:sherv...@gmail.com>]
    *Sent:* Thursday, April 09, 2015 8:45 PM
    *To:* Predut, Marius
    *Cc:* mesa-dev@lists.freedesktop.org
    <mailto:mesa-dev@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
    
<https://urldefense.proofpoint.com/v2/url?u=http-3A__msdn.microsoft.com_en-2Dus_library_2kzt1wy3.aspx&d=AwMFaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=zfmBZnnVGHeYde45pMKNnVyzeaZbdIqVLprmZCM2zzE&m=-nzRORyOJMG_Ypxfmg_i-cQCYiYB2RdnLwC8UALwNv4&s=1KL6aPLZAEfM6QmfXRsUuhL8ea2chcskp_kl84xH87U&e=>____

             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.pre...@intel.com <mailto:marius.pre...@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
    
<https://urldefense.proofpoint.com/v2/url?u=https-3A__bugzilla.mozilla.org_show-5Fbug.cgi-3Fid-3D732124&d=AwMFaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=zfmBZnnVGHeYde45pMKNnVyzeaZbdIqVLprmZCM2zzE&m=-nzRORyOJMG_Ypxfmg_i-cQCYiYB2RdnLwC8UALwNv4&s=XXBc9wtK_ZMbeOt2qeG34pJhLVlceLU3Poz-CDbAuZ4&e=>____

    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-boun...@lists.freedesktop.org
    <mailto:mesa-dev-boun...@lists.freedesktop.org>] *On Behalf Of
    *Shervin Sharifi
    *Sent:* Thursday, April 09, 2015 2:57 AM
    *To:* mesa-dev@lists.freedesktop.org
    <mailto:mesa-dev@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 ____

    ____

    ____

    ____

    ____

    ____

    __ __



_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to