Summary: | libsdl-1.2.6 gives illegal instruction crash | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | paul |
Component: | [OLD] Library | Assignee: | Gentoo Games <games> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | alexs81, d3vlin |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
URL: | http://www.libsdl.org/pipermail/sdl/2003-October/057304.html | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
paul
2003-10-17 05:19:26 UTC
could you try this ? export EXTRA_ECONF="--disable-nasm" emerge libsdl Okay, I've tried that. It gives exactly the same problem as I had originally. I've been looking at the source code, unencumbered by much linux programming knowledge... The problem seems to occur in BlitRGBtoRGBPixelAlphaMMX3DNOW, which is interesting as my P4 doesn't have any 3DNow instructions. Looking for the function call we see in src/video/SDL_blit_A.c line 1457 f=CPU_Flags(); if((f&(TDNOW_CPU|MMX_CPU))==(TDNOW_CPU|MMX_CPU)) return BlitRGBtoRGBPixelAlphaMMX3DNOW; CPU_Flags seems to be the result of a cpuid call, EAX=1 - standard level flags. Unfortunately, as far as I can see, the 3dnow flag is not part of the standard level flags, but part of the extended level flags (see http://www.sandpile.org/ia32/cpuid.htm). The code checks the correct bit, but doesn't have the necessary information available. Again, without much further knowledge, I would evaluate this as a libSDL bug. Hope this makes sense. I ran into this also (with castle-combat). Looking at the sdl archives they know about it and have a plan to fix it. Until then I'll just run 1.2.5 *** Bug 30643 has been marked as a duplicate of this bug. *** *** Bug 29205 has been marked as a duplicate of this bug. *** I just added libsdl-1.2.6-r2.ebuild to CVS. Please try it out and see if it makes a difference for you. Thanks. I just tried, but I couldn't install it.
root # emerge libsdl -u
Calculating dependencies ...done!
>>> emerge (1 of 1) media-libs/libsdl-1.2.6-r2 to /
>>> md5 src_uri ;-) SDL-1.2.6.tar.gz
>>> Unpacking source...
>>> Unpacking SDL-1.2.6.tar.gz to /var/tmp/portage/libsdl-1.2.6-r2/work
patching file src/video/xbios/SDL_xbios.c
Hunk #1 FAILED at 22.
1 out of 2 hunks FAILED -- saving rejects to file src/video/xbios/SDL_xbios.c.rej
patching file src/video/xbios/SDL_xbios.c
Hunk #1 FAILED at 22.
1 out of 2 hunks FAILED -- saving rejects to file src/video/xbios/SDL_xbios.c.rej
patching file src/video/x11/SDL_x11modes.c
Hunk #1 FAILED at 22.
1 out of 2 hunks FAILED -- saving rejects to file src/video/x11/SDL_x11modes.c.rej
!!! ERROR: media-libs/libsdl-1.2.6-r2 failed.
!!! Function src_unpack, Line 37, Exitcode 1
!!! patch failed
Yeah, I dorked up the patch with RCS ids. I've fixed it in CVS, so please resync and try it again. Thanks. Yep, that seems to work. Thanks for the effort. |