188 Commits

Author SHA1 Message Date
Theo Buehler
166e80048c compat/netinet/ip.h: add compat define for IPTOS_DSCP_VA 2025-12-18 08:42:32 -07:00
Brent Cook
7ed28d2f50 add mkstemp for msvc builds 2025-10-07 05:38:30 -05:00
Theo Buehler
e4e25cd281 Make opensslconf.h MI again 2025-08-26 00:55:50 -06:00
Theo Buehler
23a96ede97 Mop up RC4_CHUNK - opensslconf.h is now MI
Change-Id: I6a6a69646afcda5abaa40e9efb586abb80eeafb5
2025-08-17 21:05:36 +02:00
Theo Buehler
7218171381 Sync DES_UNROLL removal from opensslconf.h
Change-Id: I6a6a6964d015e92505a3a24785cdc3ea2535ad5e
2025-07-27 15:29:19 +02:00
Theo Buehler
18024b9d62 Sync BN_LLONG removal from opensslconf.h
Change-Id: I6a6a6964e4319a0fb0a0ecf5b4f6ea226beca433
2025-07-22 18:40:54 +02:00
Theo Buehler
80ec6b9286 Add missing loongarch64/opensslconf.h
Fixes #1183
2025-07-07 17:01:57 +02:00
Theo Buehler
392481066b Garbage collect BF_PTR
Change-Id: I6a6a6964f3ff8920845f29bc620ef51d94c3f5f4
2025-06-11 06:09:21 +02:00
Theo Buehler
5c4a7673b5 Remove MI constants which now live in other headers 2025-06-09 16:42:42 +02:00
Theo Buehler
fa0d2b1c87 Remove ${MULTIPLE_OF_EIGHT}_BIT* 2025-06-09 10:55:47 +02:00
Theo Buehler
2a0571ece2 Remove DES_PTR 2025-06-09 10:54:35 +02:00
Theo Buehler
fde752e948 sync opensslconf.h: remove DES_RISC* logic
Change-Id: I6a6a696436b84c468fe7fc86f7f026918c68bf6f
2025-06-06 12:52:58 +02:00
Theo Buehler
dd7ad9c30b sync opensslconf.h: only HEADER_DES_H remains
Change-Id: I6a6a6964d1f15bb620559cb4eaa57d323fe5e6f0
2025-06-05 08:40:54 +02:00
Theo Buehler
bad9c1b83a Remove md2 leftovers 2025-06-05 00:10:46 +02:00
Brent Cook
340037f69a add autotools build copyright headers 2025-06-01 08:22:33 +07:00
Brent Cook
c51665d429 add copyright headers to Cmake files
based on original committer and date
2025-06-01 08:22:33 +07:00
Brent Cook
9ba4b33d66 change prefix for fstat 2025-04-16 04:26:34 -05:00
Brent Cook
78b86a2af6 switch to using high bit for fd detection of file/socket 2025-04-12 16:59:51 -05:00
Theo Buehler
1087da12fc Sync opensslconf.h, add crypto_arch.h for mips
This was easy enough to make compile. As long as it doesn't get in the
way, I think we can keep this.

Fixes #1110
2025-04-12 18:06:24 +02:00
Ivan A. Melnikov
031c2f1722 Basic loongarch64 support
Just wire things up to make the project buildable
on LoongArch64.

opensslconf.h is taken form riscv64 folder as is,
and is the same as on some other 64 bit architectures.

