mirror of https://github.com/openssl/openssl.git
				
				
				
			
		
			
	
	
		
			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. |