nickguletskii / GLXOSD

GLXOSD is an extensible on-screen display (OSD)/overlay for OpenGL applications running on Linux with X11 which aims to provide similar functionality to MSI Afterburner/RivaTuner OSD. It can show FPS, frame timings, temperatures and more in OpenGL games and applications. It can also be used to benchmark games, much like voglperf.
https://glxosd.nickguletskii.com
MIT License
124 stars 20 forks source link

Crashes with Steam on ArchLinux (please help me track down the cause) #15

Closed nickguletskii closed 9 years ago

nickguletskii commented 10 years ago

Suspected cause

libstdc++ version incompatibility

Things to try

Try changing -std=c++11 to -std=c++0x in CMakeLists.txt, then ./clean and follow the compilation instructions.

Missing information

Please provide the output of the following commands:

ldd [PATH_TO_BOOST_SYSTEM_SO]
CommanderAlchemy commented 9 years ago

Cant this be because of steam being 32bit?

Im trying to get glxosd to compile but im missing dependencies to make it.

nickguletskii commented 9 years ago

It's possible. Unfortunately, I don't really have the time to write the scripts to compile all the dependencies for multiarch in Arch.

It seems that this also happens in 64 bit games with 64 bit Steam overlay though, so it could be something else entirely...

knetor commented 9 years ago

Ubuntu 14.10, compiled fine. glxosd --steam glxgears works fine. 64-bit steam games wont start at all with glxosd --steam %command%, 32-bit games start, but it does not show the fps nor core temps in those.

nickguletskii commented 9 years ago

Hello. Did you compile manually? You probably didn't compile the 32 bit version (no easy way to do it without the PPA).

On 27 October 2014 19:11, knetor notifications@github.com wrote:

Ubuntu 14.10, compiled fine. glxosd --steam glxgears works fine. 64-bit steam games wont start at all with glxosd --steam %command%, 32-bit games start, but it does not show the fps nor core temps in those.

— Reply to this email directly or view it on GitHub https://github.com/nickguletskii/GLXOSD/issues/15#issuecomment-60619585.

knetor commented 9 years ago

Thanks for the quick answer. Yes, compiled manually, following the instructions on the github site. PPA would be fine. edit: found it... ill report in a few mins

nickguletskii commented 9 years ago

https://launchpad.net/~nickguletskii200/+archive/ubuntu/glxosd-experimental

This PPA contains Utopic packages that I haven't tested (I don't have Utopic installed yet). Could you please check if they work? I will copy them to the stable repository if they work.

knetor commented 9 years ago

https://nickguletskii.github.io/GLXOSD/dists/utopic/main/binary-amd64/Packages HttpError404 not able to read any ppa's unfortunately. all glx-osd related stuff cant be found via apt for me

nickguletskii commented 9 years ago

That's not the PPA.

sudo add-apt-repository ppa:nickguletskii200/glxosd-experimental

And then just use the installation instructions on the website.

On 27 October 2014 19:22, knetor notifications@github.com wrote:

https://nickguletskii.github.io/GLXOSD/dists/utopic/main/binary-amd64/Packages HttpError404 not able to read any ppa's unfortunately

— Reply to this email directly or view it on GitHub https://github.com/nickguletskii/GLXOSD/issues/15#issuecomment-60621543.

knetor commented 9 years ago

yes, my fault sorry. i wrongly followed the advice for 14.04. the experimental ppa installs fine. i will give it a try with steam now, could take a while.

knetor commented 9 years ago

I am quite new to this. When i put glxosd --steam %command% into the startup properties of robocraft it does not start at all. same with Kerbal runs fine, but still no fps info. i did glxosd --steam steam steam://rungameid/301520 which ran the game, did not view any info and produced this:

