Есть 64-битная машина, на ней SuSE 11 x86-64, на ней VirtualBox 4.1.16 x86-64. При попытке запуска графического интерфейса Коробки получаю следующую ошибку:
VirtualBox: supR3HardenedMainGetTrustedMain: dlopen("/opt/VirtualBox/VirtualBox.so",) failed: /usr/lib64/libGL.so.1: undefined symbol: XDamageAdd
Погуглил, говорят, что в libGL этих функций и нет, а провайдятся они libXdamage.so. Смотрим:
$ ls -l /usr/lib64/libGL.so
lrwxrwxrwx 1 root root 21 Aug 27 11:13 /usr/lib64/libGL.so -> /usr/lib64/libGL.so.1
$ ls -l /usr/lib64/libXdamage.so
lrwxrwxrwx 1 root root 19 Apr 20 2010 /usr/lib64/libXdamage.so -> libXdamage.so.1.1.0
$ readelf -s /usr/lib64/libGL.so | grep -i xdamage
28: 0000000000000000 0 FUNC GLOBAL DEFAULT UND XDamageAdd
79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND XDamageQueryVersion
$ readelf -s /usr/lib64/libXdamage.so | grep -i xdamage
19: 0000000000001370 268 FUNC GLOBAL DEFAULT 12 XDamageCreate
22: 0000000000000d60 701 FUNC GLOBAL DEFAULT 12 XDamageFindDisplay
23: 00000000000014e0 84 FUNC GLOBAL DEFAULT 12 XDamageQueryExtension
24: 0000000000001140 292 FUNC GLOBAL DEFAULT 12 XDamageSubtract
25: 0000000000001020 276 FUNC GLOBAL DEFAULT 12 XDamageAdd
27: 0000000000001716 7 OBJECT GLOBAL DEFAULT 14 XDamageExtensionName
30: 0000000000001270 252 FUNC GLOBAL DEFAULT 12 XDamageDestroy
31: 0000000000202080 24 OBJECT GLOBAL DEFAULT 24 XDamageExtensionInfo
32: 0000000000001480 84 FUNC GLOBAL DEFAULT 12 XDamageQueryVersion
$ ldd /usr/lib64/libGL.so |grep libXdamage
/usr/lib64/libXdamage.so.1 (0x00007fe94fc10000)
$
пробую насильно подсунуть VBox'у libXdamage через LD_PRELOAD - ноль эффекта. При этом на соседней 32-битной машине 32-битный VBox работает нормально.
Есть идеи, как приручить смутьяна?