diff --git a/repos/libports/lib/import/import-libcrypto.mk b/repos/libports/lib/import/import-libcrypto.mk index 1f36a2b46..64ea80f34 100644 --- a/repos/libports/lib/import/import-libcrypto.mk +++ b/repos/libports/lib/import/import-libcrypto.mk @@ -4,6 +4,8 @@ ifeq ($(filter-out $(SPECS),x86_32),) TARGET_CPUARCH=x86_32 else ifeq ($(filter-out $(SPECS),x86_64),) TARGET_CPUARCH=x86_64 +else ifeq ($(filter-out $(SPECS),arm),) +TARGET_CPUARCH=arm endif # include architecture specific opensslconf.h diff --git a/repos/libports/lib/mk/libcrypto.mk b/repos/libports/lib/mk/libcrypto.mk index 46b437eb4..99371c5ed 100644 --- a/repos/libports/lib/mk/libcrypto.mk +++ b/repos/libports/lib/mk/libcrypto.mk @@ -1,11 +1,6 @@ OPENSSL_PORT_DIR := $(call select_from_ports,openssl) LIBCRYPTO_DIR := $(OPENSSL_PORT_DIR)/src/lib/openssl/crypto -# -# ARM is not supported currently (needs testing) -# -REQUIRES = x86 - SHARED_LIB = yes LIBS += libc @@ -202,6 +197,8 @@ TARGET_CPUARCH=x86_64 SRC_S += modexp512.s SRC_S += rc4_md5.s +else ifeq ($(filter-out $(SPECS),arm),) +TARGET_CPUARCH=arm endif INC_DIR += $(REP_DIR)/src/lib/openssl/$(TARGET_CPUARCH)/ diff --git a/repos/libports/lib/mk/libssl.mk b/repos/libports/lib/mk/libssl.mk index acec00460..d4155a1b0 100644 --- a/repos/libports/lib/mk/libssl.mk +++ b/repos/libports/lib/mk/libssl.mk @@ -1,10 +1,5 @@ LIBSSL_PORT_DIR = $(call select_from_ports,openssl) -# -# ARM is not supported currently (needs testing) -# -REQUIRES = x86 - LIBS += libc libcrypto SRC_C = s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c \ @@ -25,6 +20,8 @@ ifeq ($(filter-out $(SPECS),x86_32),) TARGET_CPUARCH=x86_32 else ifeq ($(filter-out $(SPECS),x86_64),) TARGET_CPUARCH=x86_64 +else ifeq ($(filter-out $(SPECS),arm),) +TARGET_CPUARCH=arm endif INC_DIR += $(REP_DIR)/src/lib/openssl/$(TARGET_CPUARCH)/ diff --git a/repos/libports/src/lib/openssl/arm/openssl/README b/repos/libports/src/lib/openssl/arm/openssl/README new file mode 100644 index 000000000..ba70451ef --- /dev/null +++ b/repos/libports/src/lib/openssl/arm/openssl/README @@ -0,0 +1,7 @@ +- 'opensslconf.h' was created by running './Configure linux-armv4' +- modifications: + - disabled the definition of OPENSSL_NO_MD2 + - disabled the definition of OPENSSL_NO_RC5 + - disabled the definition of OPENSSL_NO_STORE + - disabled the definition of OPENSSL_CPUID_OBJ + - changed the definition of OPENSSL_NO_DYNAMIC_ENGINE to OPENSSL_NO_STATIC_ENGINE diff --git a/repos/libports/src/lib/openssl/arm/openssl/opensslconf.h b/repos/libports/src/lib/openssl/arm/openssl/opensslconf.h new file mode 100644 index 000000000..4373cedd8 --- /dev/null +++ b/repos/libports/src/lib/openssl/arm/openssl/opensslconf.h @@ -0,0 +1,234 @@ +/* opensslconf.h */ +/* WARNING: Generated automatically from opensslconf.h.in by Configure. */ + +/* OpenSSL was configured with the following options: */ +#ifndef OPENSSL_DOING_MAKEDEPEND + + +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_GMP +# define OPENSSL_NO_GMP +#endif +#ifndef OPENSSL_NO_JPAKE +# define OPENSSL_NO_JPAKE +#endif +#ifndef OPENSSL_NO_KRB5 +# define OPENSSL_NO_KRB5 +#endif +//#ifndef OPENSSL_NO_MD2 +//# define OPENSSL_NO_MD2 +//#endif +//#ifndef OPENSSL_NO_RC5 +//# define OPENSSL_NO_RC5 +//#endif +#ifndef OPENSSL_NO_RFC3779 +# define OPENSSL_NO_RFC3779 +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +//#ifndef OPENSSL_NO_STORE +//# define OPENSSL_NO_STORE +//#endif + +#endif /* OPENSSL_DOING_MAKEDEPEND */ + +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_NO_STATIC_ENGINE +# define OPENSSL_NO_STATIC_ENGINE +#endif + +/* The OPENSSL_NO_* macros are also defined as NO_* if the application + asks for it. This is a transient feature that is provided for those + who haven't had the time to do the appropriate changes in their + applications. */ +#ifdef OPENSSL_ALGORITHM_DEFINES +# if defined(OPENSSL_NO_EC_NISTP_64_GCC_128) && !defined(NO_EC_NISTP_64_GCC_128) +# define NO_EC_NISTP_64_GCC_128 +# endif +# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP) +# define NO_GMP +# endif +# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE) +# define NO_JPAKE +# endif +# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5) +# define NO_KRB5 +# endif +# if defined(OPENSSL_NO_MD2) && !defined(NO_MD2) +# define NO_MD2 +# endif +# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5) +# define NO_RC5 +# endif +# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779) +# define NO_RFC3779 +# endif +# if defined(OPENSSL_NO_SCTP) && !defined(NO_SCTP) +# define NO_SCTP +# endif +# if defined(OPENSSL_NO_STORE) && !defined(NO_STORE) +# define NO_STORE +# endif +#endif + +//#define OPENSSL_CPUID_OBJ + +/* crypto/opensslconf.h.in */ + +/* Generate 80386 code? */ +#undef I386_ONLY + +#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */ +#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) +#define ENGINESDIR "/usr/local/ssl/lib/engines" +#define OPENSSLDIR "/usr/local/ssl" +#endif +#endif + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +#if defined(HEADER_IDEA_H) && !defined(IDEA_INT) +#define IDEA_INT unsigned int +#endif + +#if defined(HEADER_MD2_H) && !defined(MD2_INT) +#define MD2_INT unsigned int +#endif + +#if defined(HEADER_RC2_H) && !defined(RC2_INT) +/* I need to put in a mod for the alpha - eay */ +#define RC2_INT unsigned int +#endif + +#if defined(HEADER_RC4_H) +#if !defined(RC4_INT) +/* using int types make the structure larger but make the code faster + * on most boxes I have tested - up to %20 faster. */ +/* + * I don't know what does "most" mean, but declaring "int" is a must on: + * - Intel P6 because partial register stalls are very expensive; + * - elder Alpha because it lacks byte load/store instructions; + */ +#define RC4_INT unsigned char +#endif +#if !defined(RC4_CHUNK) +/* + * This enables code handling data aligned at natural CPU word + * boundary. See crypto/rc4/rc4_enc.c for further details. + */ +#define RC4_CHUNK unsigned long +#endif +#endif + +#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG) +/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a + * %20 speed up (longs are 8 bytes, int's are 4). */ +#ifndef DES_LONG +#define DES_LONG unsigned int +#endif +#endif + +#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H) +#define CONFIG_HEADER_BN_H +#define BN_LLONG + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#undef SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#define THIRTY_TWO_BIT +#endif + +#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H) +#define CONFIG_HEADER_RC4_LOCL_H +/* if this is defined data[i] is used instead of *data, this is a %20 + * speedup on x86 */ +#undef RC4_INDEX +#endif + +#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H) +#define CONFIG_HEADER_BF_LOCL_H +#define BF_PTR +#endif /* HEADER_BF_LOCL_H */ + +#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H) +#define CONFIG_HEADER_DES_LOCL_H +#ifndef DES_DEFAULT_OPTIONS +/* the following is tweaked from a config script, that is why it is a + * protected undef/define */ +#ifndef DES_PTR +#undef DES_PTR +#endif + +/* This helps C compiler generate the correct code for multiple functional + * units. It reduces register dependancies at the expense of 2 more + * registers */ +#ifndef DES_RISC1 +#undef DES_RISC1 +#endif + +#ifndef DES_RISC2 +#undef DES_RISC2 +#endif + +#if defined(DES_RISC1) && defined(DES_RISC2) +YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!! +#endif + +/* Unroll the inner loop, this sometimes helps, sometimes hinders. + * Very mucy CPU dependant */ +#ifndef DES_UNROLL +#define DES_UNROLL +#endif + +/* These default values were supplied by + * Peter Gutman + * They are only used if nothing else has been defined */ +#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL) +/* Special defines which change the way the code is built depending on the + CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find + even newer MIPS CPU's, but at the moment one size fits all for + optimization options. Older Sparc's work better with only UNROLL, but + there's no way to tell at compile time what it is you're running on */ + +#if defined( sun ) /* Newer Sparc's */ +# define DES_PTR +# define DES_RISC1 +# define DES_UNROLL +#elif defined( __ultrix ) /* Older MIPS */ +# define DES_PTR +# define DES_RISC2 +# define DES_UNROLL +#elif defined( __osf1__ ) /* Alpha */ +# define DES_PTR +# define DES_RISC2 +#elif defined ( _AIX ) /* RS6000 */ + /* Unknown */ +#elif defined( __hpux ) /* HP-PA */ + /* Unknown */ +#elif defined( __aux ) /* 68K */ + /* Unknown */ +#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */ +# define DES_UNROLL +#elif defined( __sgi ) /* Newer MIPS */ +# define DES_PTR +# define DES_RISC2 +# define DES_UNROLL +#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */ +# define DES_PTR +# define DES_RISC1 +# define DES_UNROLL +#endif /* Systems-specific speed defines */ +#endif + +#endif /* DES_DEFAULT_OPTIONS */ +#endif /* HEADER_DES_LOCL_H */