Document more of the OS and library assumptions.

This commit is contained in:
Adam Jackson 2008-07-31 15:46:52 -04:00
parent 2198e237b2
commit 8d214bc26f

View File

@ -1,5 +1,7 @@
Use of extensions throughout the X server tree
----------------------------------------------
First of all: C89 or better. If you don't have that, port gcc first.
Use of C language extensions throughout the X server tree
---------------------------------------------------------
Optional extensions:
The server will still build if your toolchain does not support these
@ -31,3 +33,29 @@ The server will not build if your toolchain does not support these extensions.
* variadic macros: macros with a variable number of arguments, e.g.:
#define DebugF(x, ...) /**/
* interleaved code and declarations: { foo = TRUE; int bar; do_stuff(); }
Use of OS and library facilities throughout the X server tree
-------------------------------------------------------------
Non-OS-dependent code can assume facilities at least as good as
the non-OS-facility parts of POSIX-1.2001. Ideally this would
be C99, but even gcc+glibc doesn't implement that yet.
Unix-like systems are assumed to be at least as good as UNIX03.
Linux systems must be at least 2.4 or later. As a practical matter
though, 2.4 kernels never receive any testing. Use 2.6 already.
TODO: Solaris.
TODO: *BSD.
Code that needs to be portable to Windows should be careful to,
well, be portable. Note that there are two Windows ports, cygwin and
mingw. Cygwin is more or less like Linux, but mingw is a bit more
restrictive. TODO: document which versions of Windows we actually care
about.
OSX support is generally limited to the most recent version. Currently
that means 10.5.