You are not logged in.
Hi, hope someone can help with this.
If I upgrade glibc to 2.15-3 there is missing letters at the end of text fonts in the menus and ingame, plus this:
etqw.x86[1060]: segfault at fffff7fd ip b74805fb sp accc80c0 error 4 in libgcc_s.so.1[b747b000+a000]
in kernel log upon exiting the game.
Reverting back to glibc-2.14.1-4 fixes the issues.
Any ideas on what's going on here? I'm running in 32bit 686 Arch.
Last edited by JinxterX (2012-01-21 16:48:16)
Offline
Hi,
This is no help but I have the same problems (one missing letter at the end of some in-game text including chat & segfault on exit) on 64bit. Apart from that the games runs fine.
etqw-rthread.x86 has the same issues but doesn't report its segfault in the logs.
I don't know how to work out exactly what's the cause.
Offline
Yup, it's like a text buffer is 1 byte short or something, just guessing.
Offline
Ok, a workaround is to copy two libraries from glibc 2.14.1-4 into the etqw dir (/opt/etqw/)
libc.so.6
libpthread.so.0
Not elegant, but it works.
Offline
opensuse has lotsa glibc patches - e.g. glibc-2.15-13.1.src.rpm contains glibc-2.14-32args-printf.patch, which looks kinda relevant?
Please don't mark this thread solved - it's not.
Last edited by brebs (2012-01-21 16:06:31)
Offline
You're right, it's not solved, oops, sound breaks with
dlopen(libasound.so.2) failed: /lib/librt.so.1: symbol __pthread_get_minstack, version GLIBC_PRIVATE not defined in file libpthread.so.0 with link time reference
WARNING: sound subsystem disabled
will look at that patch you linked to, guess the only solution is to compile from ABS and test, thanks for the update.
Last edited by JinxterX (2012-01-21 16:56:01)
Offline
sdl_image just got updated to 1.2.12, and sdl to 1.2.15 - give those a try.
Offline
Thanks for the suggestion, upgrading SDL had no effect, but copying librt.so.1 from the 2.14.1-4 package into the etqw dir fixes the broken sound.
So segfault fixed, missing text fixed and sound fixed after forcing etqw to use 3 older libraries, can I call this topic solved now?
P.S. I tried to compile glibc 2.15-3 with that opensuse patch just out of curiosity but compilation failed and I'm not a C programmer so I gave up on
that avenue.
Last edited by JinxterX (2012-01-21 22:07:15)
Offline
can I call this topic solved
Nope - local copies of old libs is definitely a last resort, so try harder first (or just leave it open for others). And it does sound like a bug/regression.
Google to see if other distros have this problem - ETQW is a popular game. Unfortunately, right now, only the bleeding-edge stuff uses glibc 2.15. Even I'm still a wussy on 2.14.1 for the time being.
That opensuse RPM has other patches to try Shame about their lack of documentation, though.
Edit: Sounds like a candidate to add to the Arch bugzilla, so Allan can ponder it
I bet it was all drepper's fault
Last edited by brebs (2012-01-21 22:52:49)
Offline
Ok I dug deeper
Problem has got something to do with string function optimisation using SSE. There are a whole bunch of patches related to that in glibc 2.15.
Like this one:
http://sourceware.org/git/?p=glibc.git; … d8b5d4faab
Urgh So anyway.. I just thought what the hell and produced a patch to remove ALL of them Love that diff command, reversed
all changes in sysdeps/i386/i686/multiarch directory between versions 2.14 and 2.15, then compiled from ABS, used the resulting
libc.so.6 in /opt/etqw and it worked, lol, no more missing characters at the end of in-game text, menus, chat etc.
Except there was still a segfault from libgcc when you quit the game, but if you rename that file and use the one in /usr/lib then it seems to like that
So.. glibc/sysdeps/i386/i686/multiarch/strlen-sse2.S needs investigation I reckon.
Last edited by JinxterX (2012-01-26 16:20:44)
Offline
I took brebs advice and opened a bug report (if you want to add to it: FS#28093) but all that backtracing looks a bit silly now. Just renaming libgcc_s.so.1 in the game dir does indeed stop the segfault
Oh well, live n' learn, cheers Jinx.
Last edited by smudge (2012-01-27 05:54:32)
Offline
Found the problem Easiest thing to do for a quick fix is apply the patch I've put in the bug report, recompile glibc and copy the new libc.so.6 into /opt/etqw. Rename libgcc_s.so.1 and remove libpthread and librt if you had them in there from 2.14.
Offline
Oh smudge, I just realised as an alternative you can just change the configure option in the PKGBUILD to --disable-multi-arch lol, haven't tested it tho
Offline
Being on 64bit (so using lib32-glibc from multilib for etqw) I assume I need multiarch. I tried --disable-multi-arch anyway but it failed to build. Thanks for the suggestion though
Offline
You need --disable-mutli-arch in the lib32-glibc.... and multiarch is different to mutlilib.
Offline
Ah, build failed because I deleted i686-unknown-linux-gnu when changing enable to disable. Don't know why I did that.
Tried again, built fine and etqw seems happy with the resulting libc.
Thanks
Offline