openvr
openvr copied to clipboard
Why is libopenvr_api.so linked against SDL onl Linux?
amongst many other libs:
$ ldd openvr/bin/linux64/libopenvr_api.so
linux-vdso.so.1 (0x00007ffebd9ea000)
libSDL2-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007faaa928b000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007faaa9280000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007faaa9263000)
libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007faaa921f000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007faaa9198000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007faaa9192000)
/lib64/ld-linux-x86-64.so.2 (0x00007faaa9494000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007faaa916f000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007faaa8f63000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007faaa8e1e000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007faaa8c59000)
libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007faaa8b52000)
libpulse.so.0 => /usr/lib/x86_64-linux-gnu/libpulse.so.0 (0x00007faaa8afd000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007faaa89b8000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007faaa89a3000)
libXcursor.so.1 => /usr/lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007faaa8996000)
libXinerama.so.1 => /usr/lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007faaa8991000)
libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007faaa897d000)
libXrandr.so.2 => /usr/lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007faaa8970000)
libXss.so.1 => /usr/lib/x86_64-linux-gnu/libXss.so.1 (0x00007faaa8969000)
libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007faaa8763000)
libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007faaa874e000)
libgbm.so.1 => /usr/lib/x86_64-linux-gnu/libgbm.so.1 (0x00007faaa873e000)
libwayland-egl.so.1 => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1 (0x00007faaa8739000)
libwayland-client.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007faaa8728000)
libwayland-cursor.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-cursor.so.0 (0x00007faaa871d000)
libxkbcommon.so.0 => /usr/lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007faaa86d7000)
libGLdispatch.so.0 => /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007faaa861f000)
libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007faaa85eb000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007faaa85d1000)
libpulsecommon-15.0.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.0.so (0x00007faaa8546000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007faaa84f2000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007faaa84c7000)
libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007faaa82bd000)
libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007faaa82b5000)
libwayland-server.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-server.so.0 (0x00007faaa829c000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007faaa826b000)
libffi.so.8 => /usr/lib/x86_64-linux-gnu/libffi.so.8 (0x00007faaa825e000)
libsndfile.so.1 => /usr/lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007faaa81db000)
libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007faaa81d6000)
libsystemd.so.0 => /usr/lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007faaa810f000)
libasyncns.so.0 => /usr/lib/x86_64-linux-gnu/libasyncns.so.0 (0x00007faaa8107000)
libwrap.so.0 => /usr/lib/x86_64-linux-gnu/libwrap.so.0 (0x00007faaa80fb000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007faaa80f6000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007faaa7ef0000)
libFLAC.so.8 => /usr/lib/x86_64-linux-gnu/libFLAC.so.8 (0x00007faaa7eaf000)
libvorbis.so.0 => /usr/lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007faaa7e82000)
libvorbisenc.so.2 => /usr/lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007faaa7dd7000)
libopus.so.0 => /usr/lib/x86_64-linux-gnu/libopus.so.0 (0x00007faaa7d7c000)
libogg.so.0 => /usr/lib/x86_64-linux-gnu/libogg.so.0 (0x00007faaa7d6f000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007faaa7d47000)
libzstd.so.1 => /usr/lib/x86_64-linux-gnu/libzstd.so.1 (0x00007faaa7c6a000)
liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007faaa7c47000)
libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007faaa7c3c000)
libgcrypt.so.20 => /usr/lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007faaa7b00000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007faaa7ae6000)
libnsl.so.2 => /usr/lib/x86_64-linux-gnu/libnsl.so.2 (0x00007faaa7acb000)
libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0 (0x00007faaa7ab2000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007faaa7a8b000)
libtirpc.so.3 => /lib/x86_64-linux-gnu/libtirpc.so.3 (0x00007faaa7a5c000)
libmd.so.0 => /usr/lib/x86_64-linux-gnu/libmd.so.0 (0x00007faaa7a4f000)
libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007faaa79fc000)
libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007faaa7920000)
libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007faaa78f0000)
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007faaa78ea000)
libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007faaa78db000)
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007faaa78d4000)
That is indeed weird, considering how a freshly built one only links like 5 libs
$ ldd ./libopenvr_api.so
linux-vdso.so.1 (0x00007ffe6b30a000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa6b6da3000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa6b6bc1000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa6b6a72000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa6b6a57000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa6b6865000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa6b6e5b000)
Then further comparing the sizes of lib/linux64/libopenvr_api.so
from master in this repo and a freshly built one, the one from this repo appears to be way larger
$ ls -l
total 4028
-rw-rw-r-- 1 okawo okawo 3335136 Nov 5 13:33 libopenvr_api_master.so
-rwxrwxr-x 1 okawo okawo 784472 Nov 4 20:41 libopenvr_api_fresh.so
Which brings me to the thought that either a) the CMakeLists file is more fucked then i though or b) we're missing sources... again :/
A very interesting find none the less
VRDashboardManager doesn't seem to be present anymore in libopenvr_api but I still see 00000000000056a0 T VRControlPanel
, see #425 and #156
In particular this means you can't replace SteamVR/bin/linux64/libopenvr_api.so
with a version built from the public sources without SteamVR breaking.
Can you push a fresh one?
@ChristophHaag huh, didn't know that, that also explains the currently broken builds
@sphaero my bet for that would be no, considering how there were no updates for 9 months now...
Seems this is already fixed with latest releases:
ldd libopenvr_api.so
linux-vdso.so.1 (0x00007ffe68fe6000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f206fdd1000)
/lib64/ld-linux-x86-64.so.2 (0x00007f206fefa000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f206fdcc000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f206fced000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f206fb0c000)