Bug 59282 - Undefined symbol '_ZTVN10__cxxabiv120__si_class_type_infoE' in r600_dri.so
Summary: Undefined symbol '_ZTVN10__cxxabiv120__si_class_type_infoE' in r600_dri.so
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/r600 (show other bugs)
Version: git
Hardware: All Linux (All)
: medium blocker
Assignee: Default DRI bug account
QA Contact:
: 59296 (view as bug list)
Depends on:
Blocks: 59304
  Show dependency treegraph
Reported: 2013-01-12 14:58 UTC by Tobias Droste
Modified: 2013-01-13 11:29 UTC (History)
4 users (show)

See Also:
i915 platform:
i915 features:

targets/dri-r600: Force c++ linker in all cases (1.23 KB, patch)
2013-01-12 20:18 UTC, Andreas Boll
Details | Splinter Review

Description Tobias Droste 2013-01-12 14:58:19 UTC
Mesa from git master (head 3c3a2b51b85a90cfe670e1ca81ce86c8fa0d448d) has a undefined symbol in r600_dri.so, which prevents it from being loaded:

$ LIBGL_DEBUG=verbose glxinfo
libGL: OpenDriver: trying /usr/lib64/dri/r600_dri.so
libGL error: dlopen /usr/lib64/dri/r600_dri.so failed (/usr/lib64/dri/r600_dri.so: undefined symbol: _ZTVN10__cxxabiv120__si_class_type_infoE)
libGL error: unable to load driver: r600_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: r600

configure line:
--with-dri-drivers= --with-gallium-drivers=swrast,r600 --enable-gallium-llvm  --enable-gallium-egl --with-egl-platforms=x11,drm --enable-gles1 --enable-gles2 --enable-glx-tls --enable-texture-float --enable-shared-glapi

I tried adding radeonsi to the list and see if this fixes it, but in order to build this I have to install LLVM 3.2, which I'm not planning to do today.
Comment 1 demon 2013-01-12 19:51:00 UTC
This is the commit where this problems starts:

Comment 2 demon 2013-01-12 20:01:34 UTC
Perhaps this bug is related: https://bugs.freedesktop.org/show_bug.cgi?id=59226
Comment 3 Andreas Boll 2013-01-12 20:18:59 UTC
Created attachment 72916 [details] [review]
targets/dri-r600: Force c++ linker in all cases

Could you test this patch?
Comment 4 demon 2013-01-12 20:34:19 UTC
I made a patch myself, and it works:

--- src/gallium/targets/dri-r600/Makefile.am.orig	2013-01-12 20:00:04.000000000 +0100
+++ src/gallium/targets/dri-r600/Makefile.am	2013-01-12 21:18:15.494000000 +0100
@@ -59,17 +59,13 @@
 r600_dri_la_LINK = $(CXXLINK) $(r600_dri_la_LDFLAGS)
 # Mention a dummy pure C++ file to trigger generation of the $(LINK) variable
 nodist_EXTRA_r600_dri_la_SOURCES = dummy-cpp.cpp
 r600_dri_la_LDFLAGS += $(LLVM_LDFLAGS)
 r600_dri_la_LIBADD += $(LLVM_LIBS)
-r600_dri_la_LINK = $(LINK) $(r600_dri_la_LDFLAGS)
-# Mention a dummy pure C file to trigger generation of the $(LINK) variable
-nodist_EXTRA_r600_dri_la_SOURCES = dummy-c.c
 # Provide compatibility with scripts for the old Mesa build system for

I'm gonna try your patch now.
Comment 5 demon 2013-01-12 20:55:04 UTC
Andreas, it works, eveyrthing is fine. Thanks.
Comment 6 Andreas Boll 2013-01-12 22:41:31 UTC
*** Bug 59296 has been marked as a duplicate of this bug. ***
Comment 7 Tobias Droste 2013-01-13 02:49:48 UTC
Yes the patch fixes the problem.

I assume you're going to commit this soon and close this bug report.
Comment 8 Tom Stellard 2013-01-13 03:53:03 UTC
Let's keep this bug open until the fix is actually committed.
Comment 9 Andreas Boll 2013-01-13 11:29:12 UTC
Fixed by 9da454f295062500ebb868e31eebcd5f753f83ff

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.