Linux Glibc problem

Linux support forum for Eschalon: Book III
Stephane
Initiate
Posts: 16
Joined: April 15th, 2013, 5:02 pm

Linux Glibc problem

Post by Stephane »

There is a problem with Debian (Wheezy) which doesn't work with Glib 2.5 as this game ask.

I've try to take the testing package of libc6 2.5 unpack it in a folder and do a export LD_LIBRARY_PATH

but eschalon go on a segfault.

I try to to a debootstrap chroot of i386 testing version with all needed, and once again Eschalon does a seg fault.

Anybody around had any chance?
Hawkwind
Steward
Posts: 63
Joined: December 20th, 2008, 7:11 pm
Location: Salt Lake City, UT -- Or 35,000ft in the air on a Delta Jet.

Re: Linux Glibc problem

Post by Hawkwind »

Stephane,

(My apologies, the limited iPad keyboard cannot provide the necessary accents for your name.)

My Ubuntu horked out pretty quickly, so I ended up installing in Windows and it ran fine. I was hoping to spend some time looking at it this weekend but my employer has me on another dang airplane, so there goes my weekend. If I get a chance, I will post my findings. If you get a fix, I would appreciate you doing the same, please!
Stephane
Initiate
Posts: 16
Joined: April 15th, 2013, 5:02 pm

Re: Linux Glibc problem

Post by Stephane »

Sure will do,
it's would be great if I can lay my hand on the excutable with DEBUG enable...
So I can run it in the debugger and see where the segfault occur..

But for now, as I have no clue where the segfault come from... it's a issue.
Stephane
Initiate
Posts: 16
Joined: April 15th, 2013, 5:02 pm

Re: Linux Glibc problem

Post by Stephane »

Ok I got it working,
with debootstrap, and making a chroot environment with Debian testing for i386.

With a export DISPLAY and a mouting /dev and /proc
I can get it working, even if it's still a 700 Meg fix.....

Sound not working, probably just redirecting like the last version will work.
User avatar
SpottedShroom
Captain Magnate
Captain Magnate
Posts: 1372
Joined: June 4th, 2010, 6:18 pm

Re: Linux Glibc problem

Post by SpottedShroom »

We should be able to do better than that :) I'm going to make a wheezy x86_64 VM and see what it takes to get it running. For what it's worth, it wasn't difficult on Ubuntu 13.10 x86_64. Stay tuned.
Stephane
Initiate
Posts: 16
Joined: April 15th, 2013, 5:02 pm

Re: Linux Glibc problem

Post by Stephane »

Yeah I was lazy that all ;)

I fixed the issue for the sound, as Wheezy use a lower Kernel version then Eschalon need with the library from the testing. In the Chroot environment, do not bind mount /dev, as it will not work and let him see what kernel version you use.

Only creating the mknod of the sound card in /dev/snd fix this issue.
If I have time, I will create a better chroot, but for now I've waited so long for the game, I have to play a bit ;)
User avatar
SpottedShroom
Captain Magnate
Captain Magnate
Posts: 1372
Joined: June 4th, 2010, 6:18 pm

Re: Linux Glibc problem

Post by SpottedShroom »

Okay, here's the easy way to run Book III on wheezy x86_64.

Install multi-arch i386 support:

Code: Select all

sudo dpkg --add-architecture i386
sudo apt-get update
Install the i386 versions of the necessary libraries:

Code: Select all

sudo apt-get install libc6:i386 libx11-6:i386 libxxf86vm1:i386 libfreetype6:i386 libasound2:i386 libgl1-mesa-glx:i386
Install a recent copy of libc i386 from sid:

Code: Select all

cd $HOME
wget https://packages.debian.org/sid/i386/libc6/download
mkdir libc-sid
dpkg -x libc6_2.17-97_i386.deb libc-sid
Run the game, pointing at the copy of libc from sid:

Code: Select all

cd eschalon3
LD_LIBRARY_PATH=$HOME/libc-sid/lib/i386-linux-gnu ./eschalon_book_3 
Stephane
Initiate
Posts: 16
Joined: April 15th, 2013, 5:02 pm

Re: Linux Glibc problem

Post by Stephane »

As I've said earlier,
I've tried your method at first and I have a Segfault...

I work as a Sysadmin since about 18 years on Unix and Gnu/Linux...
Just so you know I am not a new one on those little tricks ;)

Running gdb on eschalon on this give a error on libthread which seems to create the segfault,
I've try to put the new lib for libthread also in there with no success.

Chroot is the only way that it work for now, on a Debian Wheezy (New install of 2 weeks ago).

All the other library depend on Libc which bring up the issue, making other library to crash as not made for the new libc.
User avatar
SpottedShroom
Captain Magnate
Captain Magnate
Posts: 1372
Joined: June 4th, 2010, 6:18 pm

Re: Linux Glibc problem

Post by SpottedShroom »

Stephane wrote:As I've said earlier,
I've tried your method at first and I have a Segfault...

I work as a Sysadmin since about 18 years on Unix and Gnu/Linux...
Just so you know I am not a new one on those little tricks ;)

Running gdb on eschalon on this give a error on libthread which seems to create the segfault,
I've try to put the new lib for libthread also in there with no success.

Chroot is the only way that it work for now, on a Debian Wheezy (New install of 2 weeks ago).

All the other library depend on Libc which bring up the issue, making other library to crash as not made for the new libc.
Strange - I used this method on a brand-new wheezy install and it worked. I know this seems obvious, but do you have DISPLAY set correctly?

Here is my ldd output for the Book III executable if it helps.

Code: Select all

$ LD_LIBRARY_PATH=~/libc-sid/lib/i386-linux-gnu ldd ./eschalon_book_3 
	linux-gate.so.1 (0xf7715000)
	libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf75d4000)
	libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xf75ce000)
	libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xf7531000)
	libasound.so.2 => /usr/lib/i386-linux-gnu/libasound.so.2 (0xf7439000)
	libGL.so.1 => /usr/lib/i386-linux-gnu/libGL.so.1 (0xf73df000)
	libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf72f3000)
	libm.so.6 => /home/ekendall/libc-sid/lib/i386-linux-gnu/libm.so.6 (0xf72b1000)
	libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7293000)
	libpthread.so.0 => /home/ekendall/libc-sid/lib/i386-linux-gnu/libpthread.so.0 (0xf7279000)
	libc.so.6 => /home/ekendall/libc-sid/lib/i386-linux-gnu/libc.so.6 (0xf7104000)
	libdl.so.2 => /home/ekendall/libc-sid/lib/i386-linux-gnu/libdl.so.2 (0xf70ff000)
	libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf70dc000)
	libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf70c9000)
	libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf70b0000)
	librt.so.1 => /home/ekendall/libc-sid/lib/i386-linux-gnu/librt.so.1 (0xf70a7000)
	libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xf7091000)
	libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xf708e000)
	libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xf7087000)
	libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xf7085000)
	libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xf706c000)
	libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xf705e000)
	/lib/ld-linux.so.2 (0xf7716000)
	libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf705b000)
	libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf7054000)
Stephane
Initiate
Posts: 16
Joined: April 15th, 2013, 5:02 pm

Re: Linux Glibc problem

Post by Stephane »

Code: Select all

        linux-gate.so.1 =>  (0xf76f5000)
        libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf75a7000)
        libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xf75a1000)
        libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xf7504000)
        libasound.so.2 => /usr/lib/i386-linux-gnu/libasound.so.2 (0xf740c000)
        libGL.so.1 => /usr/lib/i386-linux-gnu/libGL.so.1 (0xf73b2000)
        libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf72c6000)
        libm.so.6 => /home/stephane/Bureau/eschalon_book_3_100_linux_bg/libc-sid/lib/i386-linux-gnu/libm.so.6 (0xf7284000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7266000)
        libpthread.so.0 => /home/stephane/Bureau/eschalon_book_3_100_linux_bg/libc-sid/lib/i386-linux-gnu/libpthread.so.0 (0xf724c000)
        libc.so.6 => /home/stephane/Bureau/eschalon_book_3_100_linux_bg/libc-sid/lib/i386-linux-gnu/libc.so.6 (0xf70d7000)
        libdl.so.2 => /home/stephane/Bureau/eschalon_book_3_100_linux_bg/libc-sid/lib/i386-linux-gnu/libdl.so.2 (0xf70d2000)
        libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf70af000)
        libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf709c000)
        libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf7083000)
        librt.so.1 => /home/stephane/Bureau/eschalon_book_3_100_linux_bg/libc-sid/lib/i386-linux-gnu/librt.so.1 (0xf707a000)
        libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xf7064000)
        libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xf7061000)
        libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xf705a000)
        libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xf7058000)
        libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xf703f000)
        libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xf7031000)
        /lib/ld-linux.so.2 (0xf76f6000)
        libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf702e000)
        libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf7027000)
Yes if I type any X apps on the same terminal it open perfectly, I've export DISPLAY too just in case, same segfault...

I do not know where the segfault come from, that's what make it hard to trace it back.

I use the default kernel version:

Code: Select all

