Home | History | Annotate | Line # | Download | only in dist
      1 Notes on ANSI C
      2 ===============
      3 
      4 When building for pure ANSI C (C89/C90), you must configure with at least
      5 the following configuration settings:
      6 
      7 -   `no-asm`
      8 
      9     There are cases of `asm()` calls in our C source, which isn't supported
     10     in pure ANSI C.
     11 
     12 -   `no-secure-memory`
     13 
     14     The secure memory calls aren't supported with ANSI C.
     15 
     16 -   `-D_XOPEN_SOURCE=1`
     17 
     18     This macro enables the use of the following types, functions and global
     19     variables:
     20 
     21     -   `timezone`
     22 
     23 -   `-D_POSIX_C_SOURCE=200809L`
     24 
     25     This macro enables the use of the following types, functions and global
     26     variables:
     27 
     28     -   `ssize_t`
     29     -   `strdup()`
     30 
     31 It's arguable that with gcc and clang, all of these issues are removed when
     32 defining the macro `_DEFAULT_SOURCE`.  However, that effectively sets the C
     33 language level to C99, which isn't ANSI C.
     34