diff options
Diffstat (limited to 'doc/c-extensions')
-rw-r--r-- | doc/c-extensions | 32 |
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. |