diff --git a/examples/main.c b/examples/main.c
index f39c1aa36caf22c8c90dbdbeedf96849a29b6143..bd94d79ad2530c51bd1dc82401c5e3d60cc5e589 100644
--- a/examples/main.c
+++ b/examples/main.c
@@ -117,7 +117,7 @@ int main(int argc, char *argv[]) {
 #endif
 
 /* Let's pin the main thread */
-#if defined(HAVE_SETAFFINITY) && defined(HAVE_LIBNUMA)
+#if defined(HAVE_SETAFFINITY) && defined(HAVE_LIBNUMA) && defined(_GNU_SOURCE)
   if (((ENGINE_POLICY) & engine_policy_setaffinity) ==
       engine_policy_setaffinity)
     engine_pin();
diff --git a/src/engine.c b/src/engine.c
index d87616b8fe07ed06df7377407b898aafc3329bef..625d43aaef3d62b6bc993f1659a96ed0a431cd33 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -2443,7 +2443,7 @@ void engine_init(struct engine *e, struct space *s,
     skip = c + 1;
   }
 
-#if defined(HAVE_LIBNUMA)
+#if defined(HAVE_LIBNUMA) && defined(_GNU_SOURCE)
   if ((policy & engine_policy_cputight) != engine_policy_cputight) {
     /* Ascending NUMA distance. Bubblesort(!) for stable equidistant CPUs. */
     if (numa_available() >= 0) {