home *** CD-ROM | disk | FTP | other *** search
- By running executor-svga.elf through strace, I was able to trace the
- crashes during the init sequence to a pair of bugs within Svgalib 1.2.8 and
- Linux. I use a Mach32 card, but I suspect all linear-mapping SVGAlib drivers
- might exhibit this bug.
-
- In particular, with SVGAlib 1.2.8, the Mach32 driver uses
- 0x40000000 as the location of the frame buffer. The bad news is that ld.so
- loads various libraries in that very same space. The Linux bug then allows
- the mmap of the frame buffer memory to go through, even though there is
- mprotect-ed memory within the area. The libraries are mapped out of the
- executor process in favor of video memory, which is then executed, causing
- a bus fault.
-
- Upgrading to SVGAlib 1.2.9 solved the problem, since it is not picky
- over where the mmap takes place - at least with the Mach32 driver...
- nonetheless, I'll send a bug report to Linux-kernel to see if there is really
- a Linux bug...
-
- (By the way, Executor calls getpid() a *lot* - that might be in SVGAlib,
- but I figure it might as well be able to remember it's own pid :)
-
- - Chad
-
-
-
-