openssl/NOTES-ANSI.md
Richard Levitte 4e8c4b77ef Add installation documentation and notes on ANSI C and POSIX
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24173)
2024-05-22 09:59:32 +02:00

835 B

Notes on ANSI C

When building for pure ANSI C (C89/C90), you must configure with at least the following configuration settings:

  • no-asm

    There are cases of asm() calls in our C source, which isn't supported in pure ANSI C.

  • no-secure-memory

    The secure memory calls aren't supported with ANSI C.

  • -D_XOPEN_SOURCE=1

    This macro enables the use of the following types, functions and global variables:

    • timezone
  • -D_POSIX_C_SOURCE=200809L

    This macro enables the use of the following types, functions and global variables:

    • ssize_t
    • strdup()

It's arguable that with gcc and clang, all of these issues are removed when defining the macro _DEFAULT_SOURCE. However, that effectively sets the C language level to C99, which isn't ANSI C.