include/openssl: don't include <windows.h> in public headers. If application uses any of Windows-specific interfaces, make it application developer's respondibility to include <windows.h>. Rationale is that <windows.h> is quite "toxic" and is sensitive to inclusion order (most notably in relation to <winsock2.h>). It's only natural to give complete control to the application developer. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org>
diff --git a/util/mkdef.pl b/util/mkdef.pl index c2fbfe7..fa37ccb 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl
@@ -73,7 +73,7 @@ my $safe_stack_def = 0; my @known_platforms = ( "__FreeBSD__", "PERL5", - "EXPORT_VAR_AS_FUNCTION", "ZLIB" + "EXPORT_VAR_AS_FUNCTION", "ZLIB", "_WIN32" ); my @known_ossl_platforms = ( "VMS", "WIN32", "WINNT", "OS2" ); my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF", @@ -1121,6 +1121,7 @@ if ($keyword eq "VMSNonVAX" && $VMSNonVAX) { return 1; } if ($keyword eq "VMS" && $VMS) { return 1; } if ($keyword eq "WIN32" && $W32) { return 1; } + if ($keyword eq "_WIN32" && $W32) { return 1; } if ($keyword eq "WINNT" && $NT) { return 1; } # Special platforms: # EXPORT_VAR_AS_FUNCTION means that global variables