diff --git a/src/lib/small/slab_cache.c b/src/lib/small/slab_cache.c
index 940a0b4fdff80eb73bcbdf67a7b40fed2ec12a1c..d04bfc11464ad795f6d4acad6e6f5ca971e21304 100644
--- a/src/lib/small/slab_cache.c
+++ b/src/lib/small/slab_cache.c
@@ -36,6 +36,15 @@
 
 static const uint32_t slab_magic = 0xeec0ffee;
 
+#if !defined(MAP_ANONYMOUS)
+/*
+ * MAP_ANON is deprecated, MAP_ANONYMOUS should be used instead.
+ * Unfortunately, it's not universally present (e.g. not present
+ * on FreeBSD.
+ */
+#define MAP_ANONYMOUS MAP_ANON
+#endif /* !defined(MAP_ANONYMOUS) */
+
 /**
  * Given a pointer allocated in a slab, get the handle
  * of the slab itself.