diff options
author | Uros Majstorovic <majstor@majstor.org> | 2022-02-02 08:14:56 +0100 |
---|---|---|
committer | Uros Majstorovic <majstor@majstor.org> | 2022-02-02 08:14:56 +0100 |
commit | d359dd9981f4137e8873a7a571e5c54c5b2449c4 (patch) | |
tree | abfe99bcbce4324c71bd03f68581bdd605d13ec9 /ext | |
parent | e215377e5b1440f8ec0842712f2e559e82de2f03 (diff) |
linux and freebsd compatibility
Diffstat (limited to 'ext')
-rw-r--r-- | ext/libressl/include/compat/machine/endian.h | 51 | ||||
-rw-r--r-- | ext/libressl/include/compat/stdlib.h | 47 | ||||
-rw-r--r-- | ext/libressl/ssl_common.mk | 2 |
3 files changed, 100 insertions, 0 deletions
diff --git a/ext/libressl/include/compat/machine/endian.h b/ext/libressl/include/compat/machine/endian.h new file mode 100644 index 0000000..4dcb60d --- /dev/null +++ b/ext/libressl/include/compat/machine/endian.h @@ -0,0 +1,51 @@ +/* + * Public domain + * machine/endian.h compatibility shim + */ + +#ifndef LIBCRYPTOCOMPAT_BYTE_ORDER_H_ +#define LIBCRYPTOCOMPAT_BYTE_ORDER_H_ + +#if defined(_WIN32) + +#define LITTLE_ENDIAN 1234 +#define BIG_ENDIAN 4321 +#define PDP_ENDIAN 3412 + +/* + * Use GCC and Visual Studio compiler defines to determine endian. + */ +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#define BYTE_ORDER LITTLE_ENDIAN +#else +#define BYTE_ORDER BIG_ENDIAN +#endif + +#elif defined(__linux__) || defined(__midipix__) +#include <endian.h> + +#elif defined(__sun) || defined(_AIX) || defined(__hpux) +#include <sys/types.h> +#include <arpa/nameser_compat.h> + +#elif defined(__sgi) +#include <standards.h> +#include <sys/endian.h> + +#else +#include_next <machine/endian.h> + +#endif + +#ifndef __STRICT_ALIGNMENT +#define __STRICT_ALIGNMENT +#if defined(__i386) || defined(__i386__) || \ + defined(__x86_64) || defined(__x86_64__) || \ + defined(__s390__) || defined(__s390x__) || \ + defined(__aarch64__) || \ + ((defined(__arm__) || defined(__arm)) && __ARM_ARCH >= 6) +#undef __STRICT_ALIGNMENT +#endif +#endif + +#endif diff --git a/ext/libressl/include/compat/stdlib.h b/ext/libressl/include/compat/stdlib.h new file mode 100644 index 0000000..2eaea24 --- /dev/null +++ b/ext/libressl/include/compat/stdlib.h @@ -0,0 +1,47 @@ +/* + * stdlib.h compatibility shim + * Public domain + */ + +#ifdef _MSC_VER +#if _MSC_VER >= 1900 +#include <../ucrt/stdlib.h> +#else +#include <../include/stdlib.h> +#endif +#else +#include_next <stdlib.h> +#endif + +#ifndef LIBCRYPTOCOMPAT_STDLIB_H +#define LIBCRYPTOCOMPAT_STDLIB_H + +#include <sys/types.h> +#include <stdint.h> + +#ifndef HAVE_ARC4RANDOM_BUF +uint32_t arc4random(void); +void arc4random_buf(void *_buf, size_t n); +uint32_t arc4random_uniform(uint32_t upper_bound); +#endif + +#ifndef HAVE_FREEZERO +void freezero(void *ptr, size_t sz); +#endif + +#ifndef HAVE_GETPROGNAME +const char * getprogname(void); +#endif + +void *reallocarray(void *, size_t, size_t); + +#ifndef HAVE_RECALLOCARRAY +void *recallocarray(void *, size_t, size_t, size_t); +#endif + +#ifndef HAVE_STRTONUM +long long strtonum(const char *nptr, long long minval, + long long maxval, const char **errstr); +#endif + +#endif diff --git a/ext/libressl/ssl_common.mk b/ext/libressl/ssl_common.mk index fab0710..bac4e9f 100644 --- a/ext/libressl/ssl_common.mk +++ b/ext/libressl/ssl_common.mk @@ -1,6 +1,8 @@ -include common.mk CFLAGS += -I../../include/compat -I../../include +# exclude from include/compat/stdlib.h +CFLAGS += -DHAVE_FREEZERO -DHAVE_GETPROGNAME -DHAVE_RECALLOCARRAY -DHAVE_STRTONUM # exclude from include/compat/string.h CFLAGS += -DHAVE_STRCASECMP -DHAVE_STRLCPY -DHAVE_STRLCAT -DHAVE_STRNDUP -DHAVE_STRNLEN -DHAVE_STRSEP -DHAVE_MEMMEM # exclude from include/compat/unistd.h |