1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-24 10:50:22 +03:00

lib: crypto: Add the ability to select Intel AESNI instruction set at configure time.

Add --accel-aes=[none|intelaesni] to select.
Default is none.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13008

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
This commit is contained in:
Jeremy Allison 2017-09-06 11:59:44 -07:00
parent 53ac0f7c59
commit 5f87a05aa3
4 changed files with 31 additions and 2 deletions

6
lib/crypto/wscript Normal file
View File

@ -0,0 +1,6 @@
#!/usr/bin/env python
def set_options(opt):
opt.add_option('--accel-aes',
help=("Should we use accelerated AES crypto functions. Options are intelaesni|none."),
action="store", dest='accel_aes', default="none")

View File

@ -1,3 +1,7 @@
#!/usr/bin/env python
import Options
import Utils
if not conf.CHECK_FUNCS_IN('MD5Init', 'bsd', headers='bsd/md5.h',
checklibc=True):
conf.CHECK_FUNCS_IN('MD5Init', 'md5', headers='sys/md5.h',
@ -13,3 +17,12 @@ if conf.CHECK_FUNCS('SHA256_Update'):
conf.DEFINE('SHA256_RENAME_NEEDED', 1)
if conf.CHECK_FUNCS('SHA512_Update'):
conf.DEFINE('SHA512_RENAME_NEEDED', 1)
#
# --aes-accel=XXX selects accelerated AES crypto library to use, if any.
# Default is none.
#
if Options.options.accel_aes.lower() == "intelaesni":
print("Attempting to compile with runtime-switchable x86_64 Intel AES instructions. WARNING - this is temporary.")
elif Options.options.accel_aes.lower() != "none":
raise Utils.WafError('--aes-accel=%s is not a valid option. Valid options are [none|intelaesni]' % Options.options.accel_aes)

View File

@ -1,8 +1,17 @@
#!/usr/bin/env python
import Options
import Utils
def configure(conf):
if conf.CHECK_CFLAGS('-Wp,-E,-lang-asm', '') and conf.env['SYSTEM_UNAME_MACHINE'] == 'x86_64':
conf.DEFINE('HAVE_AESNI_INTEL', 1)
if Options.options.accel_aes.lower() == "intelaesni":
if conf.CHECK_CFLAGS('-Wp,-E,-lang-asm', ''):
if conf.env['SYSTEM_UNAME_MACHINE'] == 'x86_64':
print("Compiling with Intel AES instructions")
conf.DEFINE('HAVE_AESNI_INTEL', 1)
else:
raise Utils.WafError('--aes-accel=intelaesni selected and non x86_64 CPU')
else:
raise Utils.WafError('--aes-accel=intelaesni selected and compiler rejects -Wp,-E,-lang-asm')
def build(bld):
if not bld.CONFIG_SET('HAVE_AESNI_INTEL'):

View File

@ -44,6 +44,7 @@ def set_options(opt):
opt.RECURSE('pidl')
opt.RECURSE('source3')
opt.RECURSE('lib/util')
opt.RECURSE('lib/crypto')
opt.RECURSE('ctdb')
opt.samba_add_onoff_option('pthreadpool', with_name="enable", without_name="disable", default=True)