[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).

David Goulet dgoulet at efficios.com
Mon May 6 15:04:40 EDT 2013



Charles Briere:
> 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

Please don't use "//" for comments and instead use /* */.

It's used in some other patches so I'll only flag it once.

Thanks!

>  #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"
>  



More information about the lttng-dev mailing list