From: pwpiwi <pwpiwi@users.noreply.github.com>
Date: Thu, 8 Jun 2017 06:08:30 +0000 (+0200)
Subject: fix MacOS compile errors by replacing memalign() with posix_memalign()
X-Git-Tag: v3.0.1~4^2
X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/commitdiff_plain/c3d117a8a1140af91b1c9cc245ec6cf2c26df391?ds=sidebyside;hp=--cc

fix MacOS compile errors by replacing memalign() with posix_memalign()
---

c3d117a8a1140af91b1c9cc245ec6cf2c26df391
diff --git a/client/hardnested/hardnested_bf_core.c b/client/hardnested/hardnested_bf_core.c
index c22a9a08..05246296 100644
--- a/client/hardnested/hardnested_bf_core.c
+++ b/client/hardnested/hardnested_bf_core.c
@@ -52,8 +52,10 @@ THE SOFTWARE.
 #include <stdint.h>
 #include <stdbool.h>
 #include <stdlib.h>
-#include <stdio.h>
+#ifndef __APPLE__
 #include <malloc.h>
+#endif
+#include <stdio.h>
 #include <string.h>
 #include "crapto1/crapto1.h"
 #include "parity.h"
@@ -141,9 +143,19 @@ bitslice_test_nonces_t bitslice_test_nonces_MMX;
 bitslice_test_nonces_t bitslice_test_nonces_NOSIMD;
 bitslice_test_nonces_t bitslice_test_nonces_dispatch;
 
-#ifdef _WIN32
+#if defined (_WIN32)
 #define malloc_bitslice(x) __builtin_assume_aligned(_aligned_malloc((x), MAX_BITSLICES/8), MAX_BITSLICES/8)
 #define free_bitslice(x) _aligned_free(x)
+#elif defined (__APPLE__)
+static void *malloc_bitslice(size_t x) {
+	char *allocated_memory;
+	if (posix_memalign((void**)&allocated_memory, MAX_BITSLICES/8, x)) {
+		return NULL;
+	} else {
+		return __builtin_assume_aligned(allocated_memory, MAX_BITSLICES/8);
+	}
+}
+#define free_bitslice(x) free(x)
 #else
 #define malloc_bitslice(x) memalign(MAX_BITSLICES/8, (x))
 #define free_bitslice(x) free(x)
diff --git a/client/hardnested/hardnested_bitarray_core.c b/client/hardnested/hardnested_bitarray_core.c
index 5b48a735..320c4a96 100644
--- a/client/hardnested/hardnested_bitarray_core.c
+++ b/client/hardnested/hardnested_bitarray_core.c
@@ -21,7 +21,9 @@
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
+#ifndef __APPLE__
 #include <malloc.h>
+#endif
 
 // this needs to be compiled several times for each instruction set. 
 // For each instruction set, define a dedicated function name:
@@ -143,8 +145,15 @@ count_bitarray_AND4_t count_bitarray_AND4_AVX512, count_bitarray_AND4_AVX2, coun
 
 inline uint32_t *MALLOC_BITARRAY(uint32_t x)
 {
-#ifdef _WIN32
+#if defined (_WIN32)
 	return __builtin_assume_aligned(_aligned_malloc((x), __BIGGEST_ALIGNMENT__), __BIGGEST_ALIGNMENT__);
+#elif defined (__APPLE__)
+	uint32_t *allocated_memory;
+	if (posix_memalign((void**)&allocated_memory, __BIGGEST_ALIGNMENT__, x)) {
+		return NULL;
+	} else {
+		return __builtin_assume_aligned(allocated_memory, __BIGGEST_ALIGNMENT__);
+	}
 #else
 	return __builtin_assume_aligned(memalign(__BIGGEST_ALIGNMENT__, (x)), __BIGGEST_ALIGNMENT__);
 #endif
diff --git a/client/hardnested/hardnested_bruteforce.c b/client/hardnested/hardnested_bruteforce.c
index 3b1c5071..718b7c5d 100644
--- a/client/hardnested/hardnested_bruteforce.c
+++ b/client/hardnested/hardnested_bruteforce.c
@@ -54,7 +54,7 @@ THE SOFTWARE.
 #include <stdio.h>
 #include <pthread.h>
 #include <string.h>
-#include <malloc.h>
+#include <stdlib.h>
 #include "proxmark3.h"
 #include "cmdhfmfhard.h"
 #include "hardnested_bf_core.h"