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.kris...@gmail.com>
> Date:   Thu Mar 14 15:32:37 2019 +0100
> 
>      gallium: fix autotools build of pipe_msm.la
> 
>      Signed-off-by: Vinson Lee <v...@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

> 
> meson config:
> meson ../ --strip --buildtype debugoptimized -Ddri-drivers= 
> -Dplatforms=drm,x11 -Dgallium-drivers=r600,radeonsi,swrast 
> -Dvulkan-drivers=amd -Dgallium-nine=true -Dgallium-opencl=icd 
> -Dglvnd=true -Dgallium-va=false -Dgallium-xvmc=false 
> -Dgallium-omx=disabled -Dgallium-xa=false
> 
> Only -Dgallium-opencl=disabled works.
> 
> Thanks,
> Dieter
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev

-- 
Jan Vesely <jan.ves...@rutgers.edu>

Attachment: signature.asc
Description: This is a digitally signed message part

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

Reply via email to