--- a/cmake/CheckIncludeFiles.cmake
+++ b/cmake/CheckIncludeFiles.cmake
@@ -46,4 +46,7 @@
 CHECK_INCLUDE_FILES (sys/un.h HAVE_SYS_UN_H)
 CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H)
 CHECK_INCLUDE_FILES (utime.h HAVE_UTIME_H)
-CHECK_INCLUDE_FILES (ucontext.h HAVE_UCONTEXT_H)
+CHECK_INCLUDE_FILES (ucontext.h HAVE_UCONTEXT_HEADER)
+IF(HAVE_UCONTEXT_HEADER)
+  CHECK_FUNCTION_EXISTS(makecontext HAVE_UCONTEXT_H)
+ENDIF(HAVE_UCONTEXT_HEADER)
