aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2017-10-05 17:04:41 +0100
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2017-10-06 08:47:03 +0100
commit27fdaaa4097fa4b5b13d63b65bf6b5d45e08fc81 (patch)
treefc2e8af79bf74b0a1d7fbf96adbcdc0c83103f33
parentMerge pull request #2518 (diff)
downloadmonero-27fdaaa4097fa4b5b13d63b65bf6b5d45e08fc81.tar.xz
Fix building with -DARCH=default -DNO_AES=ON
-rw-r--r--CMakeLists.txt6
-rw-r--r--src/crypto/slow-hash.c4
2 files changed, 7 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1f74f59e3..9a2310f3e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -452,7 +452,11 @@ else()
option(NO_AES "Explicitly disable AES support" ${NO_AES})
- if(NOT NO_AES AND NOT ARM AND NOT PPC64LE)
+ if(NO_AES)
+ message(STATUS "AES support explicitly disabled")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNO_AES")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNO_AES")
+ elseif(NOT ARM AND NOT PPC64LE)
message(STATUS "AES support enabled")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes")
diff --git a/src/crypto/slow-hash.c b/src/crypto/slow-hash.c
index b92b6e6c3..cc234713b 100644
--- a/src/crypto/slow-hash.c
+++ b/src/crypto/slow-hash.c
@@ -47,7 +47,7 @@
extern int aesb_single_round(const uint8_t *in, uint8_t*out, const uint8_t *expandedKey);
extern int aesb_pseudo_round(const uint8_t *in, uint8_t *out, const uint8_t *expandedKey);
-#if defined(__x86_64__) || (defined(_MSC_VER) && defined(_WIN64))
+#if !defined NO_AES && (defined(__x86_64__) || (defined(_MSC_VER) && defined(_WIN64)))
// Optimised code below, uses x86-specific intrinsics, SSE2, AES-NI
// Fall back to more portable code is down at the bottom
@@ -645,7 +645,7 @@ void cn_slow_hash(const void *data, size_t length, char *hash)
extra_hashes[state.hs.b[0] & 3](&state, 200, hash);
}
-#elif defined(__arm__) || defined(__aarch64__)
+#elif !defined NO_AES && (defined(__arm__) || defined(__aarch64__))
void slow_hash_allocate_state(void)
{
// Do nothing, this is just to maintain compatibility with the upgraded slow-hash.c