Use USE_SWAPCONTEXT on IA64.
authorSebastian Andrzej Siewior <sebastian@breakpoint.cc>
Tue, 28 Dec 2021 22:05:32 +0000 (23:05 +0100)
committerTomas Mraz <tomas@openssl.org>
Tue, 4 Jan 2022 11:14:19 +0000 (12:14 +0100)
commitd26b3766a0a35668ee62b839a62acbdcd9ff2a98
treed9e6bbad99613e785b0685cb492fa7b914fd448c
parentee8a61e158c42c327c3303101083422b9a7cc504
Use USE_SWAPCONTEXT on IA64.

On IA64 the use of setjmp()/ longjmp() does not properly save the
state of the register stack engine (RSE) and requires extra care.
The use of it in the async interface led to a failure in the
test_async.t test since its introduction in 1.1.0 series.

Instead of properly adding the needed assembly bits here use the
swapcontext() function which properly saves the whole context.

Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17370)
crypto/async/arch/async_posix.h