I tried to test macroi16.dif under linux as promised, but got problems. Any
(_not_ bgi only) grx program attempting to set graphics mode failed with
sigsegv. I had the same problem with grx244 too since (_if_ I remebmer
correctly) the upgrade to svgalib-1.9.13/devfs. All other svgalib programs
(MPlayer, zgv, asteroids) work - the problem is specific to grx programs.
This time I decided to build a debug version of grx and see what goes on,
but there is another error:
make -C src -f makefile.lnx
make[1]: Entering directory `/tmp/grx/src'
gcc -o ../bin/fnt2c utilprog/fnt2c.o ../lib/unix/libgrx20.a
../lib/unix/libgrx20.a(lnxinput.o): In function `GrMouseDetect':
/tmp/grx/src/mouse/lnxinput.c:337: undefined reference to `vga_getmousetype'
/tmp/grx/src/mouse/lnxinput.c:337: undefined reference to `mouse_init_return_fd'
/tmp/grx/src/mouse/lnxinput.c:344: undefined reference to `mouse_close'
<more undefined references>
collect2: ld returned 1 exit status
make[1]: *** [../bin/fnt2c] Error 1
make[1]: Leaving directory `/tmp/grx/src'
make: *** [libs] Error 2
This can be quickly fixed by a:
ifdef DEBUG
$(UTILP): ../bin/% : utilprog/%.o $(GRX20ST)
$(CC) -o $@ utilprog/$*.o $(GRX20ST) -lvga -lm
$(STRIP) $@
else
$(UTILP): ../bin/% : utilprog/%.o $(GRX20ST)
$(CC) -o $@ utilprog/$*.o $(GRX20ST)
$(STRIP) $@
endif
in src/makefile.lnx, but you'll probably want to do better than that (the
non-debug version builds normally). Now here is the signal bt:
#0 0x40167df4 in ioctl () from /lib/libc.so.6
#1 0x4006bfcc in __svgalib_rendition_driverspecs () from /usr/lib/libvga.so.1
#2 0x080533f4 in inkey () at mouse/lnxinput.c:199
#3 0x0805366d in _GrCheckKeyboardHit () at mouse/lnxinput.c:281
#4 0x0805d5a1 in _GR_debug_printf (fmt=0x0) at utils/dbgprint.c:57
#5 0x0805925f in buildcontext (mp=0xbffff860, fdp=0xbffff880, cxt=0xbffff8e0)
at setup/setmode.c:179
#6 0x080594b7 in GrSetMode (which=GR_custom_graphics) at setup/setmode.c:371
#7 0x0804fd44 in setgraphmode (mode=0) at bgi/bccgrx.c:408
#8 0x0804fed3 in __gr_initgraph (graphdriver=0x808046c, graphmode=0x0)
at bgi/bccgrx.c:435
#9 0x0804ff7e in initgraph (graphdriver=0x0, graphmode=0x0, pathtodriver=0x0)
at bgi/bccgrx.c:471
#10 0x08049c09 in Initialize () at bccbgi.c:279
#11 0x0804ee2e in main () at bccbgi.c:2196
#12 0x400b1541 in __libc_start_main () from /lib/libc.so.6
bgilink works normally. When using the debug version of grx, all programs
display a blank screen, wait for esc to be hit and leave normally instead of
immediately aborting with sigsegv (seems that sigsegv is trapped).
E-gards: Jimmy