mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-21 01:12:32 +08:00
* futex.m4: New file.
This commit is contained in:
parent
d7f98cced6
commit
7eebcca8bd
@ -1,3 +1,7 @@
|
||||
2008-01-08 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* futex.m4: New file.
|
||||
|
||||
2007-12-06 Richard Sandiford <rsandifo@nildram.co.uk>
|
||||
|
||||
* mt-sde (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Use +=, not =.
|
||||
|
64
config/futex.m4
Normal file
64
config/futex.m4
Normal file
@ -0,0 +1,64 @@
|
||||
dnl ----------------------------------------------------------------------
|
||||
dnl This whole bit snagged from libgomp.
|
||||
|
||||
dnl
|
||||
dnl GCC_LINUX_FUTEX
|
||||
dnl (SHELL-CODE_HANDLER)
|
||||
dnl
|
||||
AC_DEFUN([GCC_LINUX_FUTEX],[dnl
|
||||
GCC_ENABLE(linux-futex,default, ,[use the Linux futex system call],
|
||||
permit yes|no|default)
|
||||
case "$target" in
|
||||
*-linux*)
|
||||
case "$enable_linux_futex" in
|
||||
default)
|
||||
# If headers don't have gettid/futex syscalls definition, then
|
||||
# default to no, otherwise there will be compile time failures.
|
||||
# Otherwise, default to yes. If we don't detect we are
|
||||
# compiled/linked against NPTL and not cross-compiling, check
|
||||
# if programs are run by default against NPTL and if not, issue
|
||||
# a warning.
|
||||
enable_linux_futex=no
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[#include <sys/syscall.h>
|
||||
int lk;],
|
||||
[syscall (SYS_gettid); syscall (SYS_futex, &lk, 0, 0, 0);])],
|
||||
[save_LIBS="$LIBS"
|
||||
LIBS="-lpthread $LIBS"
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE 1
|
||||
#endif
|
||||
#include <pthread.h>
|
||||
pthread_t th; void *status;],
|
||||
[pthread_tryjoin_np (th, &status);])],[enable_linux_futex=yes],
|
||||
[if test x$cross_compiling = xno; then
|
||||
if getconf GNU_LIBPTHREAD_VERSION 2>/dev/null \
|
||||
| LC_ALL=C grep -i NPTL > /dev/null 2>/dev/null; then :; else
|
||||
AC_MSG_WARN([The kernel might not support futex or gettid syscalls.
|
||||
If so, please configure with --disable-linux-futex])
|
||||
fi
|
||||
fi
|
||||
enable_linux_futex=yes])
|
||||
LIBS="$save_LIBS"])
|
||||
;;
|
||||
yes)
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[#include <sys/syscall.h>
|
||||
int lk;],
|
||||
[syscall (SYS_gettid); syscall (SYS_futex, &lk, 0, 0, 0);])],[],
|
||||
[AC_MSG_ERROR([SYS_gettid and SYS_futex required for --enable-linux-futex])])
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
enable_linux_futex=no
|
||||
;;
|
||||
esac
|
||||
if test x$enable_linux_futex = xyes; then
|
||||
$1
|
||||
fi
|
||||
])
|
Loading…
Reference in New Issue
Block a user