include/compat

Branch


Log

Author Commit Date CI Message
Brent Cook 7ed28d2f 2025-10-07T05:38:30 add mkstemp for msvc builds
Brent Cook 9ba4b33d 2025-04-16T04:26:34 change prefix for fstat
Brent Cook 78b86a2a 2025-04-12T16:59:51 switch to using high bit for fd detection of file/socket
Cameron Lowell Palmer 5626ce43 2024-12-20T06:52:34 Add in missing endianess functions for Apple targets
Theo Buehler bf808ea0 2024-12-19T20:24:33 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.
Theo Buehler d58e3559 2024-11-23T13:32:04 Attempt to fix windows
Theo Buehler 3467d6f2 2024-08-02T21:54:08 Attempt to fix 2038 problem with MSVC
Theo Buehler f9874d49 2024-05-25T08:56:45 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.
Brent Cook 53edbd00 2024-02-25T18:29:14 define _MSC_VER when preprocessing, add guards
Brent Cook 950b5bc1 2024-02-25T18:12:24 include placeholder cet.h for cpp
Christian Andersen 5bd332ec 2024-02-04T19:16:14 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.
Theo Buehler c515f245 2023-12-19T20:18:29 pthread_once() returns an error code on failure
Theo Buehler f6f90b97 2023-12-14T18:28:55 Fix build on windows
Theo Buehler 0491aef8 2023-12-12T23:20:44 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
Theo Buehler 0d8aa3eb 2023-12-12T08:25:37 Land #964
Viktor Szakats 529f90dd 2023-12-11T21:53:59 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
Theo Buehler 0a446e81 2023-11-18T10:53:09 Prefix some compat symbols with libressl_ See #928. This isn't a full fix, but should remove much of the friction already.
Brent Cook 1fd73818 2023-10-15T19:05:29 adjust how sizeof time_t is set, the current way causes issues with MSVC 2022's preprocessor
Pierre Wendling c4bb6b79 2023-09-12T18:33:46 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)
Theo Buehler ebc38481 2023-08-17T20:46:14 Simplify and fix solaris endian.h macros Fixes #898
Brent Cook 29159e34 2023-08-16T05:20:48 add htole32/le32toh for Solaris
Theo Buehler 3c49cfb3 2023-08-15T23:52:26 Add htole32 and le32toh for macos and windows Windows assumes little endian for now...
Brent Cook 7463f87c 2023-07-07T11:46:21 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.
Brent Cook 4aa76421 2023-07-06T11:06:25 update endian compatibility shim Prefer function-like macros where possible, some style tweaks, and add Solaris support.
Brent Cook 3a757272 2023-07-05T07:08:32 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.
Theo Buehler 765a8fac 2023-05-17T16:49:25 endian.h: Use POSIX names instead old BSD names
Theo Buehler 7f319186 2023-04-11T16:37:04 attempt to appease mingw32
Theo Buehler 6bbcefa4 2023-04-11T16:06:24 Import endianness compat from iked (via tobhe)
Jiajie Chen ef2d6c70 2022-07-12T22:29:39 Detect machine/endian.h for macOS
Sebastian Blunt fe903fb7 2022-04-15T23:48:50 Fix unreachable nc portability shim This fixes nc failing to run on darwin due to it incorrectly setting the linux-specific SOCK_NONBLOCK flag on connect. nc already had a portability shim in apps/nc/compat/sys/socket.h, which kicks in if SOCK_NONBLOCK is undefined. But that header includes include/compat/sys/socket.h, which also has a portability shim that defines a default value for SOCK_NONBLOCK if it's undefined. Thus the first portability shim was unreachable. Fixes this by moving the NEED_SOCKET_FLAGS flag into the outer shim, and having the inner shim activate if NEED_SOCKET_FLAGS is defined. This closes https://github.com/libressl-portable/portable/issues/631
Brent Cook f6deadbe 2022-03-16T04:21:18 add vwarnx
Brent Cook f6906672 2021-11-09T22:34:58 Autoconf updates Move machine/endian.h to endian.h, use AC_HEADER_RESOLV over individual header checks, and include prerequisites for netinet/ip.h check.
Jonas 'Sortie' Termansen fcf6c877 2021-10-03T13:33:16 Support operating systems without some non-POSIX headers The arpa/nameser.h, netinet/ip.h, and resolv.h headers are not crucial to building LibreSSL. The netinet/ip.h header is used in nc(1) for optional IPTOS_ features that can be ifdef'd on systems without support. The endian.h header is the upcoming standard header and should be used whenever available and correct. The machine/endian.h header is non-standard and doesn't have to exist on POSIX systems. Fix the check for getpagesize(3) not forward declaring the function, such that CFLAGS with -Werror=implicit-function-declaration doesn't cause the check to fail.
Brent Cook 90f1c4db 2021-02-28T10:04:51 fix leak in Windows version of pthread_mutex_free Free the lock pointer in addition to the critical section. Thanks to martinkucera74 on github.
Brent Cook 527482b5 2020-12-21T09:39:12 add win32 pthread_mutex_destroy implementation
Joel Sing 17c88164 2020-09-20T02:09:35 Make pthread_mutex static initialisation work on Windows. This takes the dynamic initialisation code added to CRYPTO_lock() in e5081719 and applies it to the Window's pthread_mutex implementation. This allows for PTHREAD_MUTEX_INITIALIZER to be used on Windows. bcook has agreed to place this code in the public domain (as per the rest of the code in pthread.h).
kinichiro 461ec453 2020-09-13T12:58:37 Add queue.h tree.h _null.h Import queue.h tree.h _null.h header files from OpenBSD upstream since x509_issuer_cache.c requires them.
kinichiro 65b01cff 2020-09-13T12:55:02 Add PTHREAD_MUTEX_INITIALIZER
kinichiro 7bf5edc4 2020-07-22T21:32:34 Add architecture define for s390/s390x and remove redundant sparc check
kinichiro 74235827 2020-07-15T01:25:34 Get __STRICT_ALIGNMENT from machine/endian.h
Brent Cook e34586db 2020-04-14T22:38:10 include <windows.h>
Brent Cook 79f2a52a 2020-04-14T22:29:37 avoid exporting a sleep() symbol from libcrypto Since it seems only MSVC lacks sleep(), and it's only used by apps, lets special-case that and make it available as a static inline function instead.
Ørjan Malde b80c4bf2 2019-10-20T20:22:22 initial support for midipix
Brent Cook a2befe33 2019-05-10T11:06:51 unconditionally define reallocarray deal with systems missing it but with it exported as a symbol
Brent Cook a67ba9f4 2019-04-11T07:28:49 add pthread_mutex* windows compat for libtls
Brent Cook 53524626 2019-02-09T09:03:13 add __dead__ annotation support
Brent Cook a6d7ea95 2019-01-31T09:45:56 update autoconf for latest compat functions
Brent Cook b6479e01 2019-01-01T23:07:00 define in_port_t for Android
Brent Cook 7af3ba34 2019-01-06T13:20:29 add configure-time check for timespecsub
Brent Cook d5c155fc 2019-01-01T15:57:36 add stdint.h shim, include limits for SIZE_MAX on Android
Brent Cook 4f1c9507 2018-11-16T05:05:15 hide clock_gettime definition on WIN32
Brent Cook 387d2ae2 2018-11-11T11:00:00 change windows compatibility stubs for pthread_t to be more like other OSes
kinichiro 4fe24eb5 2018-08-22T00:12:56 Disable unveil
Sergei Trofimovich 787d8d24 2018-05-19T17:31:42 __warn_references: tweak assembly for "gnu.warning" section On some targets ';' (like hppa) is treated as a comment in assembly files. This occasionally causes the following assembly failures: ``` Error: can't resolve `.gnu.warning.EVP_DecryptFinal' {.gnu.warning.EVP_DecryptFinal section} - `.Ltext0' {.text section} ``` Note how branch (or other reference) attempts to cross the boundary across two section types: '.text' and '.gnu.warning'. Tobias Ulmer notes that openbsd already uses newlines for similar macro: https://github.com/openbsd/src/blob/master/sys/arch/hppa/include/cdefs.h This change switches from ';' to newline as well. Tested on hppa2.0 and x86_64. Reported-by: Jeroen Roovers Bug: https://bugs.gentoo.org/656104 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Brent Cook 31c98c29 2018-03-23T15:35:58 always allow upstream time.h to be visible
Brent Cook 6b513a1c 2018-03-23T13:45:05 add proper guard and typedef
Brent Cook 4b2a8cd1 2018-03-23T11:10:16 adjust definition of compat clock_gettime
Brent Cook 7ffaf004 2018-03-22T21:11:46 hide clock_gettime on win32
Brent Cook 987aa6a0 2018-03-22T20:50:24 add clock_gettime for macos 10.11 and earlier
Brent Cook 0e46c1e8 2018-03-18T10:36:51 add pthread_self/pthread_equal for win32
Brent Cook 4799f0d9 2018-03-14T12:58:48 syntax updates
Brent Cook cfdaa118 2018-03-14T12:56:26 prefer including windows.h over the internal header
Brent Cook d5608b38 2018-03-14T07:30:55 add pthread_once(3) implementation for Windows
Brent Cook 3fb9e63b 2018-03-14T07:29:04 bump base requirement to Windows Vista, use builtin inet_ntop/pton
kinichiro 3681d022 2018-02-25T01:59:39 Add compat bits for libtls on Windows
kinichiro f2953bc2 2018-02-11T23:31:43 Add file permission define for Windows and MinGW build
kinichiro 1f4bfb9a 2018-01-06T00:28:49 Call va_end soon after using variable length variable - This fix MSVC compiler warning C4702 "unreachable code".
kinichiro 965a8910 2017-12-25T16:30:49 Add CLOCK_MONOTONIC and timersub for the OS that does not have them
Brent Cook 7b6953e9 2017-12-12T03:31:35 add timerspecsub
kinichiro 530fbba1 2017-05-07T02:23:55 Add definition of in_addr_t for Windows build
kinichiro 048625cf 2017-04-22T23:08:17 Add freezero support
kinichiro c61c9821 2017-03-15T21:02:22 Add support for getpagesize
kinichiro 8877e9bc 2017-03-09T22:49:04 Add recallocarray
kinichiro fb936f89 2017-01-28T02:30:16 Move S_IRGRP and S_IROTH from fcntl.h to sys/stat.h - S_IRGRP and S_IROTH should be defined in sys/stat.h rather than fcntl.h - Old MinGW64 on Ubuntu 14.04 appears not to have S_IRGRP and S_IROTH - MinGW64 has __WIN32 defined but does not have _MSC_VER defined
kinichiro e57ab149 2017-01-26T15:00:06 Add STDOUT_FILENO to include/compat/unistd.h
kinichiro f5026b1f 2017-01-27T02:37:52 Add S_IRGRP and S_IROTH to include/compat/fcntl.h for ocspcheck
kinichiro 7dd0650d 2017-01-26T13:58:27 Add inet_ntop and memmem for ocspcheck
kinichiro b249f68e 2017-01-19T09:58:21 Fix fcntl.h shim since HP-UX 11.31 (ia64) does not define O_CLOEXEC
Brent Cook 3b2560fe 2017-01-16T10:36:05 MSVSC fixes
Brent Cook 51a53876 2017-01-15T22:28:36 add fcntl shim
Brent Cook f21bd20c 2017-01-16T09:56:20 add open(2) shim to handle O_BINARY and O_CLOEXEC
Brent Cook 057e7a85 2017-01-15T10:15:51 add noreturn attribute to compat functions
Brent Cook dfb6b11e 2017-01-15T04:30:41 include pipe2/socketpair compat for macOS
Brent Cook cb63e633 2016-10-30T23:14:03 define PATH_MAX in more msvc versions
kinichiro 14905877 2016-10-18T17:13:56 Enable tests on Visual Studio - add patch for aeadtest.c to undef IN - add patch for ocsp_test.c to call BIO_sock_init() before getaddrinfo() - define STDERR_FILENO in unistd.h to build pkcs7test.c - add option ENABLE_VSTEST(default OFF) to enable test on Visual Studio - modify to pass test data file as an argument (aeadtest, evptest) - add Windows scripts (ocsptest, pq_test, ssltest, testdsa, testenc, testrsa) - do not build pidwraptest on MSVC - fix some indentations
Brent Cook b7ba692f 2016-09-14T23:40:10 ensure that __STRING works
Brent Cook 08837a82 2016-09-04T09:04:01 more cdefs.h removal
Brent Cook 6f24864a 2016-09-04T07:57:13 cdefs.h should not be required anywhere
Brent Cook 6040ff04 2016-09-04T07:38:16 wire up sys/types.h to pull in sys/cdefs.h
kinichiro 14aa5f73 2016-03-13T19:17:24 modify include/compat/netinet/ip.h - add including <netinet/in_systm.h> for n_long on HP-UX
Brent Cook 8c91563f 2016-01-18T09:50:23 add solaris include for getentropy(2)
Brent Cook 07e541cc 2016-01-03T19:05:05 replace err.h macros with inline functions Passing NULL for the format is just easier with a function.
Brent Cook 38c577d7 2016-01-03T18:56:24 include strings.h in string.h on AIX as well
Brent Cook 905e2a3b 2015-12-06T23:32:18 refresh nc(1) support
Brent Cook 75ef5bb1 2015-12-05T13:58:37 wrap gets on Windows, replacing '\r\n' with '\n'
Brent Cook 585b57b2 2015-12-02T08:23:51 no special workaround needed for MSVC2015
Brent Cook 0197a589 2015-10-18T09:28:10 Windows compatibility fixes VS2013 has trouble with relative include paths for apps/openssl, so move certhash_win/apps_win.c back to apps/openssl. gmtime_r on mingw64 fails with negative time_t, override gmtime_s fails all of the time unit tests, override SHUT_RD/WR are defined in newer mingw64 headers, check before overriding
Brent Cook a45e38e9 2015-10-17T22:57:59 disable some tests with 32-bit time_t systems Also disable use of _mkgmtime, it does not produce correct results.
Brent Cook e8c92100 2015-10-15T19:33:26 unconditionally disable pledge for now suggested by deraadt@ since there is still more coming
Brent Cook 4298ac93 2015-10-14T23:53:52 include timegm fallback