When compiling with Android Toolchain, gettid is already defined in
<unistd.h> and therefore doesn't need to be reimplemented. This patch
checks for gettid instead of looking for Android in case other
environements behave the same way.
Signed-off-by: Charles Briere <charlesbriere.flatzo@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
# Checks for library functions.
AC_FUNC_MALLOC
AC_FUNC_MMAP
# Checks for library functions.
AC_FUNC_MALLOC
AC_FUNC_MMAP
-AC_CHECK_FUNCS([bzero gettimeofday munmap sched_getcpu strtoul sysconf])
+AC_CHECK_FUNCS([bzero gettimeofday munmap sched_getcpu strtoul sysconf gettid])
# Find arch type
AS_CASE([$host_cpu],
# Find arch type
AS_CASE([$host_cpu],
* provided the above notices are retained, and a notice that the code was
* modified is included with the above copyright notice.
*/
* provided the above notices are retained, and a notice that the code was
* modified is included with the above copyright notice.
*/
#ifdef __linux__
# include <urcu/syscall-compat.h>
#ifdef __linux__
# include <urcu/syscall-compat.h>
+# if defined(HAVE_GETTID)
+/*
+ * Do not redefine gettid() as it is already included
+ * in bionic through <unistd.h>. Some other libc
+ * may also already contain an implementation of gettid.
+ */
+# elif defined(_syscall0)
_syscall0(pid_t, gettid)
# elif defined(__NR_gettid)
static inline pid_t gettid(void)
_syscall0(pid_t, gettid)
# elif defined(__NR_gettid)
static inline pid_t gettid(void)
{
return (unsigned long) pthread_getthreadid_np();
}
{
return (unsigned long) pthread_getthreadid_np();
}
-#elif defined(__Android__)
-/*
- * Do not redefine gettid() as it is already included
- * in bionic through <unistd.h>.
- */
#else
# warning "use pid as thread ID"
static inline
#else
# warning "use pid as thread ID"
static inline