Quoting Liviu Prodea (2018-10-03 01:03:43) > > Automatic wrap with llvm-config does get the version right so it has to be > something else. > > I usually build LLVM myself like this: > > > cd llvm-7.0.0.src & md buildsys-x86 & cd buildsys-x86 & cmake -G "Ninja" > -Thost > =x64 -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release > -DLLVM_USE_CRT_RELEASE=MT -DLLVM_ENABLE_RTTI=1 -DLLVM_ENABLE_TERMINFO=OFF > -DCMAKE_INSTALL_PREFIX=../x86 .. > > > Followed by ninja install > > > LLVM 6.0.1 was also affected > > > I also downloaded and tried LLVM 5.0.1 MTd x86 build that Appveyor uses and > built Mesa with Meson 0.47.2, used the llvm-wrap included in Mesa codebase and > passed the exact same c_args and cpp_args as Appveyor. Unfortunately I was > greeted by an assertion failure as soon as I began testing it so I don't know > if it has llvmpipe active or not. > > Mesa3D build config - Meson 0.48.0 > > > C:\Software\DEVELO~1\projects\mesa\Py3\Scripts\meson.exe x86 --backend=vs2017 > --buildtype=plain -Db_vscrt=mt -Dllvm-wrap=llvm > > > Omission of -Dllvm=true doesn't seam to make any difference as long as I have > -Dllvm-wrap in, as I tried both ways.
-Dllvm is an auto option, as long as you define -Dllvm-wrap or it can find llvm-config it's going to work. I build LLVM on my windows machine last night with /MT, so I'm going to see if I can replicate the problems you're seeing today. Dylan > > > -Db_vscrt appears to be non functional as it still builds with the defaults > /MD > /O2. > Changing buildtype from plain to release makes no difference as well. It still > does a /MD /O2 build. > > > > > > > > > > > On Wednesday, October 3, 2018, 12:26:33 AM GMT+3, Dylan Baker > <dy...@pnwbakers.com> wrote: > > > Quoting Liviu Prodea (2018-10-02 14:05:09) > > > > > > > > > > > > > > On Tuesday, October 2, 2018, 8:08:39 PM GMT+3, Dylan Baker > > <dy...@pnwbakers.com> wrote: > > > > > > Quoting Liviu Prodea (2018-10-02 08:08:41) > > > Made a comprehensive test of this patch series and I still stumbled upon > some > > > big problems: > > > > > > 1. Automatic LLVM linking via llvm-config if used by adding LLVM bin > > > folder > > to > > > PATH results in build failure with 'llvm-c/Core.h' not found in > > > src/gallium > / > > > auxiliary/gallivm/lp_bld.h. Appveyor CI from https://ci.appveyor.com/ > project/ > > > dcbaker/mesa didn't encounter this as it is using llvm-wrap option. > > > > It's possible that llvm-config wrapping on windows is broken atm, it is on > > macos, I have pull request open, https://github.com/mesonbuild/meson/pull/ > 4283. > > I'll see if that fixes windows as well, or if we need some more work there. > > > > > > > 2. Even if build succeeds with LLVM linked via llvm-wrap and everything > > looking > > > good at first glance, llvmpipe and swr if it was built cannot be selected. > > > GALLIUM_DRIVER variable has no effect. You only get softpipe despite > > > opengl32.dll file looking big enough and swrAVX-0.dll and swrAVX2-0,dll > being > > > generated when expected. Even when having LLVM built dynamically to avoid > > > / > MD > > > to /MT override warnings and building Mesa3D with default c_args and > cpp_args > > > this issue is still in effect. > > > > > > 3. Meson 0.48.0 doesn't pass the /MT or /MTd c_args and cpp_args for some > > > unexplained reasons which leads to build failure if LLVM is not built with > / > > MD. > > > > > > Meson 0.48 has added a new option to allow you to pick which crt you want: > > > > https://mesonbuild.com/Release-notes-for-0-48-0.html# > > toggles-for-build-type-optimization-and-vcrt-type > > > > The list of options are here: > > > > https://mesonbuild.com/Builtin-options.html#base-options > > > > I'll test and see if I can add b_vscrt=from_builtype to the default options > > without requiring a bumpt ot 0.48.0 for the whole project. > > > > Dylan > > > > --- > > > > -Db_vscrt=mt doesn't help. I use LLVM built with /MT. I still get a bunch of > > > > error LNK2038: mismatch detected for 'RuntimeLibrary': value > 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' > > What is your -Dbuildtype set to? > > > > > As for why I don't get llvmpipe and swr to work when Mesa3D and LLVM CRT > linking match when using manual llvm-wrap option I think the explanation is > highlighted by Appveyor: > https://ci.appveyor.com/project/dcbaker/mesa/build/job > /k02oo9qfyuxaxpgi?fullLog=true#L221 > > Looking at line 224, LLVN version is reported as undefined. This can't be > good and I am seeing this as well. Automatic wrap with llvm-config doesn't > have > this problem. Unfortunately it fails to find the headers as already reported. > > In that appveyor the fact that version is undefined is harmless, it's because > the `project()` definition in the wrap doesn't define a version, the > `declare_dependency()` does that. If you're seeing that with llvm-config then > that's bad, and may be related to the pull request I mentioned above. > > Are you building LLVM yourself, or getting it from somewhere? > > > Dylan
signature.asc
Description: signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev