Page 1 of 2

Linux Glibc problem

Posted: February 17th, 2014, 5:35 pm
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?

Re: Linux Glibc problem

Posted: February 17th, 2014, 7:47 pm
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!

Re: Linux Glibc problem

Posted: February 17th, 2014, 8:02 pm
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.

Re: Linux Glibc problem

Posted: February 17th, 2014, 8:10 pm
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.

Re: Linux Glibc problem

Posted: February 18th, 2014, 2:44 pm
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.

Re: Linux Glibc problem

Posted: February 18th, 2014, 3:22 pm
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 ;)

Re: Linux Glibc problem

Posted: February 18th, 2014, 6:05 pm
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 

Re: Linux Glibc problem

Posted: February 18th, 2014, 6:19 pm
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.

Re: Linux Glibc problem

Posted: February 18th, 2014, 6:59 pm
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)

Re: Linux Glibc problem

Posted: February 18th, 2014, 7:22 pm
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

Re: Linux Glibc problem

Posted: February 18th, 2014, 7:31 pm
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.

Re: Linux Glibc problem

Posted: February 18th, 2014, 7:39 pm
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.

Re: Linux Glibc problem

Posted: February 18th, 2014, 7:42 pm
by Stephane
Wait... You said a VM?

Does your VM does a real 64 bits simulation? As most VM are 32 bits in fact.

Re: Linux Glibc problem

Posted: February 18th, 2014, 8:35 pm
by Stephane
For those following,
The problem is now continuing on Private message for convenience.

Someone else having this issue with Debian (Wheezy) ?

Re: Linux Glibc problem

Posted: February 19th, 2014, 6:07 am
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...