diff --git a/src/lib/small/slab_arena.c b/src/lib/small/slab_arena.c
index 72ee273f8b24e9fabb77589dac15012f1d418e27..798c496f8bcd14e4305e15d924e915cfb2f0edeb 100644
--- a/src/lib/small/slab_arena.c
+++ b/src/lib/small/slab_arena.c
@@ -35,7 +35,7 @@
 #include <assert.h>
 #include <limits.h>
 
-#if defined(__FreeBSD__)
+#if !defined(MAP_ANONYMOUS)
 #define MAP_ANONYMOUS MAP_ANON
 #endif
 
diff --git a/test/unit/arena_mt.c b/test/unit/arena_mt.c
index 87028b4d649bbf71021c05f71f9b1971b5449a0a..725d63b6fd34d39c0b4b54f717d870460eb36d48 100644
--- a/test/unit/arena_mt.c
+++ b/test/unit/arena_mt.c
@@ -16,7 +16,7 @@ int FILL = SLAB_MIN_SIZE/sizeof(pthread_t);
 void *
 run(void *p __attribute__((unused)))
 {
-	unsigned int seed = pthread_self();
+	unsigned int seed = (unsigned int) pthread_self();
 	int iterations = rand_r(&seed) % ITERATIONS;
 	pthread_t **slabs = slab_map(&arena);
 	for (int i = 0; i < iterations; i++) {
@@ -27,7 +27,7 @@ run(void *p __attribute__((unused)))
 				slabs[osc][fill] = pthread_self();
 			}
 		}
-		pthread_yield();
+		sched_yield();
 		for (int osc = 0; osc  < oscillation; osc++) {
 			for (int fill = 0; fill < FILL; fill+= 100) {
 				fail_unless(slabs[osc][fill] ==
diff --git a/test/unit/lf_lifo.c b/test/unit/lf_lifo.c
index 3f6cb6917d8d984debe54c8624dc8e2a9132c248..1c959ee37bbccf75bd3e3bf9dc9f8cac3a28b00c 100644
--- a/test/unit/lf_lifo.c
+++ b/test/unit/lf_lifo.c
@@ -2,7 +2,7 @@
 #include "unit.h"
 #include <sys/mman.h>
 
-#if defined(__FreeBSD__)
+#if !defined(MAP_ANONYMOUS)
 #define MAP_ANONYMOUS MAP_ANON
 #endif