[Prev][Next][Index][Thread]

Re: Svga & Linux -- workaround



For those, who cannot wait for 1.99o8 and other happy experimenters.

> Here's a message from the linux-svgalib mailing list yesterday, from
...........
> > I'll investigate further, but if I don't find a simple solution I'll make
> > vga_safety_fork a noop until a working solution is found.
...........

A quick'n'dirty workaround:

Create a LD_PRELOAD object which patches vga_safety_fork away.  Something like:

$ cat > no_safety_fork.c
void no_safety_fork () {}
^D
$ gcc -b i486-linuxaout -O2 -fomit-frame-pointer -c -o foo.o no_safety_fork.c
$ ld -m i386linux -x -Ttext 0x50000000 -o no_safety_fork.o foo.o -lvga \
     -u __PLT__vga_safety_fork \
     -defsym preload_no_safety_fork=__PLT__vga_safety_fork

Move the resulting object (no_safety_fork.o) where you keep the a.out libs
and start executor with:

$ LD_AOUT_PRELOAD=<path_to_no_safety_fork.o> executor-svga

Some ancient ld.so's will require LD_PRELOAD (without the AOUT).

It works for me (sort of) on Trio64 (S3-like thing), I still need to restore
the textmode on return from executor.  For further information read the file
ld-so/example/README.preload in the ld.so distribution.

As the above is a big kludge of unknown value, I am _not_ responsible
for anything with respect to it.

- Wojtek

-------------------------------------------------------------
begin 755 no_safety_fork.o.gz
M'XL("`($43`"`VYO7W-A9F5T>5]F;W)K+F\`[=HQ3\)0$`?P4S3&R0Z,#@P,
M3@TP$`<'@=:`:8"T[)="BR$B);0:W-R<3%C\`&Z.C&X..AKCQW'TRGMH$[\`
MP_^77._>>]>FZWOM!P5$!JD0SQ(%HBYI;XO%8CSJWUSX9AR99;(<IW!^?34M
ME,W*=%PE`````````-A\1=GKEU;[_>7@D[:(C.5@O28C^CY0X^WTB,"@;MY0
M9P/I&AE_YP0`````````L+EV)'9)??//2][3^_IBIC[1];'4KJZ/I![I^E#J
MN7[.J3SG+E/?2]Z7:$K/@^ZWI'[,S#])SDE\Y9:#ETS/:Z;G73)/(H[]89C<
M\C":71(SJU\3N,R54E7&;=NV//::KM.J_ZZE?5ZSYMH6R[1;<UNVQTQJLE9W
M;&YTVF=.J]%3T]SH=5QI]7JK89B$\X36B<-)D%X#/_$E]^.8X\2?)32=A>/(
1#_Z]H^Y,;_L!_P^(6&PA``"K
`
end


References: