[lttng-dev] [PATCH lttng-tools 02/14] Added a low-level endian conversion function check in configure.ac to add support for systems where only BSD-like 'betoh*(...)' functions are available (such as Android when compiling with Bionic).
Charles Briere
charlesbriere.flatzo at gmail.com
Mon May 6 14:10:52 EDT 2013
From: Pierre-Luc St-Charles <pierre-luc.st-charles at polymtl.ca>
Signed-off-by: Pierre-Luc St-Charles <pierre-luc.st-charles at polymtl.ca>
---
configure.ac | 10 ++++++++++
src/bin/lttng-relayd/cmd-2-2.c | 1 +
src/bin/lttng-relayd/main.c | 1 +
src/common/compat/endian.h | 6 +++++-
src/common/relayd/relayd.c | 1 +
5 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index eee025a..618d203 100644
--- a/configure.ac
+++ b/configure.ac
@@ -123,6 +123,16 @@ AC_CHECK_LIB([pthread], [pthread_create], [],
]
)
+# Check low-level endian compat functions
+AC_CHECK_DECL(be64toh, [],
+[
+ AC_CHECK_DECL(betoh64, [AC_DEFINE_UNQUOTED([LTTNG_HAVE_BETOH64], 1, [Has BSD-style endian conversion operations.])],
+ [
+ AC_MSG_ERROR([Cannot find be64toh, betoh64 or any similar functions.])
+ ])
+]
+)
+
# Check libpopt
AC_CHECK_LIB([popt], [poptGetContext], [],
[
diff --git a/src/bin/lttng-relayd/cmd-2-2.c b/src/bin/lttng-relayd/cmd-2-2.c
index 0450fbf..09ff7f5 100644
--- a/src/bin/lttng-relayd/cmd-2-2.c
+++ b/src/bin/lttng-relayd/cmd-2-2.c
@@ -22,6 +22,7 @@
#include <common/common.h>
#include <common/sessiond-comm/relayd.h>
+#include <common/compat/endian.h>
#include "cmd-generic.h"
#include "cmd-2-1.h"
diff --git a/src/bin/lttng-relayd/main.c b/src/bin/lttng-relayd/main.c
index 9a2b3bd..0bf3ead 100644
--- a/src/bin/lttng-relayd/main.c
+++ b/src/bin/lttng-relayd/main.c
@@ -43,6 +43,7 @@
#include <common/common.h>
#include <common/compat/poll.h>
#include <common/compat/socket.h>
+#include <common/compat/endian.h>
#include <common/defaults.h>
#include <common/futex.h>
#include <common/sessiond-comm/sessiond-comm.h>
diff --git a/src/common/compat/endian.h b/src/common/compat/endian.h
index 2850866..b7f66cc 100644
--- a/src/common/compat/endian.h
+++ b/src/common/compat/endian.h
@@ -15,11 +15,15 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifdef _COMPAT_ENDIAN_H
+#ifndef _COMPAT_ENDIAN_H
#define _COMPAT_ENDIAN_H
#ifdef __linux__
#include <endian.h>
+#ifdef LTTNG_HAVE_BETOH64
+#define be64toh(x) betoh64(x)
+#define be32toh(x) betoh32(x)
+#endif // LTTNG_HAVE_BETOH64
#elif defined(__FreeBSD__)
#include <machine/endian.h>
#else
diff --git a/src/common/relayd/relayd.c b/src/common/relayd/relayd.c
index 82bcf5f..ba7bd13 100644
--- a/src/common/relayd/relayd.c
+++ b/src/common/relayd/relayd.c
@@ -26,6 +26,7 @@
#include <common/common.h>
#include <common/defaults.h>
#include <common/sessiond-comm/relayd.h>
+#include <common/compat/endian.h>
#include "relayd.h"
--
1.8.1.msysgit.1
More information about the lttng-dev
mailing list