Also look at the TODO file
external tools and drivers we use:
gcc 2.95 Can't do our assembler inline due to statemens beeing to long, and
having to many arguments.
gcc 2.96 (redhat smashed together 2.95 + 3.0 patchset)
Nope.. can't do assembler good enough.. fails to compile
gcc 3.3.3: When using -O2 or higher it used to crash cpiface/cpiphase.c. So we
waste 256*4 more bytes of stack there, just when we are compiler with you
Update.. We always waste more memory now. The problem source is aliasing.
gcc 4.x: If other libraries are compiled with 4.x and ocp with 3.x you might get
some random crashes in c++ code due to internal ABI changes in g++.
Has some serious faults.. Sometimes it failes to locate files, forget flags
and shit like that.
glibc 2.3 and the linuxthread library is not compatible with Eletric Fence when
timer is used. define NO_BACKGROUND_MIXER if you intend to use efence
ncurses-5.2-26: (on redhat 7.3 for instance)
Has some drawing bugs when drawing spaces, it sometimes failes to detect
overwritten data.. Couses sometimes unwanted text on places you wanted it
to change to blank. (See fixbadgraphic in ocp.ini and stuff/poutput-curses.c)
(Of course curses will mess up if you don't redirect stderr currently, but
this bug makes even more noise on the console, and it still has bugs when
making very big terminals)
Sometimes keycodes like esc[H becomes escOH .. Workaround is always compiled
nforce audio, binary drivers from nvidia: Returns negative ODELAY, bugfix always
via82cxxx_audio/kernel 2.4.25-rc1: sometimes give ODELAY bigger than what you
have actually written. Workarounds are always compiled in (devposs)
2.4.26-rc1: some devices that is not present like /dev/sg0 makes funny results
in the following cases: /dev/sg0 is not present. /dev/sga is a symlink to
/dev/sg0. (stat("/dev/sga", &st)) then failes with ENOENT, while
stat("/dev/sg0", &st) works perfect and lstat("/dev/sga")
tridentfb/kernel 2.4.26-rc: (and possible other versions)
tridentfb has some funny bugs. The default palette you read from the driver
is not the real one since the bits are shifted wrong.
tridentfb reports linelength wrong after you have changed resolution.
Reopen the framebuffer is not enough. You need a new process-space to
update the values.
XFree86-4.3.0: (matrox driver atleast)
* Keyboard state is as broken as it can be, so there is an option in
ocp.ini to trace shiftmask by hand, and not trust XEvent
* It leaves a /dev/mem filedescriptor open across exec calls
And from this software:
playxm/* has some bugs on some few files (samples broken):
adamski.mod: monty pole
and these have buggy global commands
barbarian.mod: bar-barian (we have disables tempo=0 as "end" command for now)
long pauses causes idiv to give segfault due to overflow (#PE) when unpaused.
Needs a range check when I bother to make it.