openssl1.1/openssl-alt-e2k-makecontext.patch

31 lines
973 B
Diff
Raw Permalink Normal View History

Update from 1.0 to 1.1.1g: - new major version - dropped compat libs, seems that there is no more need to be compatible with Red Hat naming (not sure, TODO: check it) - unified %%docs to easify reading diffs of them - dropped all patches the aim of which ones is not clear to me and there is not description - trying to be buildable on e2k for future - dropped requirements of GOST engine to eventually break this dependency loop, we can preinstall gost-engine where needed by other ways - GOST engine is no more built here in OpenSSL - replaced removing of some manuals with renaming them - now shipping HTML docs (mans) - switched to upstream location of engines (it now has %%major in it and is OK for us) - moved everything from /lib to /usr/lib as preparation for merging everything into /usr - sorted all configure options to improve readability of diffs in the future - introduced new macros alike LibreSSL package - added macro %%openssl_engines_dir for reusing in e.g. openssl-gost-engine - added symlink openssl1.1 -> openssl, because I am thinking of keeping /usr/bin/openssl1.0 in the openssl1.0 compat package, so adding a similar symlink here for consistency - explicit file provide /usr/bin/openssl is not needed because it is put automatically by RPM 4 - versionized some provides - TODO: 2 tests fail for now... Maybe Perl is broken? Based on: - https://abf.io/import/openssl/commit/3591a331152393977000ef3d734e3f1301ecaacf - ALT Linux spec https://packages.altlinux.org/ru/sisyphus/specfiles/openssl1.1 - OpenMandriva spec https://github.com/OpenMandrivaAssociation/openssl/blob/93f1264/openssl.spec
2020-04-22 23:11:52 +03:00
diff --git a/openssl/crypto/async/arch/async_posix.c b/openssl/crypto/async/arch/async_posix.c
index 02c342d..a11f451 100644
--- a/crypto/async/arch/async_posix.c
+++ b/crypto/async/arch/async_posix.c
@@ -40,8 +40,15 @@ int async_fibre_makecontext(async_fibre *fibre)
if (fibre->fibre.uc_stack.ss_sp != NULL) {
fibre->fibre.uc_stack.ss_size = STACKSIZE;
fibre->fibre.uc_link = NULL;
+#ifndef __e2k__
makecontext(&fibre->fibre, async_start_func, 0);
return 1;
+#else
+ if (makecontext_e2k(&fibre->fibre, async_start_func, 0))
+ return 1;
+ else
+ return 0;
+#endif
}
} else {
fibre->fibre.uc_stack.ss_sp = NULL;
@@ -53,6 +60,9 @@ void async_fibre_free(async_fibre *fibre)
{
OPENSSL_free(fibre->fibre.uc_stack.ss_sp);
fibre->fibre.uc_stack.ss_sp = NULL;
+#ifdef __e2k__
+ freecontext_e2k(&fibre->fibre);
+#endif
}
#endif