109a25192SPierre ProncheryNotes on ANSI C 209a25192SPierre Pronchery=============== 309a25192SPierre Pronchery 409a25192SPierre ProncheryWhen building for pure ANSI C (C89/C90), you must configure with at least 509a25192SPierre Proncherythe following configuration settings: 609a25192SPierre Pronchery 709a25192SPierre Pronchery- `no-asm` 809a25192SPierre Pronchery 909a25192SPierre Pronchery There are cases of `asm()` calls in our C source, which isn't supported 1009a25192SPierre Pronchery in pure ANSI C. 1109a25192SPierre Pronchery 1209a25192SPierre Pronchery- `no-secure-memory` 1309a25192SPierre Pronchery 1409a25192SPierre Pronchery The secure memory calls aren't supported with ANSI C. 1509a25192SPierre Pronchery 1609a25192SPierre Pronchery- `-D_XOPEN_SOURCE=1` 1709a25192SPierre Pronchery 1809a25192SPierre Pronchery This macro enables the use of the following types, functions and global 1909a25192SPierre Pronchery variables: 2009a25192SPierre Pronchery 2109a25192SPierre Pronchery - `timezone` 2209a25192SPierre Pronchery 2309a25192SPierre Pronchery- `-D_POSIX_C_SOURCE=200809L` 2409a25192SPierre Pronchery 2509a25192SPierre Pronchery This macro enables the use of the following types, functions and global 2609a25192SPierre Pronchery variables: 2709a25192SPierre Pronchery 2809a25192SPierre Pronchery - `ssize_t` 2909a25192SPierre Pronchery - `strdup()` 3009a25192SPierre Pronchery 3109a25192SPierre ProncheryIt's arguable that with gcc and clang, all of these issues are removed when 3209a25192SPierre Proncherydefining the macro `_DEFAULT_SOURCE`. However, that effectively sets the C 3309a25192SPierre Proncherylanguage level to C99, which isn't ANSI C. 34