[Mesa-dev] Commit 'gallium: fix autotools build of pipe_msm.la' broke Clover - bisected

Dylan Baker dylan at pnwbakers.com
Mon Apr 1 17:27:46 UTC 2019


Quoting Jan Vesely (2019-03-31 22:43:50)
> Hi,
> 
> On Mon, 2019-04-01 at 06:24 +0200, Dieter Nützel wrote:
> > Hello,
> > 
> > commit #356ec7a2196 'gallium: fix autotools build of pipe_msm.la' broke 
> > Clover.
> > 
> > biseted:
> > 356ec7a21960d77db282f67af577dcdb46966b5a is the first bad commit
> > commit 356ec7a21960d77db282f67af577dcdb46966b5a
> > Author: Timur Kristóf <timur.kristof at gmail.com>
> > Date:   Thu Mar 14 15:32:37 2019 +0100
> > 
> >      gallium: fix autotools build of pipe_msm.la
> > 
> >      Signed-off-by: Vinson Lee <vlee at freedesktop.org>
> >      Fixes: 9a834447d652 ("tgsi_to_nir: Produce optimized NIR for a given 
> > pipe_screen.")
> >      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109929
> > 
> > :040000 040000 601ddeba6f98a1872a8f49667c89224601afe31b 
> > cee6467ed172beb890455d0874a2e883e6c95e14 M src
> > 
> > Reverting it bring Clover back.
> 
> I'm guessing you use autotools to build clover?
> My digging shows that the culprit is 
> https://gitlab.freedesktop.org/mesa/mesa/merge_requests/225 which
> makes users of gallium/axuiliary pull in libglsl.
> 356ec7a21 tries to fix it by adding libglsl to pipe_loader, thus
> making pipe drivers require glsl symbols and breaking every state
> tracker that does not provide them. I'd expect omx and vdpau state
> trackers would fail in similar manner.
> 
> 
> > The most annoying thing for me is, that even 'meson build' of Clover do 
> > NOT work for me (hello Dylan? ;-)):
> > 
> > ../src/gallium/state_trackers/clover/api/event.cpp: In function ‘cl_int 
> > clGetEventProfilingInfo(cl_event, cl_profiling_info, size_t, void*, 
> > size_t*)’:
> > ../src/gallium/state_trackers/clover/api/event.cpp:256:58: error: 
> > ‘dynamic_cast’ not permitted with -fno-rtti
> >      hard_event &hev = dynamic_cast<hard_event &>(obj(d_ev));
> >                                                            ^
> > ../src/gallium/state_trackers/clover/api/event.cpp:287:23: warning: 
> > ignoring attributes on template argument ‘cl_ulong’ {aka ‘long unsigned 
> > int’} [-Wignored-attributes]
> >   } catch (lazy<cl_ulong>::undefined_error &e) {
> >                         ^
> > In file included from 
> > ../src/gallium/state_trackers/clover/core/event.hpp:29,
> >                   from 
> > ../src/gallium/state_trackers/clover/api/event.cpp:24:
> > ../src/gallium/state_trackers/clover/core/object.hpp: In instantiation 
> > of ‘static void clover::detail::descriptor_traits<T, D>::validate(D*) 
> > [with T = clover::soft_event; D = _cl_event]’:
> > ../src/gallium/state_trackers/clover/core/object.hpp:148:48:   required 
> > from ‘typename clover::detail::descriptor_traits<T, D>::object_type& 
> > clover::obj(D*) [with T = clover::soft_event; D = _cl_event; typename 
> > clover::detail::descriptor_traits<T, D>::object_type = 
> > clover::soft_event]’
> > ../src/gallium/state_trackers/clover/api/event.cpp:42:36:   required 
> > from here
> > ../src/gallium/state_trackers/clover/core/object.hpp:72:18: error: 
> > ‘dynamic_cast’ not permitted with -fno-rtti
> >                   !dynamic_cast<object_type *>(o))
> >                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> This looks like the -fno-rtti flags got there from 'llvm-config --
> cxxflags'. Clover makes use of rtti(as you've found out), and I'd say
> that you need it in LLVM too. Mixing Clover/rtti and llvm/no-rtti
> would probably complain about missing symbols in llvm libraries.
> 
> Jan

I sent this merge request to make building clover against a no-rtti llvm a hard
error in meson, that way at least you know why it's failing:

https://gitlab.freedesktop.org/mesa/mesa/merge_requests/558

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


More information about the mesa-dev mailing list