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