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>
--- /dev/null
+#!/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")
+#!/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',
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)
#!/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'):
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)