################################################################################ # # Version: Onyx 5.1.2 # # Supported platforms and platform-specific information. # ################################################################################ * Fedora Core 1. + There are signal handling issues for SMP kernels that wreak havoc on Onyx's garbage collector. Expect Onyx to deadlock as a result. Viable workarounds include: 1) Run a uniprocessor kernel. 2) Use GNU pth rather than pthreads. 3) Disable threads. * Red Hat Linux 9. + There are serious bugs in NPTL (the new pthreads implementation) that cause Onyx to deadlock during startup. An updated glibc was released by Red Hat that fixes this problem. + The signal handling issues in Fedora Core 1 apply to Red Hat Linux 9 as well. * Red Hat Linux 8. + Job control support (suspend/resume) is broken when using libedit for command line editing. This is because LinuxThreads's signal handling semantics are broken. There is workaround code in mod/modprompt/src/modprompt.c that can be enabled by defining the CW_MODPROMPT_LINUXTHREADS cpp macro. + The Onyx 4.4.3 release was the last release tested on Red Hat Linux 8. It probably compiles and works, but there are no guarantees. * FreeBSD 4.9, 5.2. + FreeBSD's libedit is too old for Onyx's needs. Use the ports version of libedit. Take care to specify the appropriate configure script parameters (see INSTALL for details). * Sun Solaris 9. * Apple OS X 10.3. + Amazingly, execve() does not work for a multi-threaded process. This can be worked around by calling fork(), then execve(), and exiting the parent process. In Onyx code, the workaround looks like: Original: [`path'] exec Workaround: [`path'] forkexec 0 ne { # Parent process. 0 die } if This workaround has the side effect of changing the process ID. + It may be necessary to set the following environment variable when building Onyx: MACOSX_DEPLOYMENT_TARGET=10.3 This tells the linker to generate binaries that are not compatible with earlier versions of OS X, which is necessary since Onyx's build system uses some new linker features. * NetBSD 1.6. + POSIX threading does not work due to NetBSD's lack of pthreads. However, GNU pth threading should work.