mirror of
https://github.com/openssl/openssl.git
synced 2024-11-21 01:15:20 +08:00
34 lines
835 B
Markdown
34 lines
835 B
Markdown
|
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.
|