mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-13 23:30:04 +02:00
* This reverts commit 7f3bd1daac.
* openssl is about to revert Haiku support.
* remove RC4_CHAR on x86_64.
182 lines
6.4 KiB
Plaintext
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
|
|
|