diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2012-09-26 18:06:23 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2012-09-26 18:06:23 -0700 |
commit | a615a3aeef0fb1469dcf89e2217a027a6dce82c1 (patch) | |
tree | 6a9d26ac4b2a5ac287af1485234637c992474e12 /m4/timer_time.m4 | |
parent | 3670daf7f9a480d8e87b292ff7051d5be331c6b4 (diff) | |
download | emacs-a615a3aeef0fb1469dcf89e2217a027a6dce82c1.tar.gz |
Check more robustly for timer_settime.
This should fix an OS X build problem reported by Ivan Andrus in
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00671.html>.
* admin/merge-gnulib (GNULIB_MODULES): Add timer-time.
* configure.ac (gl_THREADLIB): Define to empty, since Emacs
does threads its own way.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* m4/timer_time.m4: New file, from gnulib.
* src/atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
call timer_settime.
Diffstat (limited to 'm4/timer_time.m4')
-rw-r--r-- | m4/timer_time.m4 | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/m4/timer_time.m4 b/m4/timer_time.m4 new file mode 100644 index 00000000000..bc84554b789 --- /dev/null +++ b/m4/timer_time.m4 @@ -0,0 +1,39 @@ +# timer_time.m4 serial 2 +dnl Copyright (C) 2011-2012 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Check for timer_settime, and set LIB_TIMER_TIME. + +AC_DEFUN([gl_TIMER_TIME], +[ + dnl Based on clock_time.m4. See details there. + + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + AC_REQUIRE([gl_THREADLIB]) + + LIB_TIMER_TIME= + AC_SUBST([LIB_TIMER_TIME]) + gl_saved_libs=$LIBS + AC_SEARCH_LIBS([timer_settime], [rt posix4], + [test "$ac_cv_search_timer_settime" = "none required" || + LIB_TIMER_TIME=$ac_cv_search_timer_settime]) + dnl GLIBC uses threads to emulate posix timers when kernel support + dnl is not available (like Linux < 2.6 or when used with kFreeBSD) + dnl Now the pthread lib is linked automatically in the normal case, + dnl but when linking statically, it needs to be explicitly specified. + AC_EGREP_CPP([Thread], + [ +#include <features.h> +#ifdef __GNU_LIBRARY__ + #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || (__GLIBC__ > 2)) \ + && !defined __UCLIBC__ + Thread emulation available + #endif +#endif + ], + [LIB_TIMER_TIME="$LIB_TIMER_TIME $LIBMULTITHREAD"]) + AC_CHECK_FUNCS([timer_settime]) + LIBS=$gl_saved_libs +]) |