aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--ChangeLog22
-rw-r--r--configure.ac21
-rw-r--r--crypto/CMakeLists.txt3
-rw-r--r--crypto/Makefile.am7
-rw-r--r--crypto/arch/loongarch64/crypto_arch.h21
-rw-r--r--crypto/bn/arch/loongarch64/bn_arch.h23
-rw-r--r--include/CMakeLists.txt2
-rw-r--r--include/arch/loongarch64/opensslconf.h154
-rw-r--r--include/openssl/Makefile.am.tpl3
-rw-r--r--ssl/CMakeLists.txt2
-rw-r--r--ssl/Makefile.am5
-rw-r--r--tests/CMakeLists.txt2
-rw-r--r--tests/Makefile.am4
14 files changed, 253 insertions, 18 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ea0e7e5..771b2bb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -389,6 +389,8 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64|AMD64)")
389elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|[xX]86)") 389elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|[xX]86)")
390 set(ENABLE_ASM false) 390 set(ENABLE_ASM false)
391 set(HOST_I386 true) 391 set(HOST_I386 true)
392elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "loongarch64")
393 set(HOST_LOONGARCH64 true)
392elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips64") 394elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips64")
393 set(HOST_MIPS64 true) 395 set(HOST_MIPS64 true)
394elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips") 396elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips")
diff --git a/ChangeLog b/ChangeLog
index 02f448c..d9c4421 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -31,6 +31,7 @@ LibreSSL Portable Release Notes:
314.1.0 - In development 314.1.0 - In development
32 32
33 * Portable changes 33 * Portable changes
34 - Added initial experimental support for loongarch64.
34 - Fixed CMake builds on FreeBSD. 35 - Fixed CMake builds on FreeBSD.
35 - Fixed the --prefix option for cmake --install. 36 - Fixed the --prefix option for cmake --install.
36 - Fixed tests for MinGW due to missing sh(1). 37 - Fixed tests for MinGW due to missing sh(1).
@@ -63,6 +64,10 @@ LibreSSL Portable Release Notes:
63 - Replaced BN_bn2hex() reimplementation in openssl(1) ca with 64 - Replaced BN_bn2hex() reimplementation in openssl(1) ca with
64 a poper API call. 65 a poper API call.
65 - Fixed integer overflows due to signed shift in obj_dat.c. 66 - Fixed integer overflows due to signed shift in obj_dat.c.
67 - Fixed a few memory leaks in legacy code.
68 - Improved some X509_VERIFY_PARAM internals and avoid an out of
69 bounds read from public API.
70 - Imported ML-KEM 768 and 1024 from BoringSSL (not yet public API).
66 * Compatibility changes 71 * Compatibility changes
67 - Added an OPENSSL_INIT_NO_ATEXIT flag for OPENSSL_init_crypto(). 72 - Added an OPENSSL_INIT_NO_ATEXIT flag for OPENSSL_init_crypto().
68 It has no effect since LibreSSL doesn't call atexit(). 73 It has no effect since LibreSSL doesn't call atexit().
@@ -71,6 +76,9 @@ LibreSSL Portable Release Notes:
71 - EC_METHOD is no longer public and the API exposing it has been 76 - EC_METHOD is no longer public and the API exposing it has been
72 removed. This includes EC_GROUP_new(), EC_GFp_mont_method(), 77 removed. This includes EC_GROUP_new(), EC_GFp_mont_method(),
73 EC_GROUP_method_of() and EC_METHOD_get_field_type(). 78 EC_GROUP_method_of() and EC_METHOD_get_field_type().
79 - The precomputation stubs for EC_GROUP were removed.
80 - The API setting Jacobian projective coordinates for a point was
81 removed as were EC_POINTs_{mul,make_affine}().
74 - All elliptic curves over fields with less than 224 bits and a 82 - All elliptic curves over fields with less than 224 bits and a
75 few more were removed from the built-in curves. This includes 83 few more were removed from the built-in curves. This includes
76 all WTLS curves and P-192. 84 all WTLS curves and P-192.
@@ -79,26 +87,24 @@ LibreSSL Portable Release Notes:
79 - Removed the -C option to generate "C code" from the openssl(1) 87 - Removed the -C option to generate "C code" from the openssl(1)
80 dh, dhparam, dsaparam, ecparam, and x509 subcommands. 88 dh, dhparam, dsaparam, ecparam, and x509 subcommands.
81 - Removed #error in headers when OPENSSL_NO_* is defined. 89 - Removed #error in headers when OPENSSL_NO_* is defined.
82 - EC_METHOD is no longer public and all public API directly using
83 it was removed. This includes EC_GROUP_new(), EC_GFp_mont_method()
84 EC_{GROUP,POINT}_method_of() and EC_METHOD_get_field_type().
85 - The precomputation stubs for EC_GROUP were removed.
86 - The API setting Jacobian projective coordinates for a point was
87 removed as were EC_POINTs_{mul,make_affine}().
88 - CRYPTO_set_mem_functions() now matches OpenSSL 1.1 and 90 - CRYPTO_set_mem_functions() now matches OpenSSL 1.1 and
89 CRYPTO_set_mem_ex_functions() was removed. 91 CRYPTO_set_mem_ex_functions() was removed.
90 - X509_NAME_print() and X509_OBJECT_up_ref_count() are no longer public. 92 - The tls_session_secret_cb_fn type now matches OpenSSL 1.1.
93 - Unexport X509_NAME_print() and X509_OBJECT_up_ref_count().
91 - const corrected UI_OpenSSL() and BN_MONT_CTX_copy(). 94 - const corrected UI_OpenSSL() and BN_MONT_CTX_copy().
92 - Support OPENSSL_NO_FILENAMES. 95 - Support OPENSSL_NO_FILENAMES.
93 - Support SSL_OP_NO_RENEGOTIATION and SSL_OP_ALLOW_CLIENT_RENEGOTIATION. 96 - Support SSL_OP_NO_RENEGOTIATION and SSL_OP_ALLOW_CLIENT_RENEGOTIATION.
97 - Export PKCS12_key_gen_uni() again.
94 * New features 98 * New features
95 - libtls has a new tls_peer_cert_common_name() API call to retrieve 99 - libtls has a new tls_peer_cert_common_name() API call to retrieve
96 the peer's common name without having to inspect the PEM. 100 the peer's common name without having to inspect the PEM.
97 - Imported ML-KEM 768 and 1024 from BoringSSL (not yet public API).
98 * Bug fixes 101 * Bug fixes
99 - Plugged a leak in eckey_compute_pubkey(). 102 - Plugged a leak in eckey_compute_pubkey().
100 - Again allow the magic values -1, -2 and -3 for the salt length 103 - Again allow the magic values -1, -2 and -3 for the salt length
101 of an RSA-PSS key in the EVP_PKEY_CTX_ctrl_str() interface. 104 of an RSA-PSS key in the EVP_PKEY_CTX_ctrl_str() interface.
105 * Documentation
106 - The remaining undocumented public EVP API is now documented.
107 Reorganization of existing documentation for clarity and accuracy.
102 * Testing and proactive security 108 * Testing and proactive security
103 - Improved regress coverage of the EC code. 109 - Improved regress coverage of the EC code.
104 110
diff --git a/configure.ac b/configure.ac
index 864a4ad..7a88f27 100644
--- a/configure.ac
+++ b/configure.ac
@@ -86,16 +86,17 @@ AS_CASE([$host_cpu],
86) 86)
87AM_CONDITIONAL([HOST_CPU_IS_INTEL], [test "x$HOSTARCH" = "xintel"]) 87AM_CONDITIONAL([HOST_CPU_IS_INTEL], [test "x$HOSTARCH" = "xintel"])
88 88
89AM_CONDITIONAL([HOST_AARCH64], [test "$host_cpu" = "aarch64"]) 89AM_CONDITIONAL([HOST_AARCH64], [test "$host_cpu" = "aarch64"])
90AM_CONDITIONAL([HOST_ARM], [test "$host_cpu" = "arm"]) 90AM_CONDITIONAL([HOST_ARM], [test "$host_cpu" = "arm"])
91AM_CONDITIONAL([HOST_I386], [test "$host_cpu" = "i386"]) 91AM_CONDITIONAL([HOST_I386], [test "$host_cpu" = "i386"])
92AM_CONDITIONAL([HOST_MIPS], [test "$host_cpu" = "mips"]) 92AM_CONDITIONAL([HOST_LOONGARCH64], [test "$host_cpu" = "loongarch64"])
93AM_CONDITIONAL([HOST_MIPS64], [test "$host_cpu" = "mips64"]) 93AM_CONDITIONAL([HOST_MIPS], [test "$host_cpu" = "mips"])
94AM_CONDITIONAL([HOST_POWERPC], [test "$host_cpu" = "powerpc"]) 94AM_CONDITIONAL([HOST_MIPS64], [test "$host_cpu" = "mips64"])
95AM_CONDITIONAL([HOST_POWERPC64], [test "$host_cpu" = "ppc64"]) 95AM_CONDITIONAL([HOST_POWERPC], [test "$host_cpu" = "powerpc"])
96AM_CONDITIONAL([HOST_RISCV64], [test "$host_cpu" = "riscv64"]) 96AM_CONDITIONAL([HOST_POWERPC64], [test "$host_cpu" = "ppc64"])
97AM_CONDITIONAL([HOST_SPARC64], [test "$host_cpu" = "sparc64"]) 97AM_CONDITIONAL([HOST_RISCV64], [test "$host_cpu" = "riscv64"])
98AM_CONDITIONAL([HOST_X86_64], [test "$host_cpu" = "x86_64"]) 98AM_CONDITIONAL([HOST_SPARC64], [test "$host_cpu" = "sparc64"])
99AM_CONDITIONAL([HOST_X86_64], [test "$host_cpu" = "x86_64"])
99 100
100AC_MSG_CHECKING([if .gnu.warning accepts long strings]) 101AC_MSG_CHECKING([if .gnu.warning accepts long strings])
101AC_LINK_IFELSE([AC_LANG_SOURCE([[ 102AC_LINK_IFELSE([AC_LANG_SOURCE([[
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index e642b01..a714059 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -774,6 +774,9 @@ elseif(HOST_ARM)
774elseif(HOST_I386) 774elseif(HOST_I386)
775 target_include_directories(crypto_obj PRIVATE arch/i386/) 775 target_include_directories(crypto_obj PRIVATE arch/i386/)
776 target_include_directories(crypto_obj PRIVATE bn/arch/i386/) 776 target_include_directories(crypto_obj PRIVATE bn/arch/i386/)
777elseif(HOST_LOONGARCH64)
778 target_include_directories(crypto_obj PRIVATE arch/loongarch64)
779 target_include_directories(crypto_obj PRIVATE bn/arch/loongarch64)
777elseif(HOST_MIPS64) 780elseif(HOST_MIPS64)
778 target_include_directories(crypto_obj PRIVATE arch/mips64) 781 target_include_directories(crypto_obj PRIVATE arch/mips64)
779 target_include_directories(crypto_obj PRIVATE bn/arch/mips64) 782 target_include_directories(crypto_obj PRIVATE bn/arch/mips64)
diff --git a/crypto/Makefile.am b/crypto/Makefile.am
index 438da8b..0952494 100644
--- a/crypto/Makefile.am
+++ b/crypto/Makefile.am
@@ -396,6 +396,13 @@ endif
396noinst_HEADERS += arch/i386/crypto_arch.h 396noinst_HEADERS += arch/i386/crypto_arch.h
397noinst_HEADERS += bn/arch/i386/bn_arch.h 397noinst_HEADERS += bn/arch/i386/bn_arch.h
398 398
399if HOST_LOONGARCH64
400libcrypto_la_CPPFLAGS += -I$(top_srcdir)/crypto/arch/loongarch64/
401libcrypto_la_CPPFLAGS += -I$(top_srcdir)/crypto/bn/arch/loongarch64/
402endif
403noinst_HEADERS += arch/loongarch64/crypto_arch.h
404noinst_HEADERS += bn/arch/loongarch64/bn_arch.h
405
399# XXX - do we still need this? 406# XXX - do we still need this?
400if HOST_MIPS 407if HOST_MIPS
401libcrypto_la_CPPFLAGS += -I$(top_srcdir)/crypto/bn/arch/mips/ 408libcrypto_la_CPPFLAGS += -I$(top_srcdir)/crypto/bn/arch/mips/
diff --git a/crypto/arch/loongarch64/crypto_arch.h b/crypto/arch/loongarch64/crypto_arch.h
new file mode 100644
index 0000000..a3dd98d
--- /dev/null
+++ b/crypto/arch/loongarch64/crypto_arch.h
@@ -0,0 +1,21 @@
1/* $OpenBSD: crypto_arch.h,v 1.1 2024/08/11 13:02:39 jsing Exp $ */
2/*
3 * Copyright (c) 2024 Joel Sing <jsing@openbsd.org>
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18#ifndef HEADER_CRYPTO_ARCH_H
19#define HEADER_CRYPTO_ARCH_H
20
21#endif
diff --git a/crypto/bn/arch/loongarch64/bn_arch.h b/crypto/bn/arch/loongarch64/bn_arch.h
new file mode 100644
index 0000000..672ac12
--- /dev/null
+++ b/crypto/bn/arch/loongarch64/bn_arch.h
@@ -0,0 +1,23 @@
1/* $OpenBSD: bn_arch.h,v 1.7 2023/07/09 10:37:32 jsing Exp $ */
2/*
3 * Copyright (c) 2023 Joel Sing <jsing@openbsd.org>
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18#include <openssl/bn.h>
19
20#ifndef HEADER_BN_ARCH_H
21#define HEADER_BN_ARCH_H
22
23#endif
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index 59f5b62..11ab7c2 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -24,6 +24,8 @@ elseif(HOST_ARM)
24 file(READ arch/arm/opensslconf.h OPENSSLCONF) 24 file(READ arch/arm/opensslconf.h OPENSSLCONF)
25elseif(HOST_I386) 25elseif(HOST_I386)
26 file(READ arch/i386/opensslconf.h OPENSSLCONF) 26 file(READ arch/i386/opensslconf.h OPENSSLCONF)
27elseif(HOST_LOONGARCH64)
28 file(READ arch/loongarch64/opensslconf.h OPENSSLCONF)
27elseif(HOST_MIPS) 29elseif(HOST_MIPS)
28 file(READ arch/mips/opensslconf.h OPENSSLCONF) 30 file(READ arch/mips/opensslconf.h OPENSSLCONF)
29elseif(HOST_MIPS64) 31elseif(HOST_MIPS64)
diff --git a/include/arch/loongarch64/opensslconf.h b/include/arch/loongarch64/opensslconf.h
new file mode 100644
index 0000000..731b06a
--- /dev/null
+++ b/include/arch/loongarch64/opensslconf.h
@@ -0,0 +1,154 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTO_LOCAL_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
9
10#ifndef OPENSSL_FILE
11#ifdef OPENSSL_NO_FILENAMES
12#define OPENSSL_FILE ""
13#define OPENSSL_LINE 0
14#else
15#define OPENSSL_FILE __FILE__
16#define OPENSSL_LINE __LINE__
17#endif
18#endif
19
20#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
21#define IDEA_INT unsigned int
22#endif
23
24#if defined(HEADER_MD2_H) && !defined(MD2_INT)
25#define MD2_INT unsigned int
26#endif
27
28#if defined(HEADER_RC2_H) && !defined(RC2_INT)
29/* I need to put in a mod for the alpha - eay */
30#define RC2_INT unsigned int
31#endif
32
33#if defined(HEADER_RC4_H)
34#if !defined(RC4_INT)
35/* using int types make the structure larger but make the code faster
36 * on most boxes I have tested - up to %20 faster. */
37/*
38 * I don't know what does "most" mean, but declaring "int" is a must on:
39 * - Intel P6 because partial register stalls are very expensive;
40 * - elder Alpha because it lacks byte load/store instructions;
41 */
42#define RC4_INT unsigned int
43#endif
44#if !defined(RC4_CHUNK)
45/*
46 * This enables code handling data aligned at natural CPU word
47 * boundary. See crypto/rc4/rc4_enc.c for further details.
48 */
49#define RC4_CHUNK unsigned long
50#endif
51#endif
52
53#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
54/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
55 * %20 speed up (longs are 8 bytes, int's are 4). */
56#ifndef DES_LONG
57#define DES_LONG unsigned int
58#endif
59#endif
60
61#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
62#define CONFIG_HEADER_BN_H
63#undef BN_LLONG
64
65/* Should we define BN_DIV2W here? */
66
67/* Only one for the following should be defined */
68/* The prime number generation stuff may not work when
69 * EIGHT_BIT but I don't care since I've only used this mode
70 * for debugging the bignum libraries */
71#define SIXTY_FOUR_BIT_LONG
72#undef SIXTY_FOUR_BIT
73#undef THIRTY_TWO_BIT
74#undef SIXTEEN_BIT
75#undef EIGHT_BIT
76#endif
77
78#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
79#define CONFIG_HEADER_BF_LOCL_H
80#undef BF_PTR
81#endif /* HEADER_BF_LOCL_H */
82
83#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
84#define CONFIG_HEADER_DES_LOCL_H
85#ifndef DES_DEFAULT_OPTIONS
86/* the following is tweaked from a config script, that is why it is a
87 * protected undef/define */
88#ifndef DES_PTR
89#undef DES_PTR
90#endif
91
92/* This helps C compiler generate the correct code for multiple functional
93 * units. It reduces register dependencies at the expense of 2 more
94 * registers */
95#ifndef DES_RISC1
96#undef DES_RISC1
97#endif
98
99#ifndef DES_RISC2
100#undef DES_RISC2
101#endif
102
103#if defined(DES_RISC1) && defined(DES_RISC2)
104YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
105#endif
106
107/* Unroll the inner loop, this sometimes helps, sometimes hinders.
108 * Very much CPU dependent */
109#ifndef DES_UNROLL
110#define DES_UNROLL
111#endif
112
113/* These default values were supplied by
114 * Peter Gutman <pgut001@cs.auckland.ac.nz>
115 * They are only used if nothing else has been defined */
116#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
117/* Special defines which change the way the code is built depending on the
118 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
119 even newer MIPS CPU's, but at the moment one size fits all for
120 optimization options. Older Sparc's work better with only UNROLL, but
121 there's no way to tell at compile time what it is you're running on */
122
123#if defined( sun ) /* Newer Sparc's */
124# define DES_PTR
125# define DES_RISC1
126# define DES_UNROLL
127#elif defined( __ultrix ) /* Older MIPS */
128# define DES_PTR
129# define DES_RISC2
130# define DES_UNROLL
131#elif defined( __osf1__ ) /* Alpha */
132# define DES_PTR
133# define DES_RISC2
134#elif defined ( _AIX ) /* RS6000 */
135 /* Unknown */
136#elif defined( __hpux ) /* HP-PA */
137 /* Unknown */
138#elif defined( __aux ) /* 68K */
139 /* Unknown */
140#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
141# define DES_UNROLL
142#elif defined( __sgi ) /* Newer MIPS */
143# define DES_PTR
144# define DES_RISC2
145# define DES_UNROLL
146#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
147# define DES_PTR
148# define DES_RISC1
149# define DES_UNROLL
150#endif /* Systems-specific speed defines */
151#endif
152
153#endif /* DES_DEFAULT_OPTIONS */
154#endif /* HEADER_DES_LOCL_H */
diff --git a/include/openssl/Makefile.am.tpl b/include/openssl/Makefile.am.tpl
index 303d0b9..4bbbd60 100644
--- a/include/openssl/Makefile.am.tpl
+++ b/include/openssl/Makefile.am.tpl
@@ -17,6 +17,9 @@ endif
17if HOST_I386 17if HOST_I386
18 -cp $(top_srcdir)/include/arch/i386/opensslconf.h opensslconf.h 18 -cp $(top_srcdir)/include/arch/i386/opensslconf.h opensslconf.h
19endif 19endif
20if HOST_LOONGARCH64
21 -cp $(top_srcdir)/include/arch/loongarch64/opensslconf.h opensslconf.h
22endif
20if HOST_MIPS 23if HOST_MIPS
21 -cp $(top_srcdir)/include/arch/mips/opensslconf.h opensslconf.h 24 -cp $(top_srcdir)/include/arch/mips/opensslconf.h opensslconf.h
22endif 25endif
diff --git a/ssl/CMakeLists.txt b/ssl/CMakeLists.txt
index bdcfbb2..5baa5bc 100644
--- a/ssl/CMakeLists.txt
+++ b/ssl/CMakeLists.txt
@@ -117,6 +117,8 @@ elseif(HOST_ARM)
117 target_include_directories(ssl_obj PRIVATE ../crypto/arch/arm/) 117 target_include_directories(ssl_obj PRIVATE ../crypto/arch/arm/)
118elseif(HOST_I386) 118elseif(HOST_I386)
119 target_include_directories(ssl_obj PRIVATE ../crypto/arch/i386/) 119 target_include_directories(ssl_obj PRIVATE ../crypto/arch/i386/)
120elseif(HOST_LOONGARCH64)
121 target_include_directories(ssl_obj PRIVATE ../crypto/arch/loongarch64)
120elseif(HOST_MIPS64) 122elseif(HOST_MIPS64)
121 target_include_directories(ssl_obj PRIVATE ../crypto/arch/mips64) 123 target_include_directories(ssl_obj PRIVATE ../crypto/arch/mips64)
122elseif(HOST_MIPS) 124elseif(HOST_MIPS)
diff --git a/ssl/Makefile.am b/ssl/Makefile.am
index f9a66a3..8beb65a 100644
--- a/ssl/Makefile.am
+++ b/ssl/Makefile.am
@@ -131,6 +131,11 @@ libssl_la_CPPFLAGS += -I$(top_srcdir)/crypto/arch/i386/
131endif 131endif
132noinst_HEADERS += $(top_srcdir)/crypto/arch/i386/crypto_arch.h 132noinst_HEADERS += $(top_srcdir)/crypto/arch/i386/crypto_arch.h
133 133
134if HOST_LOONGARCH64
135libssl_la_CPPFLAGS += -I$(top_srcdir)/crypto/arch/loongarch64/
136endif
137noinst_HEADERS += $(top_srcdir)/crypto/arch/loongarch64/crypto_arch.h
138
134# XXX - do we still need this? 139# XXX - do we still need this?
135if HOST_MIPS 140if HOST_MIPS
136endif 141endif
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 8d6fa9d..72e36d4 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -28,6 +28,8 @@ elseif(HOST_ARM)
28 include_directories(../crypto/arch/arm/) 28 include_directories(../crypto/arch/arm/)
29elseif(HOST_I386) 29elseif(HOST_I386)
30 include_directories(../crypto/arch/i386/) 30 include_directories(../crypto/arch/i386/)
31elseif(HOST_LOONGARCH64)
32 include_directories(../crypto/arch/loongarch64)
31elseif(HOST_MIPS64) 33elseif(HOST_MIPS64)
32 include_directories(../crypto/arch/mips64) 34 include_directories(../crypto/arch/mips64)
33elseif(HOST_MIPS) 35elseif(HOST_MIPS)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 8153fc9..217f445 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -36,6 +36,10 @@ if HOST_I386
36AM_CPPFLAGS += -I$(top_srcdir)/crypto/arch/i386/ 36AM_CPPFLAGS += -I$(top_srcdir)/crypto/arch/i386/
37endif 37endif
38 38
39if HOST_LOONGARCH64
40AM_CPPFLAGS += -I$(top_srcdir)/crypto/arch/loongarch64/
41endif
42
39# XXX - do we still need this? 43# XXX - do we still need this?
40if HOST_MIPS 44if HOST_MIPS
41endif 45endif