grep: /home/knet/.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/knet/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: versionGLIBCXX_3.4.20' not found (required by /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd.so) awk: /home/knet/.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/knet/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: versionGLIBCXX_3.4.20' not found (required by /usr/local//lib/x86_64-linux-gnu//glxosd/libglxosd.so) pid 11205 != 11162, skipping destruction (fork without exec?) 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.

i had such before, i know i have to ld preload something, but this whole library thing is a pain in the butt for me, although i use linux quite a while. i hope this helps

edit: i read again, the librarys i meant are not necessary at all are they? am i just missing some glibc version?

nickguletskii commented 9 years ago

Yeah, I've heard about the ABI incompatibilities in Utopic... I will try rebuilding the packages, but it probably won't solve anything...

knetor commented 9 years ago

could this have something to do with me installing from ppa over the manually built version?

nickguletskii commented 9 years ago

Could be, you could try removing the installed files... But its probably the new glibc... I've heard that it's incompatible with older versions.

On 27 October 2014 19:47, knetor notifications@github.com wrote:

could this have something to do with me installing from ppa over the manually built version?

— Reply to this email directly or view it on GitHub https://github.com/nickguletskii/GLXOSD/issues/15#issuecomment-60625955.

knetor commented 9 years ago

i removed all the apt packages and glxosd still works, so i am trying to get rid of it. is it enough to do "sudo rm /usr/local/bin/glxosd" or could there be some libraries interfering that i also have to delete?

nickguletskii commented 9 years ago

Yes. All installed files are listed in cmake_install.txt or something like that. It's located in the directory where you ran cmake.

On 27/10/2014, knetor notifications@github.com wrote:

i removed all the apt packages and glxosd still works, so i am trying to get rid of it. is it enough to do "sudo rm /usr/local/bin/glxosd" or could there be some libraries interfering that i also have to delete?


Reply to this email directly or view it on GitHub: https://github.com/nickguletskii/GLXOSD/issues/15#issuecomment-60627521

knetor commented 9 years ago

Wow, wait with your rebuild. I cleanly removed the manually built version now, installed again from apt and the error messages are gone. now the described way of running steam games works too. i have the fps counter in robocraft. the font is a bit messy but it works fine. Thank you very much for your help and sorry for the trouble

edit: tested some more games, works with all of them. so this bug does not affect ubuntu 14.10. have a nice day.

nickguletskii commented 9 years ago

Thanks! You should now remove the experimental repository and add the normal repository:

sudo add-apt-repository ppa:nickguletskii200/glxosd

Just so that I don't accidentally break your package databases some day :)

On 27 October 2014 20:04, knetor notifications@github.com wrote:

Wow, wait with your recompile. I cleanly removed the manually built version now, installed again from apt and the error messages are gone. now the described way of running steam games works too. i have the fps counter in robocraft. the font is a bit messy but it works fine. Thank you very much for your help

— Reply to this email directly or view it on GitHub https://github.com/nickguletskii/GLXOSD/issues/15#issuecomment-60628853.

lubosz commented 9 years ago

I can reproduce this bug. I want to run GLXOSD with Cities:Skylines with following command: glxosd --steam steam steam://rungameid/255710

I get following error several times:

grep: /home/bmonkey/.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/lib/glxosd/libglxosd.so)

Running it with glxosd --steam %command% out of steam does not work either.

Can I build glxosd without lm_sensors being a dependency? I am not sure if It can be cross compiled with m32.

I am using Arch Linux 64bit, with the following AUR Package: https://aur.archlinux.org/packages/glxosd-git/

lubosz commented 9 years ago

When I run stream with glxosd --steam I cannot see my listed games. Steam wants me to create a new Steam folder, since it cannot find one.

I managed to install a 32bit version of glxosd, just needed to package https://aur.archlinux.org/packages/lib32-glxosd-git/ https://aur.archlinux.org/packages/lib32-libxnvctrl/ https://aur.archlinux.org/packages/lib32-lm_sensors/

Not sure if i run it correctly though, I get

ERROR: ld.so: object 'libglxosd-elfhacks.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object 'libglxosd-glinject.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

When I try to run just steam.

lubosz commented 9 years ago

I think this is basically the problem why Steam cannot access the filesystem when run with glxosd:

$ grep GLIBCXX_3.4.20 /usr/lib/libstdc++.so.6
Binary file /usr/lib/libstdc++.so.6 matches
$ grep GLIBCXX_3.4.20 /home/bmonkey/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
$ grep GLIBCXX_3.4.19 /home/bmonkey/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
Binary file /home/bmonkey/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6 matches
lubosz commented 9 years ago

This hack fixes the issue for me:

$ mv /home/bmonkey/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18 /home/bmonkey/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18.old

$ ln -s /usr/lib/libstdc++.so.6.0.20 /home/bmonkey/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18
nickguletskii commented 9 years ago

Possible cause: https://github.com/nickguletskii/GLXOSD/issues/24

nickguletskii commented 9 years ago

This issue is caused by the bundled libstdc++ binaries being older than the ones that GLXOSD was linked against. Please see the according FAQ entry.

If that is not the issue, please ask for this issue to be reopened.