aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorBrent Cook <bcook@openbsd.org>2014-12-06 18:43:58 -0600
committerBrent Cook <bcook@openbsd.org>2014-12-07 16:26:28 -0600
commit03cd45e2c78b0298ab006fb64a4cda4fe6ab5657 (patch)
treeb6169d60691749d3a8a27c366646f7ad34d5c7d1 /configure.ac
parente57d5d8be3fbab0aa2ffa87f79d5fb079a0af2e9 (diff)
downloadportable-03cd45e2c78b0298ab006fb64a4cda4fe6ab5657.tar.gz
portable-03cd45e2c78b0298ab006fb64a4cda4fe6ab5657.tar.bz2
portable-03cd45e2c78b0298ab006fb64a4cda4fe6ab5657.zip
Enable optimized crypto operations for x86_64
This adds initial support for assembly crypto acceleration on x86_64 for ELF (Linux, *BSD, Solaris) and Mach-O (OS-X) systems. The build method is a little different than OpenSSL and OpenBSD. All the .s files are generated ahead of time when the tarball is generated, so there are no complicated makefile rules at configure/build time. This also means the builds are faster and perl is not required on the build system. Thanks to Wouter Clarie for providing the initial cleanup and patch that this is based on.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac45
1 files changed, 29 insertions, 16 deletions
diff --git a/configure.ac b/configure.ac
index 2cc7477..4b3d209 100644
--- a/configure.ac
+++ b/configure.ac
@@ -14,22 +14,21 @@ CFLAGS="$CFLAGS -Wall -std=gnu99 -g"
14 14
15case $host_os in 15case $host_os in
16 *darwin*) 16 *darwin*)
17 HOST_OS=darwin; 17 HOST_OS=darwin
18 HOST_ABI=macosx
18 ;; 19 ;;
19 *freebsd*) 20 *freebsd*)
20 HOST_OS=freebsd; 21 HOST_OS=freebsd
22 HOST_ABI=elf
21 AC_SUBST([PROG_LDADD], ['-lthr']) 23 AC_SUBST([PROG_LDADD], ['-lthr'])
22 ;; 24 ;;
23 *linux*) 25 *linux*)
24 HOST_OS=linux; 26 HOST_OS=linux
27 HOST_ABI=elf
25 CFLAGS="$CFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE" 28 CFLAGS="$CFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE"
26 ;; 29 ;;
27 *solaris*)
28 HOST_OS=solaris;
29 CFLAGS="$CFLAGS -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 -DBSD_COMP"
30 AC_SUBST([PLATFORM_LDADD], ['-lnsl -lsocket'])
31 ;;
32 *openbsd*) 30 *openbsd*)
31 HOST_ABI=elf
33 AC_DEFINE([HAVE_ATTRIBUTE__BOUNDED__], [1], [OpenBSD gcc has bounded]) 32 AC_DEFINE([HAVE_ATTRIBUTE__BOUNDED__], [1], [OpenBSD gcc has bounded])
34 ;; 33 ;;
35 *mingw*) 34 *mingw*)
@@ -37,14 +36,20 @@ case $host_os in
37 CFLAGS="$CFLAGS -D_GNU_SOURCE -D_POSIX -D_POSIX_SOURCE -D_REENTRANT -D_POSIX_THREAD_SAFE_FUNCTIONS -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -DOPENSSL_NO_SPEED -D__USE_MINGW_ANSI_STDIO" 36 CFLAGS="$CFLAGS -D_GNU_SOURCE -D_POSIX -D_POSIX_SOURCE -D_REENTRANT -D_POSIX_THREAD_SAFE_FUNCTIONS -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600 -DOPENSSL_NO_SPEED -D__USE_MINGW_ANSI_STDIO"
38 AC_SUBST([PLATFORM_LDADD], ['-lws2_32']) 37 AC_SUBST([PLATFORM_LDADD], ['-lws2_32'])
39 ;; 38 ;;
39 *solaris*)
40 HOST_OS=solaris
41 HOST_ABI=elf
42 CFLAGS="$CFLAGS -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 -DBSD_COMP"
43 AC_SUBST([PLATFORM_LDADD], ['-lnsl -lsocket'])
44 ;;
40 *) ;; 45 *) ;;
41esac 46esac
42 47
43AM_CONDITIONAL(HOST_DARWIN, test x$HOST_OS = xdarwin) 48AM_CONDITIONAL([HOST_DARWIN], [test x$HOST_OS = xdarwin])
44AM_CONDITIONAL(HOST_FREEBSD, test x$HOST_OS = xfreebsd) 49AM_CONDITIONAL([HOST_FREEBSD], [test x$HOST_OS = xfreebsd])
45AM_CONDITIONAL(HOST_LINUX, test x$HOST_OS = xlinux) 50AM_CONDITIONAL([HOST_LINUX], [test x$HOST_OS = xlinux])
46AM_CONDITIONAL(HOST_SOLARIS, test x$HOST_OS = xsolaris) 51AM_CONDITIONAL([HOST_SOLARIS], [test x$HOST_OS = xsolaris])
47AM_CONDITIONAL(HOST_WIN, test x$HOST_OS = xwin) 52AM_CONDITIONAL([HOST_WIN], [test x$HOST_OS = xwin])
48 53
49AC_CHECK_FUNC([clock_gettime],, 54AC_CHECK_FUNC([clock_gettime],,
50 [AC_SEARCH_LIBS([clock_gettime],[rt posix4])]) 55 [AC_SEARCH_LIBS([clock_gettime],[rt posix4])])
@@ -52,6 +57,7 @@ AC_CHECK_FUNC([clock_gettime],,
52AC_CHECK_FUNC([dl_iterate_phdr],, 57AC_CHECK_FUNC([dl_iterate_phdr],,
53 [AC_SEARCH_LIBS([dl_iterate_phdr],[dl])]) 58 [AC_SEARCH_LIBS([dl_iterate_phdr],[dl])])
54 59
60AM_PROG_AS
55AC_PROG_CC 61AC_PROG_CC
56AC_PROG_LIBTOOL 62AC_PROG_LIBTOOL
57AC_PROG_CC_STDC 63AC_PROG_CC_STDC
@@ -134,18 +140,25 @@ fi
134AC_CHECK_HEADERS([sys/sysctl.h err.h]) 140AC_CHECK_HEADERS([sys/sysctl.h err.h])
135 141
136AC_ARG_WITH([openssldir], 142AC_ARG_WITH([openssldir],
137 AS_HELP_STRING([--with-openssldir], [Set the default openssl directory]), 143 AS_HELP_STRING([--with-openssldir],
144 [Set the default openssl directory]),
138 AC_DEFINE_UNQUOTED(OPENSSLDIR, "$withval") 145 AC_DEFINE_UNQUOTED(OPENSSLDIR, "$withval")
139) 146)
140 147
141AC_ARG_WITH([enginesdir], 148AC_ARG_WITH([enginesdir],
142 AS_HELP_STRING([--with-enginesdir], [Set the default engines directory (use with openssldir)]), 149 AS_HELP_STRING([--with-enginesdir],
150 [Set the default engines directory (use with openssldir)]),
143 AC_DEFINE_UNQUOTED(ENGINESDIR, "$withval") 151 AC_DEFINE_UNQUOTED(ENGINESDIR, "$withval")
144) 152)
145 153
146AC_ARG_ENABLE([asm], 154AC_ARG_ENABLE([asm],
147 AS_HELP_STRING([--disable-asm], [Disable assembly])) 155 AS_HELP_STRING([--disable-asm], [Disable assembly]))
148AS_IF([test "x$enable_asm" = "xno"], [CFLAGS="$CFLAGS -DOPENSSL_NO_ASM"]) 156AM_CONDITIONAL([OPENSSL_NO_ASM], [test "x$enable_asm" = "xno"])
157
158AM_CONDITIONAL([HOST_ASM_ELF_X86_64],
159 [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "x86_64" -a "x$enable_asm" != "xno"])
160AM_CONDITIONAL([HOST_ASM_MACOSX_X86_64],
161 [test "x$HOST_ABI" = "xmacosx" -a "$host_cpu" = "x86_64" -a "x$enable_asm" != "xno"])
149 162
150AC_ARG_ENABLE([libtls], 163AC_ARG_ENABLE([libtls],
151 AS_HELP_STRING([--enable-libtls], [Enable building the libtls library])) 164 AS_HELP_STRING([--enable-libtls], [Enable building the libtls library]))