Refs: https://github.com/libressl/portable/issues/1123
Signed-off-by: Ivan A. Melnikov <iv@altlinux.org>
2025-04-10 17:22:36 +04:00
Cameron Lowell Palmer
5626ce43e3 Add in missing endianess functions for Apple targets 2024-12-20 06:52:34 -06:00
Theo Buehler
bf808ea0fc Provide getdelim and getline compat shims
These are portable implementations from NetBSD that are needed on
Windows and perhaps some other platforms with the new versions of
the mlkem tests.
2024-12-20 01:14:04 +01:00
Theo Buehler
d58e3559c2 Attempt to fix windows 2024-11-23 13:32:04 -07:00
Theo Buehler
3467d6f282 Attempt to fix 2038 problem with MSVC 2024-10-06 18:56:01 -05:00
Thomas Petazzoni
3b5f0177ff include/CMakeLists.txt: error out when architecture is not supported
Since commit b98c56fd5e ("stop exposing
hidden defines in public opensslconf.h"), only a subset of CPU
architectures is supported by libressl. However, when a build is
attempted for an unsupported architecture, it doesn't fail with a
clear error message at configure time, but it fails with a weird error
at build time:

crypto/../include/openssl/rc4.h:75:9: error: unknown type name 'RC4_INT'

In order to help users, let's bail out nicely at configure time with a
good error message when the CPU architecture is not supported.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-13 14:41:36 +02:00
Viktor Szakats
a279b68be9 distribute compat/stdint.h
Fixes #1064
2024-06-05 21:05:28 +02:00
Theo Buehler
f9874d49f6 Remove timegm() compat
Now that all uses of gmtime_r() and timegm() have been converted to
OPENSSL_gmtime() and OPENSSL_timegm(), this is no longer needed.
2024-05-25 13:49:18 +02:00
Brent Cook
53edbd00c1 define _MSC_VER when preprocessing, add guards 2024-02-25 18:29:14 -06:00
Brent Cook
950b5bc1fb include placeholder cet.h for cpp 2024-02-25 18:12:24 -06:00
Christian Andersen
5bd332ec20 Windows: Improve the check for endianness when using Visual Studio.
Visual studio does not define __BYTE_ORDER__ so all architectures
were detected as LITTLE_ENDIAN since both __BYTE_ORDER__ and
__ORDER_LITTLE_ENDIAN__ would evaluate to 0 and compare equal. This
updates the checks to use CMakes detection of endianness, with a hard
error, if this also fails.
2024-02-04 22:24:10 +01:00
Theo Buehler
c515f24515 pthread_once() returns an error code on failure 2023-12-19 20:18:29 +01:00
Theo Buehler
f6f90b9779 Fix build on windows 2023-12-14 18:28:55 +01:00
Theo Buehler
0491aef86c pthreads.h: avoid undefined behavior
You can't pass a function pointer through a void pointer.
So wrap the pthread callback in a struct.

Fixes #966
2023-12-12 23:25:06 +01:00
Theo Buehler
0d8aa3eb21 Land #964 2023-12-12 08:25:37 +01:00
Viktor Szakats
529f90ddd8 windows: minor compat header fixes
- posix_win.c: use `snprintf` as-is with _MSC_VER >= 1900
- stdio.h: include socket header before windows.h
- pthread.h: delete exec permission from source file
2023-12-11 21:56:09 +00:00
Theo Buehler
0a446e81ed Prefix some compat symbols with libressl_
See #928. This isn't a full fix, but should remove much of the friction
already.
2023-12-11 17:14:07 +01:00
Brent Cook
1fd73818df adjust how sizeof time_t is set, the current way causes issues with MSVC 2022's preprocessor 2023-10-29 16:52:28 -05:00
Pierre Wendling
c4bb6b79ea MSVC: Enable building ocspcheck.
- Add `STDIN_FILENO` to compat unistd header.
- Use quotes to include compat getopt header in the compat unistd.
- Export additional symbols needed by ocspcheck (optarg, optind,
  ftruncate)
2023-10-29 12:28:44 -05:00
Brent Cook
1defa3baa5 package getopt compat files 2023-10-01 21:11:11 -05:00
Pierre Wendling
5432e22b25 CMake: Copy public headers to the build directory. 2023-08-19 12:16:15 -04:00
Theo Buehler
ebc38481f0 Simplify and fix solaris endian.h macros
Fixes #898
2023-08-17 21:15:41 +02:00
Brent Cook
29159e34e3 add htole32/le32toh for Solaris 2023-08-16 05:20:48 -05:00
Theo Buehler
3c49cfb344 Add htole32 and le32toh for macos and windows
Windows assumes little endian for now...
2023-08-16 00:03:48 +02:00
Brent Cook
7463f87cf1 add compat getopt implementation, remove patches
This adds a getopt implementation for compatibility where it is not
available, removing a couple of regress patches.

Note, this is a slightly modified copy from OpenBSD libc that doesn't
expose getopt_long, which has dependency conflicts with Windows system
headers and isn't needed anyway.
2023-07-07 12:11:20 +03:00
Brent Cook
4aa7642130 update endian compatibility shim
Prefer function-like macros where possible, some style tweaks, and add
Solaris support.
2023-07-06 11:07:42 +03:00
Brent Cook
3a757272d0 move attribute shims
There's not a great place for these, but since they are internal, we can
just move them to the most common header.
2023-07-05 07:08:32 -05:00
Brent Cook
71ce0b8c3e generate opensslconf.h in build dir for cmake 2023-07-04 10:37:24 +03:00
Theo Buehler
765a8fac94 endian.h: Use POSIX names instead old BSD names 2023-05-17 16:49:25 +02:00
Theo Buehler
7f31918653 attempt to appease mingw32 2023-04-11 17:04:13 +02:00
Theo Buehler
6bbcefa48b Import endianness compat from iked (via tobhe) 2023-04-11 16:06:24 +02:00