diff options
author | Brent Cook <bcook@openbsd.org> | 2014-12-06 18:43:58 -0600 |
---|---|---|
committer | Brent Cook <bcook@openbsd.org> | 2014-12-07 16:26:28 -0600 |
commit | 03cd45e2c78b0298ab006fb64a4cda4fe6ab5657 (patch) | |
tree | b6169d60691749d3a8a27c366646f7ad34d5c7d1 /configure.ac | |
parent | e57d5d8be3fbab0aa2ffa87f79d5fb079a0af2e9 (diff) | |
download | portable-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.ac | 45 |
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 | ||
15 | case $host_os in | 15 | case $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 | *) ;; |
41 | esac | 46 | esac |
42 | 47 | ||
43 | AM_CONDITIONAL(HOST_DARWIN, test x$HOST_OS = xdarwin) | 48 | AM_CONDITIONAL([HOST_DARWIN], [test x$HOST_OS = xdarwin]) |
44 | AM_CONDITIONAL(HOST_FREEBSD, test x$HOST_OS = xfreebsd) | 49 | AM_CONDITIONAL([HOST_FREEBSD], [test x$HOST_OS = xfreebsd]) |
45 | AM_CONDITIONAL(HOST_LINUX, test x$HOST_OS = xlinux) | 50 | AM_CONDITIONAL([HOST_LINUX], [test x$HOST_OS = xlinux]) |
46 | AM_CONDITIONAL(HOST_SOLARIS, test x$HOST_OS = xsolaris) | 51 | AM_CONDITIONAL([HOST_SOLARIS], [test x$HOST_OS = xsolaris]) |
47 | AM_CONDITIONAL(HOST_WIN, test x$HOST_OS = xwin) | 52 | AM_CONDITIONAL([HOST_WIN], [test x$HOST_OS = xwin]) |
48 | 53 | ||
49 | AC_CHECK_FUNC([clock_gettime],, | 54 | AC_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],, | |||
52 | AC_CHECK_FUNC([dl_iterate_phdr],, | 57 | AC_CHECK_FUNC([dl_iterate_phdr],, |
53 | [AC_SEARCH_LIBS([dl_iterate_phdr],[dl])]) | 58 | [AC_SEARCH_LIBS([dl_iterate_phdr],[dl])]) |
54 | 59 | ||
60 | AM_PROG_AS | ||
55 | AC_PROG_CC | 61 | AC_PROG_CC |
56 | AC_PROG_LIBTOOL | 62 | AC_PROG_LIBTOOL |
57 | AC_PROG_CC_STDC | 63 | AC_PROG_CC_STDC |
@@ -134,18 +140,25 @@ fi | |||
134 | AC_CHECK_HEADERS([sys/sysctl.h err.h]) | 140 | AC_CHECK_HEADERS([sys/sysctl.h err.h]) |
135 | 141 | ||
136 | AC_ARG_WITH([openssldir], | 142 | AC_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 | ||
141 | AC_ARG_WITH([enginesdir], | 148 | AC_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 | ||
146 | AC_ARG_ENABLE([asm], | 154 | AC_ARG_ENABLE([asm], |
147 | AS_HELP_STRING([--disable-asm], [Disable assembly])) | 155 | AS_HELP_STRING([--disable-asm], [Disable assembly])) |
148 | AS_IF([test "x$enable_asm" = "xno"], [CFLAGS="$CFLAGS -DOPENSSL_NO_ASM"]) | 156 | AM_CONDITIONAL([OPENSSL_NO_ASM], [test "x$enable_asm" = "xno"]) |
157 | |||
158 | AM_CONDITIONAL([HOST_ASM_ELF_X86_64], | ||
159 | [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "x86_64" -a "x$enable_asm" != "xno"]) | ||
160 | AM_CONDITIONAL([HOST_ASM_MACOSX_X86_64], | ||
161 | [test "x$HOST_ABI" = "xmacosx" -a "$host_cpu" = "x86_64" -a "x$enable_asm" != "xno"]) | ||
149 | 162 | ||
150 | AC_ARG_ENABLE([libtls], | 163 | AC_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])) |