View Single Post
Old 05-30-08, 04:30 AM   #6
arundel
Registered User
 
Join Date: May 2008
Posts: 36
Default Re: Unable to run linux 3d apps

Ok. After recompiling the linuxulator with debugging support I found the exact position where all the id apps crash:

http://fxr.watson.org/fxr/source/i38...=FREEBSD7#L372

Code:
372         if (copyout(&frame, fp, sizeof(frame)) != 0) {
373                 /*
374                  * Process has trashed its stack; give it an illegal
375                  * instruction to halt it in its tracks.
376                  */
377 #ifdef DEBUG
378                 if (ldebug(rt_sendsig))
379                         printf(LMSG("rt_sendsig: bad stack %p, oonstack=%x"),
380                             fp, oonstack);
381 #endif
382                 PROC_LOCK(p);
383                 sigexit(td, SIGILL);
384         }
The following debug message is being output ~ 1/4 of a million times. After that the stack is trashed and the app receives an illegal instruction (SIGILL = 4) by the linuxulator in order to let it crash.

Quote:
rt_sendsig(0x829f860, 11, 0xc6172138, 1)
rt_sendsig flags: 0x2, sp: 0, ss: 0x0, mask: 0x0
and finally:

Quote:
rt_sendsig: bad stack 0xbbbfffa0, oonstack=0
There seems to be some kind of loop in all the id games which runs until it hits a certan condition, but that condition never occurs. Maybe some function in the linuxulator is returning values which differ from the actual linux function. I don't know

It would really be interesting to see what happens on a system that's running CURRENT.

cheers.
arundel is offline   Reply With Quote