diff options
author | Brent Cook <busterb@gmail.com> | 2023-03-15 20:22:11 -0500 |
---|---|---|
committer | Brent Cook <busterb@gmail.com> | 2023-03-15 20:22:11 -0500 |
commit | 92ad7393cd0a4b7bad45dd32b53cfd317b429a62 (patch) | |
tree | 5f92b0bdd511c306e8491f5f3e794704cfd91bd4 | |
parent | 3fab19adc4e5b5754566c3ee2b936cb37b906e5f (diff) | |
parent | 977be09d69a9f9b7eaf85dbd83465c0ec8361598 (diff) | |
download | portable-92ad7393cd0a4b7bad45dd32b53cfd317b429a62.tar.gz portable-92ad7393cd0a4b7bad45dd32b53cfd317b429a62.tar.bz2 portable-92ad7393cd0a4b7bad45dd32b53cfd317b429a62.zip |
Land #824, MSVC fixes
-rw-r--r-- | patches/crypto_namespace.h.patch | 33 | ||||
-rw-r--r-- | patches/libcrypto.hidden.patch | 120 | ||||
-rw-r--r-- | patches/libssl.hidden.patch | 15 | ||||
-rw-r--r-- | patches/opensslfeatures.h.patch | 16 | ||||
-rw-r--r-- | patches/ssl_namespace.h.patch | 32 |
5 files changed, 192 insertions, 24 deletions
diff --git a/patches/crypto_namespace.h.patch b/patches/crypto_namespace.h.patch index 2751524..171e7f5 100644 --- a/patches/crypto_namespace.h.patch +++ b/patches/crypto_namespace.h.patch | |||
@@ -1,13 +1,22 @@ | |||
1 | --- crypto/hidden/crypto_namespace.h.orig 2023-02-28 00:41:43.212756628 -0600 | 1 | --- openbsd/src/lib/libcrypto/hidden/crypto_namespace.h 2023-03-15 11:41:37.614024500 -0600 |
2 | +++ crypto/hidden/crypto_namespace.h 2023-02-28 00:42:01.152756349 -0600 | 2 | +++ crypto/hidden/crypto_namespace.h 2023-03-15 17:12:55.297157400 -0600 |
3 | @@ -18,6 +18,10 @@ | 3 | @@ -24,6 +24,12 @@ |
4 | #ifndef _LIBCRYPTO_CRYPTO_NAMESPACE_H_ | 4 | * external calls use the latter name. |
5 | #define _LIBCRYPTO_CRYPTO_NAMESPACE_H_ | 5 | */ |
6 | 6 | ||
7 | +#if defined(_MSC_VER) && !defined(__clang__) && !defined(__attribute__) | 7 | +#ifdef _MSC_VER |
8 | +#define __attribute__(a) | 8 | +# define LCRYPTO_UNUSED(x) |
9 | +#endif | 9 | +# define LCRYPTO_USED(x) |
10 | + | 10 | +# define LCRYPTO_ALIAS1(pre, x) |
11 | /* | 11 | +# define LCRYPTO_ALIAS(x) |
12 | * If marked as 'used', then internal calls use the name with prefix "_lcry_" | 12 | +#else |
13 | * and we alias that to the normal name *and* the name with prefix "_libre_"; | 13 | #ifdef LIBRESSL_NAMESPACE |
14 | # define LCRYPTO_UNUSED(x) typeof(x) x __attribute__((deprecated)) | ||
15 | #ifdef LIBRESSL_CRYPTO_NAMESPACE | ||
16 | @@ -40,5 +46,6 @@ | ||
17 | # define LCRYPTO_ALIAS1(pre,x) | ||
18 | # define LCRYPTO_ALIAS(x) asm("") | ||
19 | #endif | ||
20 | +#endif /* _MSC_VER */ | ||
21 | |||
22 | #endif /* _LIBCRYPTO_CRYPTO_NAMESPACE_H_ */ | ||
diff --git a/patches/libcrypto.hidden.patch b/patches/libcrypto.hidden.patch new file mode 100644 index 0000000..a00a3dd --- /dev/null +++ b/patches/libcrypto.hidden.patch | |||
@@ -0,0 +1,120 @@ | |||
1 | diff -u openbsd/src/lib/libcrypto/hidden/openssl/hmac.h crypto/hidden/openssl/hmac.h | ||
2 | --- openbsd/src/lib/libcrypto/hidden/openssl/hmac.h 2023-03-15 11:41:37.632580800 -0600 | ||
3 | +++ crypto/hidden/openssl/hmac.h 2023-03-15 16:49:29.144080400 -0600 | ||
4 | @@ -18,7 +18,11 @@ | ||
5 | #ifndef _LIBCRYPTO_HMAC_H_ | ||
6 | #define _LIBCRYPTO_HMAC_H_ | ||
7 | |||
8 | +#ifdef _MSC_VER | ||
9 | +#include <../include/openssl/hmac.h> | ||
10 | +#else | ||
11 | #include_next <openssl/hmac.h> | ||
12 | +#endif | ||
13 | #include "crypto_namespace.h" | ||
14 | |||
15 | LCRYPTO_USED(HMAC_CTX_new); | ||
16 | diff -u openbsd/src/lib/libcrypto/hidden/openssl/pkcs12.h crypto/hidden/openssl/pkcs12.h | ||
17 | --- openbsd/src/lib/libcrypto/hidden/openssl/pkcs12.h 2023-03-15 11:41:37.648024900 -0600 | ||
18 | +++ crypto/hidden/openssl/pkcs12.h 2023-03-15 17:15:36.015981800 -0600 | ||
19 | @@ -18,7 +18,11 @@ | ||
20 | #ifndef _LIBCRYPTO_PKCS12_H | ||
21 | #define _LIBCRYPTO_PKCS12_H | ||
22 | |||
23 | +#ifdef _MSC_VER | ||
24 | +#include <../include/openssl/pkcs12.h> | ||
25 | +#else | ||
26 | #include_next <openssl/pkcs12.h> | ||
27 | +#endif | ||
28 | #include "crypto_namespace.h" | ||
29 | |||
30 | LCRYPTO_USED(PKCS12_SAFEBAG_get0_attr); | ||
31 | diff -u openbsd/src/lib/libcrypto/hidden/openssl/pkcs7.h crypto/hidden/openssl/pkcs7.h | ||
32 | --- openbsd/src/lib/libcrypto/hidden/openssl/pkcs7.h 2023-03-15 11:41:37.663599200 -0600 | ||
33 | +++ crypto/hidden/openssl/pkcs7.h 2023-03-15 16:53:43.232866600 -0600 | ||
34 | @@ -18,7 +18,11 @@ | ||
35 | #ifndef _LIBCRYPTO_PKCS7_H | ||
36 | #define _LIBCRYPTO_PKCS7_H | ||
37 | |||
38 | +#ifdef _MSC_VER | ||
39 | +#include <../include/openssl/pkcs7.h> | ||
40 | +#else | ||
41 | #include_next <openssl/pkcs7.h> | ||
42 | +#endif | ||
43 | #include "crypto_namespace.h" | ||
44 | |||
45 | LCRYPTO_USED(PKCS7_ISSUER_AND_SERIAL_new); | ||
46 | diff -u openbsd/src/lib/libcrypto/hidden/openssl/stack.h crypto/hidden/openssl/stack.h | ||
47 | --- openbsd/src/lib/libcrypto/hidden/openssl/stack.h 2023-03-15 11:41:37.680453800 -0600 | ||
48 | +++ crypto/hidden/openssl/stack.h 2023-03-15 16:49:29.200142600 -0600 | ||
49 | @@ -18,7 +18,11 @@ | ||
50 | #ifndef _LIBCRYPTO_STACK_H | ||
51 | #define _LIBCRYPTO_STACK_H | ||
52 | |||
53 | +#ifdef _MSC_VER | ||
54 | +#include <../include/openssl/stack.h> | ||
55 | +#else | ||
56 | #include_next <openssl/stack.h> | ||
57 | +#endif | ||
58 | #include "crypto_namespace.h" | ||
59 | |||
60 | LCRYPTO_USED(sk_num); | ||
61 | diff -u openbsd/src/lib/libcrypto/hidden/openssl/ui.h crypto/hidden/openssl/ui.h | ||
62 | --- openbsd/src/lib/libcrypto/hidden/openssl/ui.h 2023-03-15 11:41:37.696291800 -0600 | ||
63 | +++ crypto/hidden/openssl/ui.h 2023-03-15 16:49:29.222310800 -0600 | ||
64 | @@ -18,7 +18,11 @@ | ||
65 | #ifndef _LIBCRYPTO_UI_H | ||
66 | #define _LIBCRYPTO_UI_H | ||
67 | |||
68 | +#ifdef _MSC_VER | ||
69 | +#include <../include/openssl/ui.h> | ||
70 | +#else | ||
71 | #include_next <openssl/ui.h> | ||
72 | +#endif | ||
73 | #include "crypto_namespace.h" | ||
74 | |||
75 | LCRYPTO_USED(UI_new); | ||
76 | diff -u openbsd/src/lib/libcrypto/hidden/openssl/x509.h crypto/hidden/openssl/x509.h | ||
77 | --- openbsd/src/lib/libcrypto/hidden/openssl/x509.h 2023-03-15 11:41:37.713302600 -0600 | ||
78 | +++ crypto/hidden/openssl/x509.h 2023-03-15 16:49:29.238904200 -0600 | ||
79 | @@ -18,7 +18,11 @@ | ||
80 | #ifndef _LIBCRYPTO_X509_H | ||
81 | #define _LIBCRYPTO_X509_H | ||
82 | |||
83 | +#ifdef _MSC_VER | ||
84 | +#include <../include/openssl/x509.h> | ||
85 | +#else | ||
86 | #include_next <openssl/x509.h> | ||
87 | +#endif | ||
88 | #include "crypto_namespace.h" | ||
89 | |||
90 | LCRYPTO_USED(X509_CRL_up_ref); | ||
91 | diff -u openbsd/src/lib/libcrypto/hidden/openssl/x509v3.h crypto/hidden/openssl/x509v3.h | ||
92 | --- openbsd/src/lib/libcrypto/hidden/openssl/x509v3.h 2023-03-15 11:41:37.756379100 -0600 | ||
93 | +++ crypto/hidden/openssl/x509v3.h 2023-03-15 16:49:29.264482800 -0600 | ||
94 | @@ -18,7 +18,11 @@ | ||
95 | #ifndef _LIBCRYPTO_X509V3_H | ||
96 | #define _LIBCRYPTO_X509V3_H | ||
97 | |||
98 | +#ifdef _MSC_VER | ||
99 | +#include <../include/openssl/x509v3.h> | ||
100 | +#else | ||
101 | #include_next <openssl/x509v3.h> | ||
102 | +#endif | ||
103 | #include "crypto_namespace.h" | ||
104 | |||
105 | LCRYPTO_USED(PROXY_POLICY_new); | ||
106 | diff -u openbsd/src/lib/libcrypto/hidden/openssl/x509_vfy.h crypto/hidden/openssl/x509_vfy.h | ||
107 | --- openbsd/src/lib/libcrypto/hidden/openssl/x509_vfy.h 2023-03-15 11:41:37.735995100 -0600 | ||
108 | +++ crypto/hidden/openssl/x509_vfy.h 2023-03-15 16:49:29.300450300 -0600 | ||
109 | @@ -18,7 +18,11 @@ | ||
110 | #ifndef _LIBCRYPTO_X509_VFY_H | ||
111 | #define _LIBCRYPTO_X509_VFY_H | ||
112 | |||
113 | +#ifdef _MSC_VER | ||
114 | +#include <../include/openssl/x509_vfy.h> | ||
115 | +#else | ||
116 | #include_next <openssl/x509_vfy.h> | ||
117 | +#endif | ||
118 | #include "crypto_namespace.h" | ||
119 | |||
120 | LCRYPTO_USED(X509_STORE_set_depth); | ||
diff --git a/patches/libssl.hidden.patch b/patches/libssl.hidden.patch new file mode 100644 index 0000000..5a8c2c8 --- /dev/null +++ b/patches/libssl.hidden.patch | |||
@@ -0,0 +1,15 @@ | |||
1 | diff -u openbsd/src/lib/libssl/hidden/openssl/ssl.h ssl/hidden/openssl/ssl.h | ||
2 | --- openbsd/src/lib/libssl/hidden/openssl/ssl.h 2023-03-15 11:41:52.466146400 -0600 | ||
3 | +++ ssl/hidden/openssl/ssl.h 2023-03-15 16:49:29.358377300 -0600 | ||
4 | @@ -18,7 +18,11 @@ | ||
5 | #ifndef _LIBSSL_SSL_H_ | ||
6 | #define _LIBSSL_SSL_H_ | ||
7 | |||
8 | +#ifdef _MSC_VER | ||
9 | +#include <../include/openssl/ssl.h> | ||
10 | +#else | ||
11 | #include_next <openssl/ssl.h> | ||
12 | +#endif | ||
13 | #include "ssl_namespace.h" | ||
14 | |||
15 | LSSL_USED(BIO_f_ssl); | ||
diff --git a/patches/opensslfeatures.h.patch b/patches/opensslfeatures.h.patch new file mode 100644 index 0000000..8ee311d --- /dev/null +++ b/patches/opensslfeatures.h.patch | |||
@@ -0,0 +1,16 @@ | |||
1 | --- openbsd/src/lib/libcrypto/opensslfeatures.h 2023-03-15 11:41:47.301015100 -0600 | ||
2 | +++ include/openssl/opensslfeatures.h 2023-03-15 18:27:57.740024800 -0600 | ||
3 | @@ -7,6 +7,13 @@ | ||
4 | #define LIBRESSL_HAS_TLS1_3 | ||
5 | #define LIBRESSL_HAS_DTLS1_2 | ||
6 | |||
7 | +/* | ||
8 | + * Used for compatibility with compilers lacking __attribute__ | ||
9 | + */ | ||
10 | +#if defined(_MSC_VER) && !defined(__clang__) && !defined(__attribute__) | ||
11 | +#define __attribute__(a) | ||
12 | +#endif | ||
13 | + | ||
14 | #define OPENSSL_THREADS | ||
15 | |||
16 | #define OPENSSL_NO_BUF_FREELISTS | ||
diff --git a/patches/ssl_namespace.h.patch b/patches/ssl_namespace.h.patch index 649e862..758f8dc 100644 --- a/patches/ssl_namespace.h.patch +++ b/patches/ssl_namespace.h.patch | |||
@@ -1,13 +1,21 @@ | |||
1 | --- ssl/hidden/ssl_namespace.h.orig 2023-02-28 00:42:20.928756042 -0600 | 1 | --- openbsd/src/lib/libssl/hidden/ssl_namespace.h 2023-03-15 11:41:52.481641800 -0600 |
2 | +++ ssl/hidden/ssl_namespace.h 2023-02-28 00:43:16.372755180 -0600 | 2 | +++ ssl/hidden/ssl_namespace.h 2023-03-15 17:28:04.685309300 -0600 |
3 | @@ -18,6 +18,10 @@ | 3 | @@ -23,6 +23,11 @@ |
4 | #ifndef _LIBSSL_SSL_NAMESPACE_H_ | ||
5 | #define _LIBSSL_SSL_NAMESPACE_H_ | ||
6 | |||
7 | +#if defined(_MSC_VER) && !defined(__clang__) && !defined(__attribute__) | ||
8 | +#define __attribute__(a) | ||
9 | +#endif | ||
10 | + | ||
11 | /* | ||
12 | * If marked as 'used', then internal calls use the name with prefix "_lssl_" | ||
13 | * and we alias that to the normal name. | 4 | * and we alias that to the normal name. |
5 | */ | ||
6 | |||
7 | +#ifdef _MSC_VER | ||
8 | +#define LSSL_UNUSED(x) | ||
9 | +#define LSSL_USED(x) | ||
10 | +#define LSSL_ALIAS(x) | ||
11 | +#else | ||
12 | #ifdef LIBRESSL_NAMESPACE | ||
13 | #define LSSL_UNUSED(x) typeof(x) x __attribute__((deprecated)) | ||
14 | #define LSSL_USED(x) __attribute__((visibility("hidden"))) \ | ||
15 | @@ -33,5 +38,6 @@ | ||
16 | #define LSSL_USED(x) | ||
17 | #define LSSL_ALIAS(x) asm("") | ||
18 | #endif | ||
19 | +#endif /* _MSC_VER */ | ||
20 | |||
21 | #endif /* _LIBSSL_SSL_NAMESPACE_H_ */ | ||