Frictional Games Forum (read-only)

Full Version: Segfault in libfltk on 64-bit archlinux
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

All my Penumbra games segfault. This is the output from gdb:

Program received signal SIGSEGV, Segmentation fault.
0xf7f8631e in Fl_Preferences::Node::set(char const*, char const*) () from ./lib/
(gdb) bt
#0  0xf7f8631e in Fl_Preferences::Node::set(char const*, char const*) () from ./lib/
#1  0xf7f864ec in Fl_Preferences::Node::set(char const*) () from ./lib/
#2  0xf7f86d4f in Fl_Preferences::RootNode::read() () from ./lib/
#3  0xf7f870fb in Fl_Preferences::RootNode::RootNode(Fl_Preferences*, Fl_Preferences::Root, char const*, char const*) () from ./lib/
#4  0xf7f8723f in Fl_Preferences::Fl_Preferences(Fl_Preferences::Root, char const*, char const*) () from ./lib/
#5  0xf7f6a87d in ?? () from ./lib/
#6  0xf7fb9cfa in ?? () from ./lib/
#7  0xf7ffcfc4 in ?? () from /lib/
#8  0x0000002e in ?? ()
#9  0xffffd178 in ?? ()
#10 0xf7f533dd in _init () from ./lib/
Backtrace stopped: frame did not save the PC

ldd32 revealse the following about the library deps for penumbra.bin:
Code: =>  (0xf77be000) => ./lib/ (0xf77b6000) => ./lib/ (0xf7716000) => ./lib/ (0xf7690000) => ./lib/ (0xf7689000) => ./lib/ (0xf766d000) => /opt/lib32/usr/lib/ (0xf7587000) => /opt/lib32/usr/lib/ (0xf7519000) => ./lib/ (0xf7212000) => ./lib/ (0xf71ca000) => ./lib/ (0xf7186000) => ./lib/ (0xf717f000) => ./lib/ (0xf70a3000) => /opt/lib32/lib/ (0xf707d000) => /opt/lib32/usr/lib/ (0xf705e000) => /opt/lib32/lib/ (0xf6f18000) => /opt/lib32/lib/ (0xf6eff000) => ./lib/ (0xf6ed7000) => /opt/lib32/usr/lib/ (0xf6ec4000) => /opt/lib32/usr/lib/ (0xf6da9000) => /opt/lib32/usr/lib/ (0xf6d25000) => /opt/lib32/usr/lib/ (0xf6d1c000) => /opt/lib32/usr/lib/ (0xf6cee000) => /opt/lib32/usr/lib/ (0xf6ce0000) => /opt/lib32/lib/ (0xf6cdb000) => /opt/lib32/usr/lib/ (0xf6cc7000) => /opt/lib32/usr/lib/ (0xf5c2c000) => /usr/lib/tls/ (0xf5c2a000)
    /lib/ (0xf77bf000) => ./lib/ (0xf5c24000) => /opt/lib32/usr/lib/ (0xf5c0b000) => /opt/lib32/usr/lib/ (0xf5be5000) => /opt/lib32/usr/lib/ (0xf5be2000) => /opt/lib32/usr/lib/ (0xf5bdd000)

The same thing also happens with blackplague.bin.

Penumbra Overture version is: 1.0.679
Black plague version is: 1.0.2567
My system is x86_64 Archlinux.

Hollar if ya need more info, any help appreciated. Thanks!
Have you tried using the system 32bit fltk? (just rename the one in the lib directory).

and did you do a thread apply all bt in GDB?
As the topic suggests, I'm on a 64-bit system, there's no system-wide 32-bit version of fltk on this box and I'm guessing that the one that came with the game (in lib, the one in use) shouldn't segfault.

There's only one thread running at that point it seems, also gdb already pointed to the function that segfaults.
Can you please apply this update and retry ?
Problem remains after the update.