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>
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