aboutsummaryrefslogtreecommitdiff
path: root/security/beecrypt
diff options
context:
space:
mode:
authorMikhail Teterin <mi@FreeBSD.org>2014-04-27 21:37:13 +0000
committerMikhail Teterin <mi@FreeBSD.org>2014-04-27 21:37:13 +0000
commit29f724f79f540a961ecb9d5c55018bc9e171e648 (patch)
treedd69176d026baa71790f7302772b94482e07d8a5 /security/beecrypt
parent9aab20fca04df1be1107bd21be883bf272feb060 (diff)
downloadports-29f724f79f540a961ecb9d5c55018bc9e171e648.tar.gz
ports-29f724f79f540a961ecb9d5c55018bc9e171e648.zip
When -march=FOO happens to be among CFLAGS, unexpected things could
occur (for example, -march=core2 used to break build). Not a FreeBSD problem even -- Linux crowd was bitten by this too (and misdiagnosed it). Our package-building does not include the flag, which is why we haven't seen this before. Attempt to help configure better detect the architecture and CPU-capabilities -- and use assembler-implementations of various routines, where possible. ("make check" is almost 30% faster now) Ensure, SSE2-specific code builds properly with clang as well as gcc. Ensure, the author's "make check" runs as regression-test. Add another patch found on SourceForge. (Attempt to) unbreak on PowerPC -- untested. Bump PORTREVISION. Take maintainership for the time being, to deal with any fallout.
Notes
Notes: svn path=/head/; revision=352464
Diffstat (limited to 'security/beecrypt')
-rw-r--r--security/beecrypt/Makefile21
-rw-r--r--security/beecrypt/distinfo2
-rw-r--r--security/beecrypt/files/patch-configure27
-rw-r--r--security/beecrypt/files/patch-sha-sse21
4 files changed, 59 insertions, 12 deletions
diff --git a/security/beecrypt/Makefile b/security/beecrypt/Makefile
index 1ffb40d475b5..948339154d2d 100644
--- a/security/beecrypt/Makefile
+++ b/security/beecrypt/Makefile
@@ -1,12 +1,14 @@
# Created by: Ying-Chieh Liao <ijliao@FreeBSD.org>
# $FreeBSD$
-
PORTNAME= beecrypt
PORTVERSION= 4.2.1
+PORTREVISION= 1
CATEGORIES= security
MASTER_SITES= SF
+PATCHFILES= mpntrbits.patch
+PATCH_SITES= http://sourceforge.net/p/beecrypt/patches/_discuss/thread/bff89ba1/5387/attachment/
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= mi@aldan.algebra.com
COMMENT= BeeCrypt is an open source cryptography library
USE_AUTOTOOLS= libtool
@@ -25,10 +27,15 @@ CONFIGURE_ARGS+= --enable-openmp
CONFIGURE_ARGS+= --disable-openmp
.endif
-.include <bsd.port.pre.mk>
-
-.if ${ARCH} == "powerpc"
-BROKEN= Does not compile on powerpc
+# Configure tries to guess our CPU-features using Linux-centric logic.
+# Help it here:
+.for o in sse3 sse2 sse mmx
+.if ${MACHINE_CPU:M$o} != ""
+CPPFLAGS+= -DOPTIMIZE_${o:U}
.endif
+.endfor
+
+regression-test test check: build
+ ${MAKE} -C ${WRKSRC} check
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/security/beecrypt/distinfo b/security/beecrypt/distinfo
index 78151a3ba043..88bdd8081120 100644
--- a/security/beecrypt/distinfo
+++ b/security/beecrypt/distinfo
@@ -1,2 +1,4 @@
SHA256 (beecrypt-4.2.1.tar.gz) = 286f1f56080d1a6b1d024003a5fa2158f4ff82cae0c6829d3c476a4b5898c55d
SIZE (beecrypt-4.2.1.tar.gz) = 882758
+SHA256 (mpntrbits.patch) = aa313e42c85dfc653a443ca5eaf56691bb8155e612023d1b7d354141f44fd146
+SIZE (mpntrbits.patch) = 1213
diff --git a/security/beecrypt/files/patch-configure b/security/beecrypt/files/patch-configure
index 1a7faaeda1c8..c2f667aa7f5a 100644
--- a/security/beecrypt/files/patch-configure
+++ b/security/beecrypt/files/patch-configure
@@ -1,13 +1,30 @@
$FreeBSD$
---- configure.orig Mon Nov 29 13:50:41 2004
-+++ configure Mon Nov 29 13:52:11 2004
-@@ -25861,6 +25861,8 @@
+--- configure Mon Nov 29 13:50:41 2004
++++ configure 2014-04-27 14:31:36.000000000 -0400
+@@ -3008,7 +3005,7 @@
+ sparc*)
+ bc_target_arch=sparc
+ ;;
+- x86_64)
++ x86_64|amd64)
+ bc_target_arch=x86_64
+ ;;
+ esac
+@@ -3120,7 +3121,4 @@
+ # Check for expert mode
+ if test "$ac_enable_expert_mode" = yes; then
+-
+- # try to get the architecture from CFLAGS
+- bc_target_arch=`echo $CFLAGS | awk '{for (i=1; i<=NF; i++) if (substr($i,0,7)=="-march=") print substr($i,8)}'`
+ # examine the other flags
+ for flag in `echo $CFLAGS`
+@@ -24015,6 +24012,8 @@
ac_cv_java_include="-I$java_include -I$java_include/osf" ;;
solaris*)
ac_cv_java_include="-I$java_include -I$java_include/solaris" ;;
+ freebsd*)
+ ac_cv_java_include="-I$java_include -I$java_include/freebsd" ;;
*)
- { echo "$as_me:$LINENO: WARNING: please add appropriate -I$java_include/<operating system> flag" >&5
- echo "$as_me: WARNING: please add appropriate -I$java_include/<operating system> flag" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: please add appropriate -I$java_include/<operating system> flag" >&5
+ $as_echo "$as_me: WARNING: please add appropriate -I$java_include/<operating system> flag" >&2;}
diff --git a/security/beecrypt/files/patch-sha-sse b/security/beecrypt/files/patch-sha-sse
new file mode 100644
index 000000000000..b865ac70b70f
--- /dev/null
+++ b/security/beecrypt/files/patch-sha-sse
@@ -0,0 +1,21 @@
+Fix the SSE2-specific code for clang -- it differs from GCC in this.
+--- sha384.c 2009-06-18 05:14:35.000000000 -0400
++++ sha384.c 2014-04-27 17:15:13.000000000 -0400
+@@ -131,6 +131,6 @@
+ #ifdef OPTIMIZE_SSE2
+
+- # if defined(_MSC_VER) || defined (__INTEL_COMPILER)
+- static const __m64 MASK = { 0x00FF00FF00FF00FF00 };
++ # if defined(_MSC_VER) || defined (__INTEL_COMPILER) || defined(__clang__)
++ static const __m64 MASK = { 0x00FF00FF00FF00FF };
+ # elif defined(__GNUC__)
+ static const __m64 MASK = { 0x00FF00FF, 0x00FF00FF };
+--- sha512.c 2009-06-18 05:15:57.000000000 -0400
++++ sha512.c 2014-04-27 17:15:47.000000000 -0400
+@@ -131,5 +131,5 @@
+ {
+ #ifdef OPTIMIZE_SSE2
+- # if defined(_MSC_VER) || defined(__INTEL_COMPILER)
++ # if defined(_MSC_VER) || defined(__INTEL_COMPILER) || defined(__clang__)
+ static const __m64 MASK = { 0x00FF00FF00FF00FF };
+ # elif defined(__GNUC__)