[Mesa-dev] [PATCH v2 3/4] meson: build clover

Dylan Baker dylan at pnwbakers.com
Wed Dec 13 21:54:10 UTC 2017


Quoting Jan Vesely (2017-12-13 12:53:25)
> On Wed, 2017-12-13 at 09:47 -0800, Dylan Baker wrote:
> > +if (with_gallium_va or with_gallium_vdpau or with_gallium_omx or
> > +    with_gallium_xvmc or with_dri)
> > +  pipe_loader_link_with += libgalliumvl
> > +else
> > +  pipe_loader_link_with += libgalliumvl_stubs
> > +endif
> > +if with_gallium_va or with_gallium_vdpau or with_gallium_omx or with_gallium_xvmc  
> 
> git am complains about whitespace errors at the end of the above line.

I can fix that.

> 
> I tested with:
> meson -Ddri-drivers= -Dgallium-drivers=r600 -Dopengl=true -Dplatforms=x11 -Dopencl=true
> 
> meson asked for libdrm_amdgpu dependency even though I'm only building clover+r600g driver.

That's probably because you didn't add `-Dvulkan-drivers=`, since radv does depend
on libdrm_amdgpu. If you add that and still get a request for libdrm_amdgpu let
me know and I'll look into it further.

> after a bit of fiddling with PATH and PK_CONFIG_PATH to pick up the latest llvm/liblclc
> linking failed with:
> src/gallium/auxiliary/libgallium.a(gallivm_lp_bld_misc.cpp.o):(.data.rel.ro._ZTI26DelegatingJITMemoryManager[_ZTI26DelegatingJITMemoryManager]+0x10): undefined reference to `typeinfo for llvm::RTDyldMemoryManager'
> collect2: error: ld returned 1 exit status
> 
> this looks like it did not pick up the rtti setting from llvm-config:
> $ ~/.local/bin/llvm-config --has-rtti
> NO
> $ ~/.local/bin/llvm-config --cxxflags | grep -o fno-rtti
> fno-rtti
> 
> rtti setting is quite messy since clover uses dynamic_cast. I think it
> should be OK to only support rtti build of llvm if it's detected at
> configure time
> 
> it'd also be nice for meson to remember llvm-config location provided
> at configure time. otherwise I need to set PATH every time I run ninja
> in case it tries to reconfigure. I guess that's what "TODO llvm-prefix" 
> will achieve, right?

I'm not sure what the right way to solve this is, maybe to cache any relavent
environment variables between runs in meson itself, since pkg-config has the
same problem with PKG_CONFIG_PATH. ATM there is no way to implement the
llvm-prefix in meson the way it is in autotools.    

> 
> in the end I got meson built clover to run (clinfo + simple demo) on my
> turks with these changes:
> * build and install libdrm_amdgpu -- should not be necessary for r600g
> only build
> * switch to distro (fedora) provided libclc and llvm -- avoids rtti
> build problem (note libclc is just tagging along llvm since my local
> builds install headers to the same location)
> * fiddle with pipe-loader dir, for some reason LIBGL_DRIVERS_PATH did
> not work when pointed to meson built pipe_r600.so. I'm not sure if this
> is meson specific, it might be just my ignorance.

I'm not certain, though Curro probably knows, but the dynamic pipeloader is
hard-coded to search $install/$libdir/gallium-pipe for pipe drivers, so you may
need to run ninja install to make it work. Alternatively LD_LIBRARY_PATH might
work as well.

Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20171213/3ae65518/attachment.sig>


More information about the mesa-dev mailing list