From: Florian Forster Date: Fri, 6 Jun 2008 10:32:13 +0000 (+0200) Subject: src/collectd.h: Try even harder to determine endianess. X-Git-Tag: collectd-4.4.2~11^2~3 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=136326a3ccded5e4f2944c38825f2a21d11aa58e;p=collectd.git src/collectd.h: Try even harder to determine endianess. NexentaStor 1.0.2 doesn't have , for example :/ --- diff --git a/configure.in b/configure.in index 93375237..e51bbd7a 100644 --- a/configure.in +++ b/configure.in @@ -57,7 +57,7 @@ AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_HEADER_DIRENT -AC_CHECK_HEADERS(stdint.h stdio.h errno.h math.h stdarg.h syslog.h fcntl.h signal.h assert.h sys/types.h sys/socket.h sys/select.h poll.h netdb.h arpa/inet.h sys/resource.h sys/param.h kstat.h regex.h sys/ioctl.h endian.h) +AC_CHECK_HEADERS(stdint.h stdio.h errno.h math.h stdarg.h syslog.h fcntl.h signal.h assert.h sys/types.h sys/socket.h sys/select.h poll.h netdb.h arpa/inet.h sys/resource.h sys/param.h kstat.h regex.h sys/ioctl.h endian.h sys/isa_defs.h) # For ping library AC_CHECK_HEADERS(netinet/in_systm.h, [], [], diff --git a/src/collectd.h b/src/collectd.h index 411048af..0ccf5336 100644 --- a/src/collectd.h +++ b/src/collectd.h @@ -122,8 +122,13 @@ # endif /* !defined(isnan) */ #endif /* NAN_ZERO_ZERO */ +/* Try really, really hard to determine endianess. Under NexentaStor 1.0.2 this + * information is in , possibly some other Solaris versions do + * this too.. */ #if HAVE_ENDIAN_H # include +#elif HAVE_SYS_ISA_DEFS_H +# include #endif #ifndef BYTE_ORDER @@ -140,6 +145,26 @@ # define BIG_ENDIAN __BIG_ENDIAN # endif #endif +#ifndef LITTLE_ENDIAN +# if defined(_LITTLE_ENDIAN) +# define LITTLE_ENDIAN _LITTLE_ENDIAN +# elif defined(__LITTLE_ENDIAN) +# define LITTLE_ENDIAN __LITTLE_ENDIAN +# endif +#endif +#ifndef BYTE_ORDER +# if defined(BIG_ENDIAN) && !defined(LITTLE_ENDIAN) +# undef BIG_ENDIAN +# define BIG_ENDIAN 4321 +# define LITTLE_ENDIAN 1234 +# define BYTE_ORDER BIG_ENDIAN +# elif !defined(BIG_ENDIAN) && defined(LITTLE_ENDIAN) +# undef LITTLE_ENDIAN +# define BIG_ENDIAN 4321 +# define LITTLE_ENDIAN 1234 +# define BYTE_ORDER LITTLE_ENDIAN +# endif +#endif #if !defined(BYTE_ORDER) || !defined(BIG_ENDIAN) # error "Cannot determine byte order" #endif