mirror of
https://github.com/openssl/openssl.git
synced 2025-01-18 13:44:20 +08:00
7d130f68fc
The turn has come to have crypto/opensslconf.h.in get run through util/dofile.pl. The consequence is that a large number of variables get moved to the %config table. Also, the string variables $openssl_*, which were populated with cpp lines, all being of the form "#define SOMETHING", were converted into ARRAY refs in %config values, containing just the list of macros to be defined. Reviewed-by: Rich Salz <rsalz@openssl.org>
301 lines
8.3 KiB
C
301 lines
8.3 KiB
C
/* opensslconf.h */
|
|
/* WARNING: Generated automatically from opensslconf.h.in by Configure. */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
/* OpenSSL was configured with the following options: */
|
|
{-
|
|
if (@{$config{openssl_sys_defines}}) {
|
|
foreach (@{$config{openssl_sys_defines}}) {
|
|
$OUT .= "#ifndef $_\n";
|
|
$OUT .= "# define $_ 1\n";
|
|
$OUT .= "#endif\n";
|
|
}
|
|
}
|
|
"";
|
|
-}
|
|
#ifndef OPENSSL_DOING_MAKEDEPEND
|
|
|
|
{-
|
|
if (@{$config{openssl_experimental_defines}}) {
|
|
foreach (@{$config{openssl_experimental_defines}}) {
|
|
(my $ex = $_) =~ s/_NO_/_EXPERIMENTAL_/;
|
|
$OUT .= "#ifndef $ex\n";
|
|
$OUT .= "# ifndef $_\n";
|
|
$OUT .= "# define $_\n";
|
|
$OUT .= "# endif\n";
|
|
$OUT .= "#endif\n";
|
|
}
|
|
}
|
|
"";
|
|
-}
|
|
{-
|
|
foreach (@{$config{openssl_api_defines}}) {
|
|
(my $macro, my $value) = $_ =~ /^(.*?)=(.*?)$/;
|
|
$OUT .= "#define OPENSSL_MIN_API $value\n";
|
|
}
|
|
-}
|
|
{-
|
|
if (@{$config{openssl_algorithm_defines}}) {
|
|
foreach (@{$config{openssl_algorithm_defines}}) {
|
|
$OUT .= "#ifndef $_\n";
|
|
$OUT .= "# define $_\n";
|
|
$OUT .= "#endif\n";
|
|
}
|
|
} else {
|
|
" /* no ciphers excluded */\n";
|
|
}
|
|
-}
|
|
|
|
#endif /* OPENSSL_DOING_MAKEDEPEND */
|
|
|
|
{-
|
|
if (@{$config{openssl_thread_defines}}) {
|
|
foreach (@{$config{openssl_thread_defines}}) {
|
|
$OUT .= "#ifndef $_\n";
|
|
$OUT .= "# define $_\n";
|
|
$OUT .= "#endif\n";
|
|
}
|
|
}
|
|
"";
|
|
-}
|
|
{-
|
|
if (@{$config{openssl_other_defines}}) {
|
|
foreach (@{$config{openssl_other_defines}}) {
|
|
$OUT .= "#ifndef $_\n";
|
|
$OUT .= "# define $_\n";
|
|
$OUT .= "#endif\n";
|
|
}
|
|
}
|
|
"";
|
|
-}
|
|
|
|
/* The OPENSSL_NO_* macros are also defined as NO_* if the application
|
|
asks for it. This is a transient feature that is provided for those
|
|
who haven't had the time to do the appropriate changes in their
|
|
applications. */
|
|
#ifdef OPENSSL_ALGORITHM_DEFINES
|
|
{-
|
|
if (@{$config{openssl_algorithm_defines}}) {
|
|
foreach (@{$config{openssl_algorithm_defines}}) {
|
|
(my $ex = $_) =~ s/^OPENSSL_//;
|
|
$OUT .= "# if defined($_) \&\& !defined($ex)\n";
|
|
$OUT .= "# define $ex\n";
|
|
$OUT .= "# endif\n";
|
|
}
|
|
}
|
|
"";
|
|
-}
|
|
#endif
|
|
|
|
{- $target{cpuid_obj} ne "mem_clr.o" ? "#define OPENSSL_CPUID_OBJ" : "" -}
|
|
|
|
/*
|
|
* Applications should use -DOPENSSL_API_COMPAT=<version> to suppress the
|
|
* declarations of functions deprecated in or before <version>. Otherwise, they
|
|
* still won't see them if the library has been built to disable deprecated
|
|
* functions.
|
|
*/
|
|
#if defined(OPENSSL_NO_DEPRECATED)
|
|
# define DECLARE_DEPRECATED(f)
|
|
#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0)
|
|
# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
|
|
#else
|
|
# define DECLARE_DEPRECATED(f) f;
|
|
#endif
|
|
|
|
#ifndef OPENSSL_MIN_API
|
|
#define OPENSSL_MIN_API 0
|
|
#endif
|
|
|
|
#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API
|
|
#undef OPENSSL_API_COMPAT
|
|
#define OPENSSL_API_COMPAT OPENSSL_MIN_API
|
|
#endif
|
|
|
|
#if OPENSSL_API_COMPAT < 0x10100000L
|
|
# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f)
|
|
#else
|
|
# define DEPRECATEDIN_1_1_0(f)
|
|
#endif
|
|
|
|
#if OPENSSL_API_COMPAT < 0x10000000L
|
|
# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f)
|
|
#else
|
|
# define DEPRECATEDIN_1_0_0(f)
|
|
#endif
|
|
|
|
#if OPENSSL_API_COMPAT < 0x00908000L
|
|
# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f)
|
|
#else
|
|
# define DEPRECATEDIN_0_9_8(f)
|
|
#endif
|
|
|
|
/* Generate 80386 code? */
|
|
{- $config{processor} eq "386" ? "#define" : "#undef" -} I386_ONLY
|
|
|
|
#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
|
|
#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
|
|
#define ENGINESDIR {- quotify1($config{enginesdir}) -}
|
|
#define OPENSSLDIR {- quotify1($config{openssldir}) -}
|
|
#endif
|
|
#endif
|
|
|
|
#undef OPENSSL_UNISTD
|
|
#define OPENSSL_UNISTD {- $target{unistd} -}
|
|
|
|
#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
|
|
{- $config{export_var_as_fn} ? "#define OPENSSL_EXPORT_VAR_AS_FUNCTION" : "" -}
|
|
|
|
#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
|
|
#define IDEA_INT {- $config{idea_int} -}
|
|
#endif
|
|
|
|
#if defined(HEADER_MD2_H) && !defined(MD2_INT)
|
|
#define MD2_INT {- $config{md2_int} -}
|
|
#endif
|
|
|
|
#if defined(HEADER_RC2_H) && !defined(RC2_INT)
|
|
/* I need to put in a mod for the alpha - eay */
|
|
#define RC2_INT {- $config{rc2_int} -}
|
|
#endif
|
|
|
|
#if defined(HEADER_RC4_H)
|
|
#if !defined(RC4_INT)
|
|
/* using int types make the structure larger but make the code faster
|
|
* on most boxes I have tested - up to %20 faster. */
|
|
/*
|
|
* I don't know what does "most" mean, but declaring "int" is a must on:
|
|
* - Intel P6 because partial register stalls are very expensive;
|
|
* - elder Alpha because it lacks byte load/store instructions;
|
|
*/
|
|
#define RC4_INT {- $config{rc4_int} -}
|
|
#endif
|
|
#if !defined(RC4_CHUNK)
|
|
/*
|
|
* This enables code handling data aligned at natural CPU word
|
|
* boundary. See crypto/rc4/rc4_enc.c for further details.
|
|
*/
|
|
{-
|
|
$config{rc4_chunk}
|
|
? "#define RC4_CHUNK ".$config{rc4_chunk}
|
|
: "#undef RC4_CHUNK";
|
|
-}
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef OSSL_DES_LONG
|
|
/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
|
|
* %20 speed up (longs are 8 bytes, int's are 4). */
|
|
#ifndef OSSL_DES_LONG
|
|
#define OSSL_DES_LONG {- $config{des_int} -}
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H) && !defined(OPENSSL_SYS_UEFI)
|
|
#define CONFIG_HEADER_BN_H
|
|
{- $config{bn_ll} ? "#define" : "#undef" -} BN_LLONG
|
|
|
|
/* Should we define BN_DIV2W here? */
|
|
|
|
/* Only one for the following should be defined */
|
|
{- $config{b64l} ? "#define" : "#undef" -} SIXTY_FOUR_BIT_LONG
|
|
{- $config{b64} ? "#define" : "#undef" -} SIXTY_FOUR_BIT
|
|
{- $config{b32} ? "#define" : "#undef" -} THIRTY_TWO_BIT
|
|
#endif
|
|
|
|
#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
|
|
#define CONFIG_HEADER_RC4_LOCL_H
|
|
/* if this is defined data[i] is used instead of *data, this is a %20
|
|
* speedup on x86 */
|
|
{- $config{rc4_idx} ? "#define" : "#undef" -} RC4_INDEX
|
|
#endif
|
|
|
|
#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
|
|
#define CONFIG_HEADER_BF_LOCL_H
|
|
{-
|
|
if ($config{bf_ptr} == 0) {
|
|
"#undef BF_PTR";
|
|
} elsif ($config{bf_ptr} == 1) {
|
|
"#define BF_PTR";
|
|
} elsif ($config{bf_ptr} == 2) {
|
|
"#define BF_PTR2";
|
|
}
|
|
-}
|
|
#endif /* HEADER_BF_LOCL_H */
|
|
|
|
#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
|
|
#define CONFIG_HEADER_DES_LOCL_H
|
|
#ifndef DES_DEFAULT_OPTIONS
|
|
/* the following is tweaked from a config script, that is why it is a
|
|
* protected undef/define */
|
|
#ifndef DES_PTR
|
|
{- $config{des_ptr} ? "#define" : "#undef" -} DES_PTR
|
|
#endif
|
|
|
|
/* This helps C compiler generate the correct code for multiple functional
|
|
* units. It reduces register dependancies at the expense of 2 more
|
|
* registers */
|
|
#ifndef DES_RISC1
|
|
{- $config{des_risc1} ? "#define" : "#undef" -} DES_RISC1
|
|
#endif
|
|
|
|
#ifndef DES_RISC2
|
|
{- $config{des_risc2} ? "#define" : "#undef" -} DES_RISC2
|
|
#endif
|
|
|
|
#if defined(DES_RISC1) && defined(DES_RISC2)
|
|
#error YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
|
|
#endif
|
|
|
|
/* Unroll the inner loop, this sometimes helps, sometimes hinders.
|
|
* Very mucy CPU dependant */
|
|
#ifndef DES_UNROLL
|
|
{- $config{des_unroll} ? "#define" : "#undef" -} DES_UNROLL
|
|
#endif
|
|
|
|
/* These default values were supplied by
|
|
* Peter Gutman <pgut001@cs.auckland.ac.nz>
|
|
* They are only used if nothing else has been defined */
|
|
#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
|
|
/* Special defines which change the way the code is built depending on the
|
|
CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
|
|
even newer MIPS CPU's, but at the moment one size fits all for
|
|
optimization options. Older Sparc's work better with only UNROLL, but
|
|
there's no way to tell at compile time what it is you're running on */
|
|
|
|
#if defined(sparc) || defined(__sparc__) /* Newer Sparc's */
|
|
# define DES_PTR
|
|
# define DES_RISC1
|
|
# define DES_UNROLL
|
|
#elif defined( __ultrix ) /* Older MIPS */
|
|
# define DES_PTR
|
|
# define DES_RISC2
|
|
# define DES_UNROLL
|
|
#elif defined( __osf1__ ) /* Alpha */
|
|
# define DES_PTR
|
|
# define DES_RISC2
|
|
#elif defined ( _AIX ) /* RS6000 */
|
|
/* Unknown */
|
|
#elif defined( __hpux ) /* HP-PA */
|
|
/* Unknown */
|
|
#elif defined( __aux ) /* 68K */
|
|
/* Unknown */
|
|
#elif defined( __sgi ) /* Newer MIPS */
|
|
# define DES_PTR
|
|
# define DES_RISC2
|
|
# define DES_UNROLL
|
|
#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
|
|
# define DES_PTR
|
|
# define DES_RISC1
|
|
# define DES_UNROLL
|
|
#endif /* Systems-specific speed defines */
|
|
#endif
|
|
|
|
#endif /* DES_DEFAULT_OPTIONS */
|
|
#endif /* HEADER_DES_LOCL_H */
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|