Hi,
I've recently compiled GLXOSD a number of times on Ubuntu 15.04, each time I try to get it to work with games on Steam via the glxosd --steam %command%
Launch option. Nothing works, not even Source games are able to launch with it anymore. The only thing GLXOSD is able to inject into is glxgears.
Here's output from a Terminal when running GLXOSD directly from a Terminal now (Cities Skylines 64bit). I'm uncertain if I'm calling it correctly for Steam:
ismail@Intel-Ubuntu:~$ glxosd --steam steam://rungameid255710
/usr/local/bin/glxosd: line 70: steam://rungameid/255710: No such file or directory
However, changing it to this now at least gets the game running:
ismail@Intel-Ubuntu:~$ glxosd steam steam://rungameid/255710
It still seems to be unable to inject itself, and this is the output:
Running Steam on ubuntu 15.04 64-bit
STEAM_RUNTIME is enabled automatically
grep: /home/ismail/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd.so)
grep: /home/ismail/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd.so)
grep: /home/ismail/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd.so)
awk: /home/ismail/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd.so)
ERROR: ld.so: object 'libglxosd-elfhacks.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libglxosd-glinject.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libglxosd.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ismail@Intel-Ubuntu:~$
I have libstdc++6, libstdc++6:i386, and libstdc++-4.9 which should fulfill the requirement but it still complains. A note, I previously had an issue after updating Ubuntu where GLXOSD spat out this error on compiling:
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libGL.so', needed by 'bin/libglxosd.so.2.3.3'. Stop.
CMakeFiles/Makefile2:231: recipe for target 'src/glxosd/CMakeFiles/glxosd.dir/all' failed
make[1]: *** [src/glxosd/CMakeFiles/glxosd.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error
Looks like somehow it forgot where to look for libGL, so running this in a Terminal seemed to fix it, but I'm unsure if this is also the root cause of my issue with GLXOSD:
sudo ln -s -f -i /usr/lib/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so
ldconfig is telling me that libGL.so.1 -> libGL.so.346.47 which means it is using my Nvidia driver's GL which is good. It is not using Nouveau.
I make sure to clean all my directories from GLXOSD and run ./clean
, before compiling and running make install
each time to ensure it's not storing any old or broken files. The directories I clean out are:
/etc/glxosd.conf
/usr/local/lib/x86_64-linux-gnu/glxosd
/usr/local/bin/glxosd
I've attempted to modify the version of C++ used when compiling and tried all three
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++0x")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++14")
No difference.
I've also discovered that CMAKE will complain it cannot find pthread. So, I adjusted parts of CMakeLists.txt to look like this, and this seems to allow CMAKE to find pthread:
project (glxosd C CXX)
...
##### Compiler #####
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")
Any help is greatly appreciated.