From 4f1d68d0b8765c11ca8ee5b7f199f05bb4380253 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Tue, 23 Nov 2010 15:46:55 +0000 Subject: ethtool: Work around old without big-endian types Add an autoconf test for whether __be16 and __be32 are defined. If not, define them in ethtool-util.h. Signed-off-by: Ben Hutchings --- configure.ac | 7 +++++++ ethtool-util.h | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/configure.ac b/configure.ac index f2401a4..2e31e3a 100644 --- a/configure.ac +++ b/configure.ac @@ -17,6 +17,13 @@ dnl Checks for header files. AC_CHECK_HEADERS(sys/ioctl.h) dnl Checks for typedefs, structures, and compiler characteristics. +AC_MSG_CHECKING([whether defines big-endian types]) +AC_TRY_COMPILE([#include ], + [__be16 foo;__be32 bar;], + [AC_MSG_RESULT(yes) + AC_DEFINE([HAVE_BE_TYPES], [1], + [Define to 1 if defines big-endian types])], + [AC_MSG_RESULT(no)]) dnl Checks for library functions. AC_HEADER_STDC diff --git a/ethtool-util.h b/ethtool-util.h index 4ef3a9f..f053028 100644 --- a/ethtool-util.h +++ b/ethtool-util.h @@ -6,6 +6,12 @@ #include #include +/* ethtool.h expects these to be defined by */ +#ifndef HAVE_BE_TYPES +typedef __uint16_t __be16; +typedef __uint32_t __be32; +#endif + #include "ethtool-copy.h" typedef unsigned long long u64; -- cgit v1.2.1