opensaf: Add configure time check to detect gettid API in libc

Also fixes build with glibc 2.30

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj 2019-07-27 07:39:55 -07:00
parent d31ac50253
commit 7bd0f5d6d0
2 changed files with 68 additions and 0 deletions

View File

@ -0,0 +1,67 @@
From 91c7362834ccd88d1432b3e6c5c51748b72b10ad Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 27 Jul 2019 07:21:16 -0700
Subject: [PATCH] Add configure time check for gettid API
glibc 2.30 has added syscalls wrapper for gettid
it should now be checked during configure if C library provides
this API then do not define local function
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
configure.ac | 4 ++++
src/base/logtrace.cc | 3 +++
src/osaf/config.h.in | 3 +++
3 files changed, 10 insertions(+)
diff --git a/configure.ac b/configure.ac
index 22ab936..90f3da4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -480,6 +480,10 @@ fi
AC_SUBST([localstatedir])
+#############################################
+# Checks for functions.
+#############################################
+AC_CHECK_FUNCS([ gettid ])
#############################################
# Checks for programs.
diff --git a/src/base/logtrace.cc b/src/base/logtrace.cc
index 8908c1f..fe87e8d 100644
--- a/src/base/logtrace.cc
+++ b/src/base/logtrace.cc
@@ -31,6 +31,7 @@
#include "base/logtrace_client.h"
#include "base/logtrace_buffer.h"
#include "base/ncsgl_defs.h"
+#include "osaf/config.h"
namespace global {
@@ -58,7 +59,9 @@ std::once_flag init_flag;
thread_local LogTraceBuffer gl_thread_buffer{gl_local_thread_trace,
global::thread_trace_buffer_size};
+#ifndef HAVE_GETTID
static pid_t gettid() { return syscall(SYS_gettid); }
+#endif
/**
* USR2 signal handler to enable/disable trace (toggle)
diff --git a/src/osaf/config.h.in b/src/osaf/config.h.in
index d1f6d1a..0a3f27d 100644
--- a/src/osaf/config.h.in
+++ b/src/osaf/config.h.in
@@ -18,6 +18,9 @@
/* Define if experimental code is enabled */
#undef HAVE_EXPERIMENTAL
+/* Define to 1 if you have the `gettid' function. */
+#undef HAVE_GETTID
+
/* SAHPI_INTERFACE_VERSION == A01 */
#undef HAVE_HPI_A01

View File

@ -24,6 +24,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \
file://0001-configure-Disable-format-overflow-if-supported-by-gc.patch \
file://0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch \
file://0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch \
file://0001-Add-configure-time-check-for-gettid-API.patch \
"
SRC_URI[md5sum] = "4dd1497ccd82d275735853bf0db5c510"
SRC_URI[sha256sum] = "de42c8dd850990716ca494ca598165cc7a23b5b7f2bc21af5d71a3d971ddd595"