Files
haikuports/dev-libs/openssl/patches/openssl-1.1.0~git.patchset
Jerome Duval 6b70c41049 openssl: restore patch.
* This reverts commit 7f3bd1daac.
* openssl is about to revert Haiku support.
* remove RC4_CHAR on x86_64.
2016-05-02 00:01:59 +00:00

182 lines
6.4 KiB
Plaintext

From b1191b32183e18c96cf6fd6a8dd0844e7d658054 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Tue, 2 Feb 2016 22:45:09 +0000
Subject: Haiku: add support.
* build fixes.
* we don't have mlock(), disable mem_sec.
diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf
index 930bef4..86defd8 100644
--- a/Configurations/10-main.conf
+++ b/Configurations/10-main.conf
@@ -1525,6 +1525,33 @@
shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
ranlib => "$ENV{'RANLIB'}",
},
+ "haiku-common" => {
+ template => 1,
+ cc => "cc",
+ cflags => "-DL_ENDIAN -Wall",
+ debug_cflags => "-g -O0",
+ release_cflags => "-O2",
+ thread_cflag => "-D_REENTRANT",
+ sys_id => "HAIKU",
+ lflags => "-lnetwork",
+ perlasm_scheme => "elf",
+ dso_scheme => "dlfcn",
+ shared_target => "haiku-shared",
+ shared_cflag => "-fPIC",
+ shared_ldflag => "-shared",
+ shared_extension => ".so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ },
+ "haiku-x86" => {
+ inherit_from => [ "haiku-common", asm("x86_elf_asm") ],
+ release_cflags => add(" ", "-fomit-frame-pointer"),
+ bn_ops => "BN_LLONG",
+ },
+ "haiku-x86_64" => {
+ inherit_from => [ "haiku-common", asm("x86_64_asm") ],
+ cflags => add(" ", "-m64"),
+ bn_ops => "SIXTY_FOUR_BIT_LONG",
+ },
+
##### VMS
"vms-generic" => {
diff --git a/Makefile.shared b/Makefile.shared
index 313de4e..165a0b0 100644
--- a/Makefile.shared
+++ b/Makefile.shared
@@ -561,10 +561,10 @@ symlink.hpux:
symlink.cygwin symlink.alpha-osf1 symlink.tru64 symlink.tru64-rpath:
# Compatibility targets
-link_dso.bsd-gcc-shared link_dso.linux-shared link_dso.gnu-shared: link_dso.gnu
-link_shlib.bsd-gcc-shared link_shlib.gnu-shared: link_shlib.gnu
-link_app.bsd-gcc-shared link_app.linux-shared link_app.gnu-shared: link_app.gnu
-symlink.bsd-gcc-shared symlink.bsd-shared symlink.linux-shared symlink.gnu-shared: symlink.gnu
+link_dso.bsd-gcc-shared link_dso.linux-shared link_dso.gnu-shared link_dso.haiku-shared: link_dso.gnu
+link_shlib.bsd-gcc-shared link_shlib.gnu-shared link_shlib.haiku-shared: link_shlib.gnu
+link_app.bsd-gcc-shared link_app.linux-shared link_app.gnu-shared link_app.haiku-shared: link_app.gnu
+symlink.bsd-gcc-shared symlink.bsd-shared symlink.linux-shared symlink.gnu-shared symlink.haiku-shared: symlink.gnu
link_dso.bsd-shared: link_dso.bsd
link_shlib.bsd-shared: link_shlib.bsd
link_app.bsd-shared: link_app.bsd
diff --git a/config b/config
index ba66b33..0d577d8 100755
--- a/config
+++ b/config
@@ -202,6 +202,10 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
echo "${MACHINE}-whatever-freebsd"; exit 0
;;
+ Haiku:*)
+ echo "${MACHINE}-whatever-haiku"; exit 0
+ ;;
+
NetBSD:*:*:*386*)
echo "`(/usr/sbin/sysctl -n hw.model || /sbin/sysctl -n hw.model) | sed 's,.*\(.\)86-class.*,i\186,'`-whatever-netbsd"; exit 0
;;
@@ -724,6 +728,8 @@ case "$GUESSOS" in
*ELF*) OUT="BSD-x86-elf" ;;
*) OUT="BSD-x86"; options="$options no-sse2" ;;
esac ;;
+ x86_64-*-haiku) OUT="haiku-x86_64" ;;
+ *-*-haiku) OUT="haiku-x86" ;;
*-*-*bsd*) OUT="BSD-generic32" ;;
*-*-osf) OUT="osf1-alpha-cc" ;;
diff --git a/crypto/evp/e_aes_cbc_hmac_sha1.c b/crypto/evp/e_aes_cbc_hmac_sha1.c
index 6dca267..06c24b7 100644
--- a/crypto/evp/e_aes_cbc_hmac_sha1.c
+++ b/crypto/evp/e_aes_cbc_hmac_sha1.c
@@ -92,8 +92,7 @@ typedef struct {
# if defined(AES_ASM) && ( \
defined(__x86_64) || defined(__x86_64__) || \
- defined(_M_AMD64) || defined(_M_X64) || \
- defined(__INTEL__) )
+ defined(_M_AMD64) || defined(_M_X64) )
extern unsigned int OPENSSL_ia32cap_P[];
# define AESNI_CAPABLE (1<<(57-32))
diff --git a/crypto/evp/e_aes_cbc_hmac_sha256.c b/crypto/evp/e_aes_cbc_hmac_sha256.c
index f55a5a0..184ef26 100644
--- a/crypto/evp/e_aes_cbc_hmac_sha256.c
+++ b/crypto/evp/e_aes_cbc_hmac_sha256.c
@@ -92,8 +92,7 @@ typedef struct {
# if defined(AES_ASM) && ( \
defined(__x86_64) || defined(__x86_64__) || \
- defined(_M_AMD64) || defined(_M_X64) || \
- defined(__INTEL__) )
+ defined(_M_AMD64) || defined(_M_X64) )
extern unsigned int OPENSSL_ia32cap_P[];
# define AESNI_CAPABLE (1<<(57-32))
diff --git a/crypto/evp/e_rc4_hmac_md5.c b/crypto/evp/e_rc4_hmac_md5.c
index 05596e4..b8f40ca 100644
--- a/crypto/evp/e_rc4_hmac_md5.c
+++ b/crypto/evp/e_rc4_hmac_md5.c
@@ -102,8 +102,7 @@ static int rc4_hmac_md5_init_key(EVP_CIPHER_CTX *ctx,
# if !defined(OPENSSL_NO_ASM) && ( \
defined(__x86_64) || defined(__x86_64__) || \
- defined(_M_AMD64) || defined(_M_X64) || \
- defined(__INTEL__) )
+ defined(_M_AMD64) || defined(_M_X64) )
# define STITCHED_CALL
# endif
diff --git a/crypto/include/internal/cryptlib.h b/crypto/include/internal/cryptlib.h
index 9e620e6..18d1065 100644
--- a/crypto/include/internal/cryptlib.h
+++ b/crypto/include/internal/cryptlib.h
@@ -92,7 +92,7 @@ DEFINE_LHASH_OF(MEM);
# ifndef OPENSSL_SYS_VMS
# define X509_CERT_AREA OPENSSLDIR
# define X509_CERT_DIR OPENSSLDIR "/certs"
-# define X509_CERT_FILE OPENSSLDIR "/cert.pem"
+# define X509_CERT_FILE OPENSSLDIR "/CARootCertificates.pem"
# define X509_PRIVATE_DIR OPENSSLDIR "/private"
# else
# define X509_CERT_AREA "SSLROOT:[000000]"
diff --git a/crypto/mem_sec.c b/crypto/mem_sec.c
index 7e41765..f25f76b 100644
--- a/crypto/mem_sec.c
+++ b/crypto/mem_sec.c
@@ -16,7 +16,10 @@
#include <string.h>
#if defined(OPENSSL_SYS_LINUX) || defined(OPENSSL_SYS_UNIX)
-# define IMPLEMENTED
+/* Haiku doesn't have mlock() */
+# ifndef OPENSSL_SYS_HAIKU
+# define IMPLEMENTED
+# endif
# include <stdlib.h>
# include <assert.h>
# include <unistd.h>
diff --git a/e_os.h b/e_os.h
index 3a4ba6d..dc311f5 100644
--- a/e_os.h
+++ b/e_os.h
@@ -671,6 +671,13 @@ struct servent *getservbyname(const char *name, const char *proto);
# endif
/* end vxworks */
+/* haiku */
+# if defined(OPENSSL_SYS_HAIKU)
+# include <sys/select.h>
+# include <sys/time.h>
+# endif
+/* end haiku */
+
#define OSSL_NELEM(x) (sizeof(x)/sizeof(x[0]))
#ifdef __cplusplus
--
2.2.2