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 disabledwill 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