Fix long long little endian detection when cross-compiling
The long long endian detection code does an AC_TRY_RUN() and since that doesn't work when cross-compiling, it sets a fallback value. However, rather than do any sort of default endian detection, the code simply sets it to "no". This probably breaks most little endian systems out there when cross-compiling for them. It certainly breaks Blackfin systems. So use the common endian detection code provided by autoconf and key off of that when cross-compiling. * configure.ac: Call AC_C_BIGENDIAN. * m4/long_long.m4 (AC_LITTLE_ENDIAN_LONG_LONG): Set cross-compiling logic based on ac_cv_c_bigendian. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
260e571343
commit
6d12afdac4
@ -184,6 +184,7 @@ AC_PROG_CPP
|
||||
AC_PROG_GCC_TRADITIONAL
|
||||
AC_PROG_INSTALL
|
||||
AC_C_CONST
|
||||
AC_C_BIGENDIAN
|
||||
AC_HEADER_STDC
|
||||
AC_HEADER_STDBOOL
|
||||
AC_HEADER_DIRENT
|
||||
|
@ -57,8 +57,12 @@ int main () {
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
]])],[ac_cv_have_little_endian_long_long=yes],[ac_cv_have_little_endian_long_long=no],[# Should try to guess here
|
||||
ac_cv_have_little_endian_long_long=no
|
||||
]])],[ac_cv_have_little_endian_long_long=yes],[ac_cv_have_little_endian_long_long=no],[
|
||||
if test "x$ac_cv_c_bigendian" = "xyes"; then
|
||||
ac_cv_have_little_endian_long_long=no
|
||||
else
|
||||
ac_cv_have_little_endian_long_long=yes
|
||||
fi
|
||||
])])
|
||||
AC_MSG_RESULT($ac_cv_have_little_endian_long_long)
|
||||
if test "$ac_cv_have_little_endian_long_long" = yes
|
||||
|
Loading…
x
Reference in New Issue
Block a user