-need_endian_test=no
-AC_CHECK_HEADERS([endian.h], [], [],[])
+need_endian_test=yes
+AC_CHECK_HEADERS([endian.h sys/param.h], [], [],[])
+
+if test "$ac_cv_header_sys_param_h" == 'yes' ; then
+ AC_MSG_CHECKING([whether BYTE_ORDER defined in sys/param.h])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <sys/param.h>], [
+ unsigned int a=BYTE_ORDER;
+ unsigned int b=BIG_ENDIAN;
+ unsigned int c=LITTLE_ENDIAN;])],
+ [AC_MSG_RESULT([yes])
+ need_endian_test=no],[AC_MSG_RESULT([no])])
+
+ if test "$need_endian_test" == 'yes' ; then
+ AC_MSG_CHECKING([whether __BYTE_ORDER defined in sys/param.h])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <sys/param.h>], [
+ unsigned int a=__BYTE_ORDER;
+ unsigned int b=__BIG_ENDIAN;
+ unsigned int c=__LITTLE_ENDIAN;])],
+ [AC_MSG_RESULT([yes])
+ need_endian_test=no],[AC_MSG_RESULT([no])])
+ fi
+fi