aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Short <tshort@akamai.com>2016-02-04 11:41:25 -0500
committerRich Salz <rsalz@openssl.org>2016-02-04 12:07:50 -0500
commit52739e40ccc1b16cd966ea204bcfea3cc874fec8 (patch)
treeb63c45d8d798aa5fb95680bd87c3a2e1f6f1c971
parented03c46134b1ebfcbee937c74e7f4517893be1fd (diff)
downloadopenssl-52739e40ccc1b16cd966ea204bcfea3cc874fec8.zip
openssl-52739e40ccc1b16cd966ea204bcfea3cc874fec8.tar.gz
openssl-52739e40ccc1b16cd966ea204bcfea3cc874fec8.tar.bz2
Add option to disable async
Add no-async option to Configure that forces ASYNC_NULL. Related to RT1979 An embedded system or replacement C library (e.g. musl or uClibc) may not support the *context APIs that are needed for async operation. Compiles with musl. Ran unit tests, async tests skipped as expected. Signed-off-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org>
-rwxr-xr-xConfigure3
-rw-r--r--crypto/async/arch/async_posix.h2
-rw-r--r--crypto/async/arch/async_win.h2
-rwxr-xr-xutil/mk1mf.pl3
4 files changed, 7 insertions, 3 deletions
diff --git a/Configure b/Configure
index 77bb60c..56fa31a 100755
--- a/Configure
+++ b/Configure
@@ -227,6 +227,7 @@ my @dtls = qw(dtls1 dtls1_2);
my @disablables = (
"aes",
"asm",
+ "async",
"bf",
"camellia",
"capieng",
@@ -741,7 +742,7 @@ foreach (sort (keys %disabled))
my ($ALGO, $algo);
($ALGO = $algo = $_) =~ tr/[\-a-z]/[_A-Z]/;
- if (/^asm$/ || /^err$/ || /^hw$/ || /^hw-/)
+ if (/^asm$/ || /^err$/ || /^hw$/ || /^hw-/ || /^async$/)
{
push @{$config{openssl_other_defines}}, "OPENSSL_NO_$ALGO";
print " OPENSSL_NO_$ALGO";
diff --git a/crypto/async/arch/async_posix.h b/crypto/async/arch/async_posix.h
index 6cc313e..85d033f 100644
--- a/crypto/async/arch/async_posix.h
+++ b/crypto/async/arch/async_posix.h
@@ -53,7 +53,7 @@
#define OPENSSL_ASYNC_ARCH_ASYNC_POSIX_H
#include <openssl/e_os2.h>
-#if (defined(OPENSSL_SYS_UNIX) || defined(OPENSSL_SYS_CYGWIN)) && defined(OPENSSL_THREADS)
+#if (defined(OPENSSL_SYS_UNIX) || defined(OPENSSL_SYS_CYGWIN)) && defined(OPENSSL_THREADS) && !defined(OPENSSL_NO_ASYNC)
# include <unistd.h>
diff --git a/crypto/async/arch/async_win.h b/crypto/async/arch/async_win.h
index d2054bf..fa345cb 100644
--- a/crypto/async/arch/async_win.h
+++ b/crypto/async/arch/async_win.h
@@ -54,7 +54,7 @@
* This is the same detection used in cryptlib to set up the thread local
* storage that we depend on, so just copy that
*/
-#if defined(_WIN32)
+#if defined(_WIN32) && !defined(OPENSSL_NO_ASYNC)
#include <openssl/async.h>
# define ASYNC_WIN
# define ASYNC_ARCH
diff --git a/util/mk1mf.pl b/util/mk1mf.pl
index 1f9bdf4..ed1d0e1 100755
--- a/util/mk1mf.pl
+++ b/util/mk1mf.pl
@@ -142,6 +142,7 @@ and [options] can be one of
no-engine - No engine
no-egd - No EGD
no-hw - No hw
+ no-async - No Async (use NULL)
nasm - Use NASM for x86 asm
nw-nasm - Use NASM x86 asm for NetWare
nw-mwasm - Use Metrowerks x86 asm for NetWare
@@ -296,6 +297,7 @@ $cflags.=" -DOPENSSL_NO_EC" if $no_ec;
$cflags.=" -DOPENSSL_NO_GOST" if $no_gost;
$cflags.=" -DOPENSSL_NO_ENGINE" if $no_engine;
$cflags.=" -DOPENSSL_NO_HW" if $no_hw;
+$cflags.=" -DOPENSSL_NO_ASYNC" if $no_async;
$cflags.=" -DOPENSSL_FIPS" if $fips;
$cflags.=" -DOPENSSL_NO_JPAKE" if $no_jpake;
$cflags.=" -DOPENSSL_NO_EC2M" if $no_ec2m;
@@ -1411,6 +1413,7 @@ sub read_options
"no-engine" => \$no_engine,
"no-egd" => 0,
"no-hw" => \$no_hw,
+ "no-async" => \$no_async,
"just-ssl" =>
[\$no_rc2, \$no_idea, \$no_des, \$no_bf, \$no_cast,
\$no_md2, \$no_mdc2, \$no_dsa, \$no_dh,