150 Commits

Author SHA1 Message Date
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
Brent Cook
6501696dd7 generate opensslconf.h for mips 2023-03-23 06:35:41 -05:00
Brent Cook
73d924f643 fix mips/mips64 builds 2023-03-23 06:11:16 -05:00
Brent Cook
b98c56fd5e stop exposing hidden defines in public opensslconf.h
pull in hidden headers instead, patching drectly for Windows support
2023-02-28 01:51:41 -06:00
Brent Cook
8fc30eca61 generate and include arch-specific headers for CMake builds 2023-02-21 00:25:04 -06:00
Brent Cook
c3e1e50cb1 update Makefile.am.tpl to build and install correct opensslconf.h 2023-02-15 19:32:16 -06:00
Brent Cook
3c7747fd8b generate opensslconf.h based on host cpu architecture 2023-02-15 07:56:44 -06:00
Jiajie Chen
ef2d6c70da Detect machine/endian.h for macOS 2022-07-12 22:29:39 +08:00
Sebastian Blunt
fe903fb7c5 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
2022-04-15 23:59:33 -07:00
Brent Cook
f6deadbec9 add vwarnx 2022-03-16 04:21:52 -05:00
Brent Cook
f690667262 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.
2021-11-09 22:43:53 -06:00
Jonas 'Sortie' Termansen
fcf6c87788 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.
2021-10-03 13:33:16 +02:00
Brent Cook
921c0675a2 Add '--enable-libtls-only' build option 2021-04-07 07:51:45 -05:00
Brent Cook
90f1c4db5c fix leak in Windows version of pthread_mutex_free
Free the lock pointer in addition to the critical section. Thanks to
martinkucera74 on github.
2021-02-28 10:04:51 -06:00
Brent Cook
527482b520 add win32 pthread_mutex_destroy implementation 2020-12-21 10:14:21 -06:00
Joel Sing
17c8816401 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).
2020-09-20 02:09:35 +10:00
kinichiro
461ec45335 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.
2020-09-13 21:56:34 +09:00
kinichiro
65b01cff7a Add PTHREAD_MUTEX_INITIALIZER 2020-09-13 21:56:34 +09:00
kinichiro
7bf5edc4f2 Add architecture define for s390/s390x and remove redundant sparc check 2020-07-22 21:32:34 +09:00
kinichiro
7423582705 Get __STRICT_ALIGNMENT from machine/endian.h 2020-07-21 22:13:39 +09:00
Brent Cook
e34586db19 include <windows.h> 2020-04-14 22:38:10 -05:00
Brent Cook
79f2a52a39 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.
2020-04-14 22:29:37 -05:00
Ørjan Malde
b80c4bf262 initial support for midipix 2019-10-20 20:22:22 +02:00
Brent Cook
a2befe3383 unconditionally define reallocarray
deal with systems missing it but with it exported as a symbol
2019-05-10 11:09:18 -05:00
Brent Cook
a67ba9f4ad add pthread_mutex* windows compat for libtls 2019-04-11 07:29:45 -05:00
Brent Cook
535246269d add __dead__ annotation support 2019-02-09 09:09:36 -06:00
Brent Cook
cc0a0e1299 add syslog to compat headers 2019-02-01 05:14:57 -06:00
Brent Cook
a6d7ea9562 update autoconf for latest compat functions 2019-01-31 13:56:56 -06:00
Brent Cook
b6479e01f6 define in_port_t for Android 2019-01-07 06:46:03 -06:00
Brent Cook
7af3ba340d add configure-time check for timespecsub 2019-01-06 15:47:55 -06:00
Brent Cook
d5c155fcb8 add stdint.h shim, include limits for SIZE_MAX on Android 2019-01-01 22:56:13 -06:00
Brent Cook
4f1c9507b6 hide clock_gettime definition on WIN32 2018-11-16 05:17:37 -06:00
Brent Cook
387d2ae261 change windows compatibility stubs for pthread_t to be more like other OSes 2018-11-11 11:00:00 -06:00
kinichiro
4fe24eb56d Disable unveil 2018-08-22 00:12:56 +09:00
Sergei Trofimovich
787d8d240b __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>
2018-05-19 17:38:50 +01:00
Brent Cook
31c98c2969 always allow upstream time.h to be visible 2018-03-23 15:35:58 -05:00
Brent Cook
6b513a1c78 add proper guard and typedef 2018-03-23 13:45:05 -05:00
Brent Cook
4b2a8cd1c1 adjust definition of compat clock_gettime 2018-03-23 11:10:16 -05:00
Brent Cook
7ffaf00415 hide clock_gettime on win32 2018-03-22 21:11:46 -05:00