summaryrefslogtreecommitdiff
path: root/doc/c-extensions
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2008-07-31 15:46:52 -0400
committerAdam Jackson <ajax@redhat.com>2008-07-31 15:50:23 -0400
commit8d214bc26f9b7ab6a5c54d7749cd4b6811cb0b96 (patch)
tree1878aab56bd966fc02ee5f9d177b33d40f6d299b /doc/c-extensions
parent2198e237b2ed85857c671eee2cd04dfc032befee (diff)
Document more of the OS and library assumptions.
Diffstat (limited to 'doc/c-extensions')
-rw-r--r--doc/c-extensions32
1 files changed, 30 insertions, 2 deletions
diff --git a/doc/c-extensions b/doc/c-extensions
index e1b222b9f..eb33e272b 100644
--- a/doc/c-extensions
+++ b/doc/c-extensions
@@ -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.