From de2a9b45e7b4a89affa3ac6d0a010cc627ab4a87 Mon Sep 17 00:00:00 2001 From: "Gary V. Vaughan" Date: Mon, 6 Apr 2015 18:39:46 -0700 Subject: [PATCH 1/1] sched: workaround glibc _POSIX_PRIORITY_SCHEDULING bug. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Close #223. * configure.ac (AC_CHECK_HEADERS): Add sched.h. * ext/posix/sched.c: Remove unistd.h; Predicate use of priority scheduling APIs on presence of sched.h instead of _POSIX_PRIORITY_SCHEDULING macro erroneously defined by glibc on Linux. Reported by ncopa@github.com. Backported from: 11cc8a2973569ec7fb1e7c2466dca0282944b124 Signed-off-by: Gary V. Vaughan [Backport] Signed-off-by: Jörg Krause --- configure.ac | 2 +- ext/posix/sched.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index aa18318..89a2feb 100644 --- a/configure.ac +++ b/configure.ac @@ -114,7 +114,7 @@ gl_INIT ## Check for header files AC_HEADER_STDC -AC_CHECK_HEADERS([crypt.h strings.h sys/statvfs.h]) +AC_CHECK_HEADERS([crypt.h sched.h strings.h sys/statvfs.h]) AC_CHECK_HEADERS([net/if.h linux/netlink.h], [], [], [ #include ]) diff --git a/ext/posix/sched.c b/ext/posix/sched.c index 13b196b..f338d73 100644 --- a/ext/posix/sched.c +++ b/ext/posix/sched.c @@ -21,9 +21,10 @@ #include -#include /* for _POSIX_PRIORITY_SCHEDULING */ +/* cannot use unistd.h for _POSIX_PRIORITY_SCHEDULING, because on Linux + glibc it is defined even though the APIs are not implemented :-( */ -#ifdef _POSIX_PRIORITY_SCHEDULING +#ifdef HAVE_SCHED_H #include #endif -- 2.5.2