forked from Mirrors/freeswitch
77fab7603a
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0186 http://www.mega-nerd.com/libsndfile/libsndfile-1.0.19.tar.gz This will likely require a fresh boostrap to updated source checkouts. git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13415 d0543943-73ff-0310-b7d9-9358b9ac24b2
160 lines
3.8 KiB
Plaintext
160 lines
3.8 KiB
Plaintext
dnl @synopsis AC_C_FIND_ENDIAN
|
|
dnl
|
|
dnl Determine endian-ness of target processor.
|
|
dnl @version 1.1 Mar 03 2002
|
|
dnl @author Erik de Castro Lopo <erikd AT mega-nerd DOT com>
|
|
dnl
|
|
dnl Majority written from scratch to replace the standard autoconf macro
|
|
dnl AC_C_BIGENDIAN. Only part remaining from the original it the invocation
|
|
dnl of the AC_TRY_RUN macro.
|
|
dnl
|
|
dnl Permission to use, copy, modify, distribute, and sell this file for any
|
|
dnl purpose is hereby granted without fee, provided that the above copyright
|
|
dnl and this permission notice appear in all copies. No representations are
|
|
dnl made about the suitability of this software for any purpose. It is
|
|
dnl provided "as is" without express or implied warranty.
|
|
|
|
dnl Find endian-ness in the following way:
|
|
dnl 1) Look in <endian.h>.
|
|
dnl 2) If 1) fails, look in <sys/types.h> and <sys/param.h>.
|
|
dnl 3) If 1) and 2) fails and not cross compiling run a test program.
|
|
dnl 4) If 1) and 2) fails and cross compiling then guess based on target.
|
|
|
|
AC_DEFUN([AC_C_FIND_ENDIAN],
|
|
[AC_CACHE_CHECK(processor byte ordering,
|
|
ac_cv_c_byte_order,
|
|
|
|
# Initialize to unknown
|
|
ac_cv_c_byte_order=unknown
|
|
|
|
if test x$ac_cv_header_endian_h = xyes ; then
|
|
|
|
# First try <endian.h> which should set BYTE_ORDER.
|
|
|
|
[AC_TRY_LINK([
|
|
#include <endian.h>
|
|
#if BYTE_ORDER != LITTLE_ENDIAN
|
|
not big endian
|
|
#endif
|
|
], return 0 ;,
|
|
ac_cv_c_byte_order=little
|
|
)]
|
|
|
|
[AC_TRY_LINK([
|
|
#include <endian.h>
|
|
#if BYTE_ORDER != BIG_ENDIAN
|
|
not big endian
|
|
#endif
|
|
], return 0 ;,
|
|
ac_cv_c_byte_order=big
|
|
)]
|
|
|
|
fi
|
|
|
|
if test $ac_cv_c_byte_order = unknown ; then
|
|
|
|
[AC_TRY_LINK([
|
|
#include <sys/types.h>
|
|
#include <sys/param.h>
|
|
#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
|
|
bogus endian macros
|
|
#endif
|
|
], return 0 ;,
|
|
|
|
[AC_TRY_LINK([
|
|
#include <sys/types.h>
|
|
#include <sys/param.h>
|
|
#if BYTE_ORDER != LITTLE_ENDIAN
|
|
not big endian
|
|
#endif
|
|
], return 0 ;,
|
|
ac_cv_c_byte_order=little
|
|
)]
|
|
|
|
[AC_TRY_LINK([
|
|
#include <sys/types.h>
|
|
#include <sys/param.h>
|
|
#if BYTE_ORDER != LITTLE_ENDIAN
|
|
not big endian
|
|
#endif
|
|
], return 0 ;,
|
|
ac_cv_c_byte_order=little
|
|
)]
|
|
|
|
)]
|
|
|
|
fi
|
|
|
|
if test $ac_cv_c_byte_order = unknown ; then
|
|
if test $cross_compiling = yes ; then
|
|
# This is the last resort. Try to guess the target processor endian-ness
|
|
# by looking at the target CPU type.
|
|
[
|
|
case "$target_cpu" in
|
|
alpha* | i?86* | mipsel* | ia64*)
|
|
ac_cv_c_big_endian=0
|
|
ac_cv_c_little_endian=1
|
|
;;
|
|
|
|
m68* | mips* | powerpc* | hppa* | sparc*)
|
|
ac_cv_c_big_endian=1
|
|
ac_cv_c_little_endian=0
|
|
;;
|
|
|
|
esac
|
|
]
|
|
else
|
|
AC_TRY_RUN(
|
|
[[
|
|
int main (void)
|
|
{ /* Are we little or big endian? From Harbison&Steele. */
|
|
union
|
|
{ long l ;
|
|
char c [sizeof (long)] ;
|
|
} u ;
|
|
u.l = 1 ;
|
|
return (u.c [sizeof (long) - 1] == 1);
|
|
}
|
|
]], , ac_cv_c_byte_order=big,
|
|
ac_cv_c_byte_order=unknown
|
|
)
|
|
|
|
AC_TRY_RUN(
|
|
[[int main (void)
|
|
{ /* Are we little or big endian? From Harbison&Steele. */
|
|
union
|
|
{ long l ;
|
|
char c [sizeof (long)] ;
|
|
} u ;
|
|
u.l = 1 ;
|
|
return (u.c [0] == 1);
|
|
}]], , ac_cv_c_byte_order=little,
|
|
ac_cv_c_byte_order=unknown
|
|
)
|
|
fi
|
|
fi
|
|
|
|
)
|
|
|
|
if test $ac_cv_c_byte_order = big ; then
|
|
ac_cv_c_big_endian=1
|
|
ac_cv_c_little_endian=0
|
|
elif test $ac_cv_c_byte_order = little ; then
|
|
ac_cv_c_big_endian=0
|
|
ac_cv_c_little_endian=1
|
|
else
|
|
ac_cv_c_big_endian=0
|
|
ac_cv_c_little_endian=0
|
|
|
|
AC_MSG_WARN([[*****************************************************************]])
|
|
AC_MSG_WARN([[*** Not able to determine endian-ness of target processor. ]])
|
|
AC_MSG_WARN([[*** The constants CPU_IS_BIG_ENDIAN and CPU_IS_LITTLE_ENDIAN in ]])
|
|
AC_MSG_WARN([[*** src/config.h may need to be hand editied. ]])
|
|
AC_MSG_WARN([[*****************************************************************]])
|
|
fi
|
|
|
|
]
|
|
)# AC_C_FIND_ENDIAN
|
|
|
|
|