1################################################################################ 2# 3# Version: Onyx 5.1.2 4# 5# Supported platforms and platform-specific information. 6# 7################################################################################ 8 9* Fedora Core 1. 10 11 + There are signal handling issues for SMP kernels that wreak havoc on Onyx's 12 garbage collector. Expect Onyx to deadlock as a result. Viable workarounds 13 include: 14 15 1) Run a uniprocessor kernel. 16 2) Use GNU pth rather than pthreads. 17 3) Disable threads. 18 19* Red Hat Linux 9. 20 21 + There are serious bugs in NPTL (the new pthreads implementation) that cause 22 Onyx to deadlock during startup. An updated glibc was released by Red Hat 23 that fixes this problem. 24 25 + The signal handling issues in Fedora Core 1 apply to Red Hat Linux 9 as 26 well. 27 28* Red Hat Linux 8. 29 30 + Job control support (suspend/resume) is broken when using libedit for 31 command line editing. This is because LinuxThreads's signal handling 32 semantics are broken. There is workaround code in 33 mod/modprompt/src/modprompt.c that can be enabled by defining the 34 CW_MODPROMPT_LINUXTHREADS cpp macro. 35 36 + The Onyx 4.4.3 release was the last release tested on Red Hat Linux 8. It 37 probably compiles and works, but there are no guarantees. 38 39* FreeBSD 4.9, 5.2. 40 41 + FreeBSD's libedit is too old for Onyx's needs. Use the ports version of 42 libedit. Take care to specify the appropriate configure script parameters 43 (see INSTALL for details). 44 45* Sun Solaris 9. 46 47* Apple OS X 10.3. 48 49 + Amazingly, execve() does not work for a multi-threaded process. This can be 50 worked around by calling fork(), then execve(), and exiting the parent 51 process. In Onyx code, the workaround looks like: 52 53 Original: 54 55 [`path'] exec 56 57 Workaround: 58 59 [`path'] forkexec 0 ne { 60 # Parent process. 61 0 die 62 } if 63 64 This workaround has the side effect of changing the process ID. 65 66 + It may be necessary to set the following environment variable when building 67 Onyx: 68 69 MACOSX_DEPLOYMENT_TARGET=10.3 70 71 This tells the linker to generate binaries that are not compatible with 72 earlier versions of OS X, which is necessary since Onyx's build system uses 73 some new linker features. 74 75* NetBSD 1.6. 76 77 + POSIX threading does not work due to NetBSD's lack of pthreads. However, 78 GNU pth threading should work. 79