Mercurial > hg > CbC > CbC_gcc
comparison config/futex.m4 @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children | 1830386684a0 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
1 dnl ---------------------------------------------------------------------- | |
2 dnl This whole bit snagged from libgomp. | |
3 | |
4 dnl | |
5 dnl GCC_LINUX_FUTEX | |
6 dnl (SHELL-CODE_HANDLER) | |
7 dnl | |
8 AC_DEFUN([GCC_LINUX_FUTEX],[dnl | |
9 GCC_ENABLE(linux-futex,default, ,[use the Linux futex system call], | |
10 permit yes|no|default) | |
11 case "$target" in | |
12 *-linux*) | |
13 case "$enable_linux_futex" in | |
14 default) | |
15 # If headers don't have gettid/futex syscalls definition, then | |
16 # default to no, otherwise there will be compile time failures. | |
17 # Otherwise, default to yes. If we don't detect we are | |
18 # compiled/linked against NPTL and not cross-compiling, check | |
19 # if programs are run by default against NPTL and if not, issue | |
20 # a warning. | |
21 enable_linux_futex=no | |
22 AC_LINK_IFELSE( | |
23 [AC_LANG_PROGRAM( | |
24 [#include <sys/syscall.h> | |
25 int lk;], | |
26 [syscall (SYS_gettid); syscall (SYS_futex, &lk, 0, 0, 0);])], | |
27 [save_LIBS="$LIBS" | |
28 LIBS="-lpthread $LIBS" | |
29 AC_LINK_IFELSE( | |
30 [AC_LANG_PROGRAM( | |
31 [#ifndef _GNU_SOURCE | |
32 #define _GNU_SOURCE 1 | |
33 #endif | |
34 #include <pthread.h> | |
35 pthread_t th; void *status;], | |
36 [pthread_tryjoin_np (th, &status);])],[enable_linux_futex=yes], | |
37 [if test x$cross_compiling = xno; then | |
38 if getconf GNU_LIBPTHREAD_VERSION 2>/dev/null \ | |
39 | LC_ALL=C grep -i NPTL > /dev/null 2>/dev/null; then :; else | |
40 AC_MSG_WARN([The kernel might not support futex or gettid syscalls. | |
41 If so, please configure with --disable-linux-futex]) | |
42 fi | |
43 fi | |
44 enable_linux_futex=yes]) | |
45 LIBS="$save_LIBS"]) | |
46 ;; | |
47 yes) | |
48 AC_LINK_IFELSE( | |
49 [AC_LANG_PROGRAM( | |
50 [#include <sys/syscall.h> | |
51 int lk;], | |
52 [syscall (SYS_gettid); syscall (SYS_futex, &lk, 0, 0, 0);])],[], | |
53 [AC_MSG_ERROR([SYS_gettid and SYS_futex required for --enable-linux-futex])]) | |
54 ;; | |
55 esac | |
56 ;; | |
57 *) | |
58 enable_linux_futex=no | |
59 ;; | |
60 esac | |
61 if test x$enable_linux_futex = xyes; then | |
62 $1 | |
63 fi | |
64 ]) |