Include endian.h before checking __FLOAT_WORD_ORDER

CoglFixed was trying to use the __FLOAT_WORD_ORDER macro in order to
do some fast float conversions but it wasn't including any header that
could define it so it was giving an annoying warning. This patch
checks for the macro in endian.h in the configure script and only
checks its value if it's available.

Reviewed-by: Robert Bragg <robert@linux.intel.com>
This commit is contained in:
Neil Roberts 2013-07-03 17:37:48 +01:00
parent 823f254190
commit 9730b9d6a6
2 changed files with 12 additions and 1 deletions

View File

@ -30,6 +30,10 @@
#include <glib-object.h>
#include <gobject/gvaluecollector.h>
#ifdef HAVE_FLOAT_WORD_ORDER
#include <endian.h>
#endif
#include "cogl-fixed.h"
/* pre-computed sin table for 1st quadrant
@ -306,6 +310,7 @@ static const double _magic = 68719476736.0 * 1.5;
*
* FIXME - this should go inside the configure.ac
*/
#ifdef HAVE_FLOAT_WORD_ORDER
#if (__FLOAT_WORD_ORDER == 1234)
#define _COGL_MAN 0
#elif (__FLOAT_WORD_ORDER == 4321)
@ -313,6 +318,9 @@ static const double _magic = 68719476736.0 * 1.5;
#else
#define COGL_NO_FAST_CONVERSIONS
#endif
#else /* HAVE_FLOAT_WORD_ORDER */
#define COGL_NO_FAST_CONVERSIONS
#endif /* HAVE_FLOAT_WORD_ORDER */
/*
* cogl_double_to_fixed :

View File

@ -1295,7 +1295,10 @@ dnl ================================================================
AC_PATH_X
AC_HEADER_STDC
AC_CHECK_HEADERS(fcntl.h limits.h unistd.h)
AC_CHECK_HEADER([endian.h],
[AC_CHECK_DECL([__FLOAT_WORD_ORDER],
AC_DEFINE([HAVE_FLOAT_WORD_ORDER], [1],
[Has the __FLOAT_WORD_ORDER macro]))])
dnl ================================================================
dnl Checks for library functions.