summaryrefslogtreecommitdiff
path: root/sdk/recipes/patches/openssl
diff options
context:
space:
mode:
Diffstat (limited to 'sdk/recipes/patches/openssl')
-rw-r--r--sdk/recipes/patches/openssl/Configurations-50-amigaos.conf.p34
-rw-r--r--sdk/recipes/patches/openssl/Configurations-50-riscos.conf.p17
-rw-r--r--sdk/recipes/patches/openssl/Configurations-50-windows.conf.p28
-rw-r--r--sdk/recipes/patches/openssl/Configure.p32
-rw-r--r--sdk/recipes/patches/openssl/apps.speed.c.p28
-rw-r--r--sdk/recipes/patches/openssl/aps.opt.c.p14
-rw-r--r--sdk/recipes/patches/openssl/bio_lcl.h.p11
-rw-r--r--sdk/recipes/patches/openssl/crypto.pkcs7.bio_pk7.c.p15
-rw-r--r--sdk/recipes/patches/openssl/crypto.rand.rand_unix.c.p11
-rw-r--r--sdk/recipes/patches/openssl/m68k-atari-mint/crypto.bn.Makefile.p12
-rw-r--r--sdk/recipes/patches/openssl/m68k-atari-mint/crypto.bn.bn_div.c.p25
-rw-r--r--sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.bio.b_sock2.c.p36
-rw-r--r--sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.bn.bn_div.c.p25
-rw-r--r--sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.include.internal.md32_common.h.p36
-rw-r--r--sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.rand.build.info.p9
-rw-r--r--sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.ui.ui_openssl.c.p21
-rw-r--r--sdk/recipes/patches/openssl/m68k-unknown-amigaos/include.openssl.e_os2.h.p11
-rw-r--r--sdk/recipes/patches/openssl/m68k-unknown-amigaos/no-term.p24
-rw-r--r--sdk/recipes/patches/openssl/mem_sec.c.p11
-rw-r--r--sdk/recipes/patches/openssl/ppc-amigaos/crypto.bio_b_addr.c.p11
-rw-r--r--sdk/recipes/patches/openssl/ppc-amigaos/crypto.ppccap.c.p36
-rw-r--r--sdk/recipes/patches/openssl/ppc-amigaos/crypto.rand.build.info.p9
-rw-r--r--sdk/recipes/patches/openssl/ppc-amigaos/include.openssl.e_os2.h.p11
-rw-r--r--sdk/recipes/patches/openssl/ppc-amigaos/memory.h.p22
-rw-r--r--sdk/recipes/patches/openssl/ppc-amigaos/no-alarm.p13
-rw-r--r--sdk/recipes/patches/openssl/ppc-amigaos/no-term.p24
26 files changed, 420 insertions, 106 deletions
diff --git a/sdk/recipes/patches/openssl/Configurations-50-amigaos.conf.p b/sdk/recipes/patches/openssl/Configurations-50-amigaos.conf.p
new file mode 100644
index 0000000..3012ad2
--- /dev/null
+++ b/sdk/recipes/patches/openssl/Configurations-50-amigaos.conf.p
@@ -0,0 +1,34 @@
+--- /dev/null 2017-10-10 15:19:45.611896396 +0100
++++ Configurations/50-amigaos.conf 2017-10-17 15:42:25.304921197 +0100
+@@ -0,0 +1,31 @@
++%targets = (
++
++ "ppc-amigaos" => {
++ inherit_from => [ "BASE_unix", asm("ppc32_asm") ],
++ cc => "ppc-amigaos-gcc",
++ cflags => picker(default => "-DB_ENDIAN -DTERMIOS -DNO_SYS_UN_H -DNO_SYSLOG",
++ debug => "-O0 -g",
++ release => "-O3 -fomit-frame-pointer",
++ threads("-D_REENTRANT")),
++ thread_scheme => "(unknown)",
++ perlasm_scheme => "linux32",
++ sys_id => "AMIGAOS4",
++ bn_ops => "THIRTY_TWO_BIT BN_LLONG RC4_CHAR",
++ ranlib => "ppc-amigaos-ranlib",
++ },
++
++ "m68k-unknown-amigaos" => {
++ inherit_from => [ "BASE_unix" ],
++ cc => "m68k-unknown-amigaos-gcc",
++ cflags => picker(default => "-DB_ENDIAN -DTERMIOS -DNO_SYS_UN_H -DNO_SYS_PARAM_H -DNO_SYSLOG -m68020 -std=gnu99",
++ debug => "-O0 -g",
++ release => "-O3 -fomit-frame-pointer",
++ threads("-D_REENTRANT")),
++ thread_scheme => "(unknown)",
++ ex_libs => add("-lm -lnet"),
++ sys_id => "AMIGAOS3",
++ bn_ops => "THIRTY_TWO_BIT BN_LLONG",
++ bn_asm_src => "asm/bn_m68k.s",
++ ranlib => "m68k-unknown-amigaos-ranlib",
++ },
++);
diff --git a/sdk/recipes/patches/openssl/Configurations-50-riscos.conf.p b/sdk/recipes/patches/openssl/Configurations-50-riscos.conf.p
new file mode 100644
index 0000000..128d400
--- /dev/null
+++ b/sdk/recipes/patches/openssl/Configurations-50-riscos.conf.p
@@ -0,0 +1,17 @@
+--- /dev/null 2017-10-10 15:19:45.611896396 +0100
++++ Configurations/50-riscos.conf 2017-10-17 15:42:25.304921197 +0100
+@@ -0,0 +1,14 @@
++%targets = (
++
++ "arm-unknown-riscos" => {
++ inherit_from => [ "BASE_unix" ],
++ cc => "arm-unknown-riscos-gcc",
++ cflags => picker(default => "-DL_ENDIAN -DTERMIOS -DNO_SYS_UN_H",
++ debug => "-O0 -g",
++ release => "-O3 ",
++ threads("-D_REENTRANT")),
++ thread_scheme => "(unknown)",
++ sys_id => "RISCOS",
++ bn_ops => "BN_LLONG",
++ },
++);
diff --git a/sdk/recipes/patches/openssl/Configurations-50-windows.conf.p b/sdk/recipes/patches/openssl/Configurations-50-windows.conf.p
new file mode 100644
index 0000000..c492c01
--- /dev/null
+++ b/sdk/recipes/patches/openssl/Configurations-50-windows.conf.p
@@ -0,0 +1,28 @@
+--- /dev/null 2017-10-10 15:19:45.611896396 +0100
++++ Configurations/50-windows.conf 2017-10-17 15:42:25.304921197 +0100
+@@ -0,0 +1,25 @@
++%targets = (
++
++ "i686-w64-mingw32" => {
++ inherit_from => [ "BASE_unix", asm("x86_asm"),
++ sub { $disabled{shared} ? () : "x86_uplink" } ],
++ cc => "gcc",
++ cflags => combine(picker(default => "-DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE -m32 -Wall",
++ debug => "-g -O0",
++ release => "-O3 -fomit-frame-pointer"),
++ threads("-D_MT")),
++ sys_id => "MINGW32",
++ ex_libs => add("-lws2_32 -lgdi32 -lcrypt32"),
++ bn_ops => "BN_LLONG EXPORT_VAR_AS_FN",
++ thread_scheme => "winthreads",
++ perlasm_scheme => "coff",
++ dso_scheme => "win32",
++ shared_target => "mingw-shared",
++ shared_cflag => add("-D_WINDLL"),
++ shared_ldflag => "-static-libgcc",
++ shared_rcflag => "--target=pe-i386",
++ shared_extension => ".dll",
++ multilib => "",
++ apps_aux_src => add("win32_init.c"),
++ },
++);
diff --git a/sdk/recipes/patches/openssl/Configure.p b/sdk/recipes/patches/openssl/Configure.p
index 9d4ba20..c26e08b 100644
--- a/sdk/recipes/patches/openssl/Configure.p
+++ b/sdk/recipes/patches/openssl/Configure.p
@@ -1,24 +1,10 @@
---- Configure.old 2010-12-29 02:43:14.000000000 +0000
-+++ Configure 2010-12-29 02:45:29.000000000 +0000
-@@ -440,6 +440,13 @@
- "beos-x86-r5", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -mcpu=pentium -Wall::-D_REENTRANT:BEOS:-lbe -lnet:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:beos:beos-shared:-fPIC -DPIC:-shared:.so",
- "beos-x86-bone", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -mcpu=pentium -Wall::-D_REENTRANT:BEOS:-lbe -lbind -lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:beos:beos-shared:-fPIC:-shared:.so",
+--- Configure.orig 2017-10-17 14:53:18.369801491 +0100
++++ Configure 2017-10-17 15:11:04.312242542 +0100
+@@ -946,6 +946,7 @@
+ $target{exe_extension}=".exe" if ($config{target} eq "DJGPP"
+ || $config{target} =~ /^(?:Cygwin|mingw)/);
+ $target{exe_extension}=".pm" if ($config{target} =~ /vos/);
++$target{exe_extension}=",e1f" if ($config{target} eq "arm-unknown-riscos");
-+"arm-unknown-riscos","arm-unknown-riscos-gcc:-DL_ENDIAN -DTERMIOS -DNO_SYS_UN_H -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG DES_RISC1::::::::::::::::::::echo",
-+"m68k-atari-mint","m68k-atari-mint-gcc:-DB_ENDIAN -DTERMIOS -DNO_SYSLOG -DNO_SYS_UN_H -DOPENSSL_USE_IPV6=0 -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG DES_RISC1::::::::::::::::::::m68k-atari-mint-ranlib",
-+"m5475-atari-mint","m5475-atari-mint-gcc:-DB_ENDIAN -DTERMIOS -DNO_SYSLOG -DNO_SYS_UN_H -DOPENSSL_USE_IPV6=0 -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG DES_RISC1::::::::::::::::::::m5475-atari-mint-ranlib",
-+"m68k-unknown-amigaos","m68k-unknown-amigaos-gcc:-DB_ENDIAN -DOPENSSL_SYS_AMIGAOS3 -DNO_SYSLOG -DHAVE_FORK=0 -DNO_SYS_PARAM_H -DNO_SYS_UN_H -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-lnet -lm:BN_LLONG DES_RISC1::::::::::::::::::::m68k-unknown-amigaos-ranlib",
-+"ppc-amigaos","ppc-amigaos-gcc:-DB_ENDIAN -DOPENSSL_SYS_AMIGAOS4 -DNO_SYSLOG -DHAVE_FORK=0 -DNO_SYS_PARAM_H -DNO_SYS_UN_H -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG DES_RISC1::::::::::::::::::::ppc-amigaos-ranlib",
-+"i686-w64-mingw32", "gcc:-DL_ENDIAN -DWIN32_LEAN_AND_MEAN -fomit-frame-pointer -O3 -march=i486 -Wall::-D_MT:MINGW32:-lws2_32 -lgdi32 -lcrypt32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_asm}:coff:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-mno-cygwin:.dll.a",
-+
- #### SCO/Caldera targets.
- #
- # Originally we had like unixware-*, unixware-*-pentium, unixware-*-p6, etc.
-@@ -1123,6 +1130,7 @@
- my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds;
-
- $exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target =~ /^mingw/);
-+$exe_ext=",e1f" if ($target eq "arm-unknown-riscos");
- $exe_ext=".nlm" if ($target =~ /netware/);
- $exe_ext=".pm" if ($target =~ /vos/);
- $openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
+ ($target{shared_extension_simple}=$target{shared_extension})
+ =~ s|\.\$\(SHLIB_MAJOR\)\.\$\(SHLIB_MINOR\)||;
diff --git a/sdk/recipes/patches/openssl/apps.speed.c.p b/sdk/recipes/patches/openssl/apps.speed.c.p
new file mode 100644
index 0000000..88ae1c3
--- /dev/null
+++ b/sdk/recipes/patches/openssl/apps.speed.c.p
@@ -0,0 +1,28 @@
+--- apps/speed.c.orig 2017-11-22 08:07:53.851790744 +0000
++++ apps/speed.c 2017-11-22 08:15:49.608768064 +0000
+@@ -111,6 +111,12 @@
+ #endif
+ #include <openssl/modes.h>
+
++
++#if defined(OPENSSL_SYS_AMIGAOS3) || defined(OPENSSL_SYS_AMIGAOS4)
++# define HAVE_FORK 0
++# undef SIGALRM
++#endif
++
+ #ifndef HAVE_FORK
+ # if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS)
+ # define HAVE_FORK 0
+--- apps/speed.c.orig 2017-11-22 08:33:02.137445746 +0000
++++ apps/speed.c 2017-11-22 08:36:00.833790589 +0000
+@@ -345,8 +345,10 @@
+ static double Time_F(int s)
+ {
+ double ret = app_tminterval(s, usertime);
++ #ifdef SIGALRM
+ if (s == STOP)
+ alarm(0);
++ #endif
+ return ret;
+ }
+ #endif
diff --git a/sdk/recipes/patches/openssl/aps.opt.c.p b/sdk/recipes/patches/openssl/aps.opt.c.p
new file mode 100644
index 0000000..531cf76
--- /dev/null
+++ b/sdk/recipes/patches/openssl/aps.opt.c.p
@@ -0,0 +1,14 @@
+--- apps/opt.c.orig 2017-11-22 08:42:07.605882648 +0000
++++ apps/opt.c 2017-11-22 08:48:31.712843519 +0000
+@@ -353,6 +353,11 @@
+ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && \
+ defined(INTMAX_MAX) && defined(UINTMAX_MAX)
+
++#if defined(OPENSSL_SYS_AMIGAOS3) || defined(OPENSSL_SYS_AMIGAOS4)
++# define strtoimax strtol
++# define strtoumax strtoul
++#endif
++
+ /* Parse an intmax_t, put it into *result; return 0 on failure, else 1. */
+ int opt_imax(const char *value, intmax_t *result)
+ {
diff --git a/sdk/recipes/patches/openssl/bio_lcl.h.p b/sdk/recipes/patches/openssl/bio_lcl.h.p
new file mode 100644
index 0000000..feae76f
--- /dev/null
+++ b/sdk/recipes/patches/openssl/bio_lcl.h.p
@@ -0,0 +1,11 @@
+--- crypto/bio/bio_lcl.h.orig 2017-10-17 16:19:36.908150231 +0100
++++ crypto/bio/bio_lcl.h 2017-10-17 16:19:52.056631064 +0100
+@@ -36,7 +36,7 @@
+ /*
+ * Undefine AF_UNIX on systems that define it but don't support it.
+ */
+-# if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_VMS)
++# if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_RISCOS) || defined(OPENSSL_SYS_AMIGAOS3) || defined(OPENSSL_SYS_AMIGAOS4)
+ # undef AF_UNIX
+ # endif
+
diff --git a/sdk/recipes/patches/openssl/crypto.pkcs7.bio_pk7.c.p b/sdk/recipes/patches/openssl/crypto.pkcs7.bio_pk7.c.p
new file mode 100644
index 0000000..ac43e2d
--- /dev/null
+++ b/sdk/recipes/patches/openssl/crypto.pkcs7.bio_pk7.c.p
@@ -0,0 +1,15 @@
+--- crypto/pkcs7/bio_pk7.c.orig 2017-11-22 07:58:17.501346816 +0000
++++ crypto/pkcs7/bio_pk7.c 2017-11-22 08:00:09.130073671 +0000
+@@ -12,7 +12,11 @@
+ #include <openssl/bio.h>
+
+ #if !defined(OPENSSL_SYS_VXWORKS)
+-# include <memory.h>
++# if !defined(OPENSSL_SYS_AMIGAOS3) && !defined(OPENSSL_SYS_AMIGAOS4)
++# include <memory.h>
++# else
++# include <string.h>
++# endif
+ #endif
+ #include <stdio.h>
+
diff --git a/sdk/recipes/patches/openssl/crypto.rand.rand_unix.c.p b/sdk/recipes/patches/openssl/crypto.rand.rand_unix.c.p
new file mode 100644
index 0000000..a4513f2
--- /dev/null
+++ b/sdk/recipes/patches/openssl/crypto.rand.rand_unix.c.p
@@ -0,0 +1,11 @@
+--- crypto/rand/rand_unix.c.orig 2017-11-22 11:25:03.096636507 +0000
++++ crypto/rand/rand_unix.c 2017-11-22 11:25:52.649406308 +0000
+@@ -15,7 +15,7 @@
+ #include <openssl/rand.h>
+ #include "rand_lcl.h"
+
+-#if !(defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI))
++#if !(defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI) || defined(OPENSSL_SYS_AMIGAOS3) || defined(OPENSSL_SYS_AMIGAOS4))
+
+ # include <sys/types.h>
+ # include <sys/time.h>
diff --git a/sdk/recipes/patches/openssl/m68k-atari-mint/crypto.bn.Makefile.p b/sdk/recipes/patches/openssl/m68k-atari-mint/crypto.bn.Makefile.p
new file mode 100644
index 0000000..8d3bfc6
--- /dev/null
+++ b/sdk/recipes/patches/openssl/m68k-atari-mint/crypto.bn.Makefile.p
@@ -0,0 +1,12 @@
+--- crypto/bn/Makefile 2017-01-26 13:22:03.000000000 +0000
++++ crypto/bn/Makefile 2017-02-11 15:24:31.133017711 +0000
+@@ -60,6 +60,9 @@ lib: $(LIBOBJ)
+ $(RANLIB) $(LIB) || echo Never mind.
+ @touch lib
+
++bn_m68k.o: asm/bn_m68k.s
++ $(CC) $(CFLAGS) -c -o $@ asm/bn_m68k.s
++
+ bn-586.s: asm/bn-586.pl ../perlasm/x86asm.pl
+ $(PERL) asm/bn-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+ co-586.s: asm/co-586.pl ../perlasm/x86asm.pl
diff --git a/sdk/recipes/patches/openssl/m68k-atari-mint/crypto.bn.bn_div.c.p b/sdk/recipes/patches/openssl/m68k-atari-mint/crypto.bn.bn_div.c.p
new file mode 100644
index 0000000..0d5492f
--- /dev/null
+++ b/sdk/recipes/patches/openssl/m68k-atari-mint/crypto.bn.bn_div.c.p
@@ -0,0 +1,25 @@
+--- crypto/bn/bn_div.c 2017-01-26 13:22:03.000000000 +0000
++++ crypto/bn/bn_div.c 2017-02-11 16:06:29.437010335 +0000
+@@ -175,6 +175,22 @@ int BN_div(BIGNUM *dv, BIGNUM *rem, cons
+ q; \
+ })
+ # define REMAINDER_IS_ALREADY_CALCULATED
++# elif defined(__mc68020__)
++ /* Same rationale as for i386. On the 68020-60/CPU32 the divu
++ * instruction will take a 64 bit dividend in a register pair
++ * and overwrite that pair with the remainder:quotient.
++ * Howard Chu
++ */
++# undef bn_div_words
++# define bn_div_words(n0,n1,d0) \
++ ({ asm volatile ( \
++ "divu.l %4,%2:%3" \
++ : "=d"(rem), "=d"(q) \
++ : "0"(n0), "1"(n1), "d"(d0) \
++ : "cc"); \
++ q; \
++ })
++# define REMAINDER_IS_ALREADY_CALCULATED
+ # endif /* __<cpu> */
+ # endif /* __GNUC__ */
+ # endif /* OPENSSL_NO_ASM */
diff --git a/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.bio.b_sock2.c.p b/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.bio.b_sock2.c.p
new file mode 100644
index 0000000..1d506af
--- /dev/null
+++ b/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.bio.b_sock2.c.p
@@ -0,0 +1,36 @@
+--- crypto/bio/b_sock2.c.orig 2017-11-23 12:39:17.912640213 +0000
++++ crypto/bio/b_sock2.c 2017-11-23 12:41:56.350294762 +0000
+@@ -94,6 +94,7 @@
+ }
+ }
+
++#if defined(TCP_NODELAY)
+ if (options & BIO_SOCK_NODELAY) {
+ if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)) != 0) {
+ SYSerr(SYS_F_SETSOCKOPT, get_last_socket_error());
+@@ -101,6 +102,7 @@
+ return 0;
+ }
+ }
++#endif
+
+ if (connect(sock, BIO_ADDR_sockaddr(addr),
+ BIO_ADDR_sockaddr_size(addr)) == -1) {
+--- crypto/bio/b_sock2.c.orig 2017-11-23 12:43:56.318461652 +0000
++++ crypto/bio/b_sock2.c 2017-11-23 12:44:36.139861658 +0000
+@@ -193,6 +193,7 @@
+ }
+ }
+
++#if defined(TCP_NODELAY)
+ if (options & BIO_SOCK_NODELAY) {
+ if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)) != 0) {
+ SYSerr(SYS_F_SETSOCKOPT, get_last_socket_error());
+@@ -200,6 +201,7 @@
+ return 0;
+ }
+ }
++#endif
+
+ # ifdef IPV6_V6ONLY
+ if ((options & BIO_SOCK_V6_ONLY) && BIO_ADDR_family(addr) == AF_INET6) {
diff --git a/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.bn.bn_div.c.p b/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.bn.bn_div.c.p
new file mode 100644
index 0000000..0d5492f
--- /dev/null
+++ b/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.bn.bn_div.c.p
@@ -0,0 +1,25 @@
+--- crypto/bn/bn_div.c 2017-01-26 13:22:03.000000000 +0000
++++ crypto/bn/bn_div.c 2017-02-11 16:06:29.437010335 +0000
+@@ -175,6 +175,22 @@ int BN_div(BIGNUM *dv, BIGNUM *rem, cons
+ q; \
+ })
+ # define REMAINDER_IS_ALREADY_CALCULATED
++# elif defined(__mc68020__)
++ /* Same rationale as for i386. On the 68020-60/CPU32 the divu
++ * instruction will take a 64 bit dividend in a register pair
++ * and overwrite that pair with the remainder:quotient.
++ * Howard Chu
++ */
++# undef bn_div_words
++# define bn_div_words(n0,n1,d0) \
++ ({ asm volatile ( \
++ "divu.l %4,%2:%3" \
++ : "=d"(rem), "=d"(q) \
++ : "0"(n0), "1"(n1), "d"(d0) \
++ : "cc"); \
++ q; \
++ })
++# define REMAINDER_IS_ALREADY_CALCULATED
+ # endif /* __<cpu> */
+ # endif /* __GNUC__ */
+ # endif /* OPENSSL_NO_ASM */
diff --git a/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.include.internal.md32_common.h.p b/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.include.internal.md32_common.h.p
new file mode 100644
index 0000000..7447d54
--- /dev/null
+++ b/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.include.internal.md32_common.h.p
@@ -0,0 +1,36 @@
+--- crypto/include/internal/md32_common.h 2017-11-02 14:29:03.000000000 +0000
++++ crypto/include/internal/md32_common.h 2018-07-23 20:12:11.228066913 +0100
+@@ -182,6 +182,9 @@
+ # define HOST_l2c(l,c) (*((unsigned int *)(c))=(l), (c)+=4, (l))
+ # endif
+ # endif
++# elif defined(__mc68020)
++# define HOST_c2l(c,l) ({ asm volatile ("movel %0@+,%1" : "=a"(c), "=d"(l) : "0"(c)); })
++# define HOST_l2c(l,c) ({ asm volatile ("movel %1,%0@+" : "=a"(c) : "d"(l), "0"(c)); })
+ # endif
+ # endif
+ # if defined(__s390__) || defined(__s390x__)
+@@ -215,6 +218,22 @@
+ # define HOST_l2c(l,c) ({ asm ("strv %1,%0" \
+ :"=m"(*(unsigned int *)(c)) :"d"(l));\
+ (c)+=4; (l); })
++# elif defined(__mc68020)
++# define HOST_c2l(c,l) ({ unsigned int r; \
++ asm volatile ("movel %1@+,%0\n" \
++ "rorw #8,%0\n" \
++ "swap %0\n" \
++ "rorw #8,%0\n" \
++ : "=d"(r), "=a"(c) \
++ : "1"(c)); \
++ (l)=r; })
++# define HOST_l2c(l,c) ({ unsigned int r=(l); \
++ asm volatile ("rorw #8,%0\n" \
++ "swap %0\n" \
++ "rorw #8,%0\n" \
++ "movel %0,%1@+\n" \
++ : "=d"(r), "=a"(c) \
++ : "0"(r), "1"(c)); })
+ # endif
+ # endif
+ # if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
+
diff --git a/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.rand.build.info.p b/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.rand.build.info.p
new file mode 100644
index 0000000..58b672f
--- /dev/null
+++ b/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.rand.build.info.p
@@ -0,0 +1,9 @@
+--- crypto/rand/build.info.orig 2017-11-22 11:36:06.585363219 +0000
++++ crypto/rand/build.info 2017-11-22 11:36:39.267232034 +0000
+@@ -1,4 +1,4 @@
+ LIBS=../../libcrypto
+ SOURCE[../../libcrypto]=\
+- md_rand.c randfile.c rand_lib.c rand_err.c rand_egd.c \
+- rand_win.c rand_unix.c rand_vms.c
++ md_rand.c randfile.c rand_lib.c rand_err.c rand_amiga.c \
++ rand_egd.c rand_win.c rand_unix.c rand_vms.c
diff --git a/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.ui.ui_openssl.c.p b/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.ui.ui_openssl.c.p
new file mode 100644
index 0000000..0448499
--- /dev/null
+++ b/sdk/recipes/patches/openssl/m68k-unknown-amigaos/crypto.ui.ui_openssl.c.p
@@ -0,0 +1,21 @@
+--- crypto/ui/ui_openssl.c.orig 2017-11-23 13:22:15.760078583 +0000
++++ crypto/ui/ui_openssl.c 2017-11-23 13:21:40.534382076 +0000
+@@ -99,6 +99,18 @@
+
+ #endif
+
++#if defined(OPENSSL_SYS_AMIGAOS3)
++#undef TERMIOS
++#undef TERMIO
++#undef SGTTY
++struct termios { int foo; };
++# define TTY_STRUCT struct termios
++# define TTY_FLAGS foo
++# define TTY_get(tty,data) /* tcgetattr(tty,data) */ -1
++# define TTY_set(tty,data) /* tcsetattr(tty,TCSANOW,data) */ 0
++# define ECHO 0
++#endif
++
+ #ifdef TERMIOS
+ # include <termios.h>
+ # define TTY_STRUCT struct termios
diff --git a/sdk/recipes/patches/openssl/m68k-unknown-amigaos/include.openssl.e_os2.h.p b/sdk/recipes/patches/openssl/m68k-unknown-amigaos/include.openssl.e_os2.h.p
new file mode 100644
index 0000000..6ea1ec8
--- /dev/null
+++ b/sdk/recipes/patches/openssl/m68k-unknown-amigaos/include.openssl.e_os2.h.p
@@ -0,0 +1,11 @@
+--- include/openssl/e_os2.h.orig 2017-11-21 23:09:39.684814614 +0000
++++ include/openssl/e_os2.h 2017-11-21 23:10:32.501369938 +0000
+@@ -223,6 +223,8 @@
+ # define OSSL_SSIZE_MAX SSIZE_MAX
+ # elif defined(_POSIX_SSIZE_MAX)
+ # define OSSL_SSIZE_MAX _POSIX_SSIZE_MAX
++# else
++# define OSSL_SSIZE_MAX INT_MAX
+ # endif
+ # endif
+
diff --git a/sdk/recipes/patches/openssl/m68k-unknown-amigaos/no-term.p b/sdk/recipes/patches/openssl/m68k-unknown-amigaos/no-term.p
deleted file mode 100644
index 890cef3..0000000
--- a/sdk/recipes/patches/openssl/m68k-unknown-amigaos/no-term.p
+++ /dev/null
@@ -1,24 +0,0 @@
---- crypto/ui/ui_openssl.c.orig 2011-03-08 22:37:51.000000000 +0000
-+++ crypto/ui/ui_openssl.c 2011-03-08 22:39:00.000000000 +0000
-@@ -218,6 +218,12 @@
-
- #endif
-
-+#if defined(OPENSSL_SYS_AMIGAOS3)
-+#undef TERMIOS
-+#undef TERMIO
-+#undef SGTTY
-+#endif
-+
- #ifdef TERMIOS
- # include <termios.h>
- # define TTY_STRUCT struct termios
-@@ -266,7 +272,7 @@
- typedef int sig_atomic_t;
- #endif
-
--#if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) || defined(MAC_OS_GUSI_SOURCE) || defined(OPENSSL_SYS_NETWARE)
-+#if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) || defined(MAC_OS_GUSI_SOURCE) || defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_AMIGAOS3)
- /*
- * This one needs work. As a matter of fact the code is unoperational
- * and this is only a trick to get it compiled.
diff --git a/sdk/recipes/patches/openssl/mem_sec.c.p b/sdk/recipes/patches/openssl/mem_sec.c.p
new file mode 100644
index 0000000..156cc93
--- /dev/null
+++ b/sdk/recipes/patches/openssl/mem_sec.c.p
@@ -0,0 +1,11 @@
+--- crypto/mem_sec.c.orig 2017-10-17 16:46:24.923285526 +0100
++++ crypto/mem_sec.c 2017-10-17 16:48:00.358325267 +0100
+@@ -24,7 +24,7 @@
+
+ #include <string.h>
+
+-#if defined(OPENSSL_SYS_LINUX) || defined(OPENSSL_SYS_UNIX)
++#if ! defined(OPENSSL_SYS_RISCOS) && ! defined(OPENSSL_SYS_AMIGAOS3) && ! defined(OPENSSL_SYS_AMIGAOS4) && (defined(OPENSSL_SYS_LINUX) || defined(OPENSSL_SYS_UNIX))
+ # define IMPLEMENTED
+ # include <stdlib.h>
+ # include <assert.h>
diff --git a/sdk/recipes/patches/openssl/ppc-amigaos/crypto.bio_b_addr.c.p b/sdk/recipes/patches/openssl/ppc-amigaos/crypto.bio_b_addr.c.p
new file mode 100644
index 0000000..dd10e8c
--- /dev/null
+++ b/sdk/recipes/patches/openssl/ppc-amigaos/crypto.bio_b_addr.c.p
@@ -0,0 +1,11 @@
+--- crypto/bio/b_addr.c.orig 2017-11-21 22:49:00.185608040 +0000
++++ crypto/bio/b_addr.c 2017-11-21 22:49:21.488219518 +0000
+@@ -854,7 +854,7 @@
+ addrlistp++)
+ ;
+
+- for(addresses = addrlistp - he->h_addr_list;
++ for(addresses = addrlistp - (char **)he->h_addr_list;
+ addrlistp--, addresses-- > 0; ) {
+ if (!addrinfo_wrap(he->h_addrtype, socktype,
+ *addrlistp, he->h_length,
diff --git a/sdk/recipes/patches/openssl/ppc-amigaos/crypto.ppccap.c.p b/sdk/recipes/patches/openssl/ppc-amigaos/crypto.ppccap.c.p
new file mode 100644
index 0000000..56949ca
--- /dev/null
+++ b/sdk/recipes/patches/openssl/ppc-amigaos/crypto.ppccap.c.p
@@ -0,0 +1,36 @@
+--- crypto/ppccap.c.orig 2017-11-22 13:14:44.655536374 +0000
++++ crypto/ppccap.c 2017-11-22 13:16:03.666387174 +0000
+@@ -135,6 +135,8 @@
+ }
+ #endif
+
++#ifndef OPENSSL_SYS_AMIGAOS4
++
+ static sigjmp_buf ill_jmp;
+ static void ill_handler(int sig)
+ {
+@@ -341,3 +343,24 @@
+ sigaction(SIGILL, &ill_oact, NULL);
+ sigprocmask(SIG_SETMASK, &oset, NULL);
+ }
++
++#else
++#include <proto/exec.h>
++void OPENSSL_cpuid_setup(void)
++{
++ uint32 family, vec;
++
++ IExec->GetCPUInfoTags(GCIT_Family, &family, GCIT_VectorUnit, &vec, TAG_DONE);
++
++ OPENSSL_ppccap_P = PPC_FPU;
++
++ if((family == CPUFAMILY_PA6T) || (family == CPUFAMILY_E5500))
++ OPENSSL_ppccap_P |= PPC_FPU64;
++
++ if((vec == VECTORTYPE_ALTIVEC) &&
++ (LIB_IS_AT_LEAST(SysBase, 51, 12)))
++ {
++ OPENSSL_ppccap_P |= PPC_ALTIVEC;
++ }
++}
++#endif
diff --git a/sdk/recipes/patches/openssl/ppc-amigaos/crypto.rand.build.info.p b/sdk/recipes/patches/openssl/ppc-amigaos/crypto.rand.build.info.p
new file mode 100644
index 0000000..58b672f
--- /dev/null
+++ b/sdk/recipes/patches/openssl/ppc-amigaos/crypto.rand.build.info.p
@@ -0,0 +1,9 @@
+--- crypto/rand/build.info.orig 2017-11-22 11:36:06.585363219 +0000
++++ crypto/rand/build.info 2017-11-22 11:36:39.267232034 +0000
+@@ -1,4 +1,4 @@
+ LIBS=../../libcrypto
+ SOURCE[../../libcrypto]=\
+- md_rand.c randfile.c rand_lib.c rand_err.c rand_egd.c \
+- rand_win.c rand_unix.c rand_vms.c
++ md_rand.c randfile.c rand_lib.c rand_err.c rand_amiga.c \
++ rand_egd.c rand_win.c rand_unix.c rand_vms.c
diff --git a/sdk/recipes/patches/openssl/ppc-amigaos/include.openssl.e_os2.h.p b/sdk/recipes/patches/openssl/ppc-amigaos/include.openssl.e_os2.h.p
new file mode 100644
index 0000000..6ea1ec8
--- /dev/null
+++ b/sdk/recipes/patches/openssl/ppc-amigaos/include.openssl.e_os2.h.p
@@ -0,0 +1,11 @@
+--- include/openssl/e_os2.h.orig 2017-11-21 23:09:39.684814614 +0000
++++ include/openssl/e_os2.h 2017-11-21 23:10:32.501369938 +0000
+@@ -223,6 +223,8 @@
+ # define OSSL_SSIZE_MAX SSIZE_MAX
+ # elif defined(_POSIX_SSIZE_MAX)
+ # define OSSL_SSIZE_MAX _POSIX_SSIZE_MAX
++# else
++# define OSSL_SSIZE_MAX INT_MAX
+ # endif
+ # endif
+
diff --git a/sdk/recipes/patches/openssl/ppc-amigaos/memory.h.p b/sdk/recipes/patches/openssl/ppc-amigaos/memory.h.p
deleted file mode 100644
index 4da5a6d..0000000
--- a/sdk/recipes/patches/openssl/ppc-amigaos/memory.h.p
+++ /dev/null
@@ -1,22 +0,0 @@
---- crypto/jpake/jpake.c.orig 2011-03-08 22:19:36.000000000 +0000
-+++ crypto/jpake/jpake.c 2011-03-08 22:19:49.000000000 +0000
-@@ -3,7 +3,7 @@
- #include <openssl/crypto.h>
- #include <openssl/sha.h>
- #include <openssl/err.h>
--#include <memory.h>
-+#include <string.h>
-
- /*
- * In the definition, (xa, xb, xc, xd) are Alice's (x1, x2, x3, x4) or
---- crypto/pkcs7/bio_pk7.c.orig 2011-03-08 22:21:16.000000000 +0000
-+++ crypto/pkcs7/bio_pk7.c 2011-03-08 22:21:23.000000000 +0000
-@@ -58,7 +58,7 @@
- #include <openssl/bio.h>
-
- #if !defined(OPENSSL_SYSNAME_NETWARE) && !defined(OPENSSL_SYSNAME_VXWORKS)
--# include <memory.h>
-+# include <string.h>
- #endif
- #include <stdio.h>
-
diff --git a/sdk/recipes/patches/openssl/ppc-amigaos/no-alarm.p b/sdk/recipes/patches/openssl/ppc-amigaos/no-alarm.p
deleted file mode 100644
index 1a287b1..0000000
--- a/sdk/recipes/patches/openssl/ppc-amigaos/no-alarm.p
+++ /dev/null
@@ -1,13 +0,0 @@
---- apps/speed.c.orig 2011-03-08 22:44:56.000000000 +0000
-+++ apps/speed.c 2011-03-08 22:48:10.000000000 +0000
-@@ -225,6 +225,10 @@
- # define NO_FORK
- # endif
-
-+# ifdef OPENSSL_SYS_AMIGAOS4
-+# undef SIGALRM
-+# endif
-+
- # undef BUFSIZE
- # define BUFSIZE ((long)1024*8+1)
- static volatile int run = 0;
diff --git a/sdk/recipes/patches/openssl/ppc-amigaos/no-term.p b/sdk/recipes/patches/openssl/ppc-amigaos/no-term.p
deleted file mode 100644
index d8d4d1c..0000000
--- a/sdk/recipes/patches/openssl/ppc-amigaos/no-term.p
+++ /dev/null
@@ -1,24 +0,0 @@
---- crypto/ui/ui_openssl.c.orig 2011-03-08 22:37:51.000000000 +0000
-+++ crypto/ui/ui_openssl.c 2011-03-08 22:39:00.000000000 +0000
-@@ -218,6 +218,12 @@
-
- #endif
-
-+#if defined(OPENSSL_SYS_AMIGAOS4)
-+#undef TERMIOS
-+#undef TERMIO
-+#undef SGTTY
-+#endif
-+
- #ifdef TERMIOS
- # include <termios.h>
- # define TTY_STRUCT struct termios
-@@ -266,7 +272,7 @@
- typedef int sig_atomic_t;
- #endif
-
--#if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) || defined(MAC_OS_GUSI_SOURCE) || defined(OPENSSL_SYS_NETWARE)
-+#if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) || defined(MAC_OS_GUSI_SOURCE) || defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_AMIGAOS4)
- /*
- * This one needs work. As a matter of fact the code is unoperational
- * and this is only a trick to get it compiled.