AC_CHECK_FUNCS(pthread_rwlock_init)
LIBS=$saved_LIBS
-AC_MSG_CHECKING([for gettid])
-AC_TRY_COMPILE(
- [#define _GNU_SOURCE
- #include <unistd.h>
- #include <sys/syscall.h>],
- [int main() {
- return syscall(SYS_gettid);}],
- [AC_MSG_RESULT([yes]); AC_DEFINE([HAVE_GETTID])],
- [AC_MSG_RESULT([no])]
+AC_CHECK_FUNC(
+ [gettid],
+ [AC_DEFINE(HAVE_GETTID)],
+ [AC_MSG_CHECKING([for SYS_gettid])
+ AC_TRY_COMPILE(
+ [#define _GNU_SOURCE
+ #include <unistd.h>
+ #include <sys/syscall.h>],
+ [int main() {
+ return syscall(SYS_gettid);}],
+ [AC_MSG_RESULT([yes]); AC_DEFINE([HAVE_SYS_GETTID])],
+ [AC_MSG_RESULT([no])]
+ )]
)
AC_CHECK_FUNCS(prctl mallinfo getpass closefrom)
/*
- * Copyright (C) 2009-2011 Tobias Brunner
+ * Copyright (C) 2009-2012 Tobias Brunner
* Hochschule fuer Technik Rapperswil
*
* This program is free software; you can redistribute it and/or modify it
#include <pthread.h>
#include <signal.h>
#include <semaphore.h>
+
#ifdef HAVE_GETTID
+#include <sys/types.h>
+#elif defined(HAVE_SYS_GETTID)
#include <unistd.h>
#include <sys/syscall.h>
-#endif
+static inline pid_t gettid()
+{
+ return syscall(SYS_gettid);
+}
+#define HAVE_GETTID
+#endif /* HAVE_SYS_GETTID */
#include <library.h>
#include <debug.h>
* could be of any size, or even a struct) */
#ifdef HAVE_GETTID
DBG2(DBG_LIB, "created thread %.2d [%u]",
- this->id, syscall(SYS_gettid));
+ this->id, gettid());
#else
DBG2(DBG_LIB, "created thread %.2d [%lx]",
this->id, (u_long)this->thread_id);