Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Included libstdc++.so.6 breaks DF on Debian Stretch (fix included)  (Read 2202 times)

draeath

  • Bay Watcher
  • So it has come to this...
    • View Profile

I don't have a mantis account, and can't post in the bug reporting forum, so this would be the last place to stick it.

It seems the included libs/libstdc++.so.6 and/or libs/libgcc_s.so.1 prevent the game from launching on Debian Stretch.

It looks like this, when it occurs (you may see different driver .so files based on your hardware)

Code: [Select]
Loading bindings from data/init/interface.txt
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
The program 'Dwarf_Fortress' received an X Window System error.

  • Is this a known issue?
  • You may try removing/renaming the library files, after ensuring you have them installed in your distro (libstdc++ particularly might not be). If renaming, just ensure it doesn't end in .so
  • Why are these included?

I've been using Linux for over 10 years now, and my impression is bundling such libraries should be avoided unless there is a very good reason to do so. Generally, one would prefer to use their distro-provided libgcc and libstdc++. Mixing "core" libraries like that is normally a recipe for disaster.

It should be noted that it is not obvious that these libraries are the cause of this failure. I only knew to try moving them out of the way due to barking up this tree years ago for some other application.
Logged
Urist McAlchemist cancels extract isotope: interrupted by supercriticality accident.
This kea is so raw it stole my wheelbarrow!

lethosor

  • Bay Watcher
    • View Profile
Re: Included libstdc++.so.6 breaks DF on Debian Stretch (fix included)
« Reply #1 on: January 16, 2018, 10:16:02 am »

  • Why are these included?

It dates back to DF2010 (0.31). Back then, DF used GCC 4.5, which was pretty new, so some distros didn't have it available by default, and some didn't even have it in their package managers, so having it included made it easier for people on old distros to play.

Admittedly, GCC 4.8 (which DF now uses) isn't that new. DFHack's launcher script actually renames DF's libstdc++ by default, and I haven't heard of any complaints about that, so maybe DF could do something like that too.
Logged
DFHack - Dwarf Manipulator (Lua) - DF Wiki talk

There was a typo in the siegers' campfire code. When the fires went out, so did the game.