uname -a
Linux SDev 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64 GNU/Linux
Stephane
Initiate
Posts: 16
Joined: April 15th, 2013, 5:02 pm

Re: Linux Glibc problem

Post by Stephane »

To give you more info,
I have a chroot with Debian testing in it.
Here while I am in the folder without chroot

Code: Select all

stephane@SDev:~/Debian-Testing$ export LD_LIBRARY_PATH=$(pwd)/lib/i386-linux-gnu:$(pwd)/usr/lib/i386-linux-gnu
stephane@SDev:~/Debian-Testing$ ldd eschalon_book_3_100_linux_bg/eschalon_book_3 
        linux-gate.so.1 =>  (0xf778d000)
        libX11.so.6 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libX11.so.6 (0xf7652000)
        libXxf86vm.so.1 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xf764c000)
        libfreetype.so.6 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libfreetype.so.6 (0xf75aa000)
        libasound.so.2 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libasound.so.2 (0xf74b1000)
        libGL.so.1 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libGL.so.1 (0xf7458000)
        libstdc++.so.6 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf736f000)
        libm.so.6 => /home/stephane/Debian-Testing/lib/i386-linux-gnu/libm.so.6 (0xf732d000)
        libgcc_s.so.1 => /home/stephane/Debian-Testing/lib/i386-linux-gnu/libgcc_s.so.1 (0xf7310000)
        libpthread.so.0 => /home/stephane/Debian-Testing/lib/i386-linux-gnu/libpthread.so.0 (0xf72f6000)
        libc.so.6 => /home/stephane/Debian-Testing/lib/i386-linux-gnu/libc.so.6 (0xf7181000)
        libdl.so.2 => /home/stephane/Debian-Testing/lib/i386-linux-gnu/libdl.so.2 (0xf717c000)
        libxcb.so.1 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libxcb.so.1 (0xf715a000)
        libXext.so.6 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libXext.so.6 (0xf7147000)
        libz.so.1 => /home/stephane/Debian-Testing/lib/i386-linux-gnu/libz.so.1 (0xf712e000)
        libpng12.so.0 => /home/stephane/Debian-Testing/lib/i386-linux-gnu/libpng12.so.0 (0xf7105000)
        librt.so.1 => /home/stephane/Debian-Testing/lib/i386-linux-gnu/librt.so.1 (0xf70fc000)
        /lib/ld-linux.so.2 (0xf778e000)
        libglapi.so.0 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libglapi.so.0 (0xf70e5000)
        libXdamage.so.1 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libXdamage.so.1 (0xf70e0000)
        libXfixes.so.3 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libXfixes.so.3 (0xf70da000)
        libX11-xcb.so.1 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xf70d7000)
        libxcb-glx.so.0 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xf70bf000)
        libxcb-dri2.so.0 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libxcb-dri2.so.0 (0xf70b9000)
        libdrm.so.2 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libdrm.so.2 (0xf70ab000)
        libXau.so.6 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libXau.so.6 (0xf70a7000)
        libXdmcp.so.6 => /home/stephane/Debian-Testing/usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf70a1000)
stephane@SDev:~/Debian-Testing$ eschalon_book_3_100_linux_bg/eschalon_book_3 
Erreur de segmentation
stephane@SDev:~/Debian-Testing$
But if I chroot in this folder and use the exact SAME library, it work fine.
User avatar
SpottedShroom
Captain Magnate
Captain Magnate
Posts: 1372
Joined: June 4th, 2010, 6:18 pm

Re: Linux Glibc problem

Post by SpottedShroom »

There must be something different about your wheezy install from mine, but I'm not sure what it is. I could send you a copy of my VM where it's working if you like.
Stephane
Initiate
Posts: 16
Joined: April 15th, 2013, 5:02 pm

Re: Linux Glibc problem

Post by Stephane »

Wait... You said a VM?

Does your VM does a real 64 bits simulation? As most VM are 32 bits in fact.
Stephane
Initiate
Posts: 16
Joined: April 15th, 2013, 5:02 pm

Re: Linux Glibc problem

Post by Stephane »

For those following,
The problem is now continuing on Private message for convenience.

Someone else having this issue with Debian (Wheezy) ?
MaT
Initiate
Posts: 6
Joined: January 24th, 2009, 2:03 pm

Re: Linux Glibc problem

Post by MaT »

At first, I was not able to run - so I tried to install some more packages from i386 (because I'm running Debian on amd64 platform). But when I wanted to install libasound-plugins from i386, I was asked to remove many amd64 packages because of some conflicts (vlc, mplayer, many parts of Gnome). Finally I solved by deinstallation of these packages and then installing them again after I installed libasound-plugins for i386. This time - any conflicting packages. Strange...
Post Reply