The ARM specific code was trying to determine endianness using the
__LITTLE_ENDIAN__ macro which is not guaranteed to be defined.
When not defined, it makes libunwind to build the big-endian code even
when the compiler builds for a little-endian target.
This issue leads libunwind to crash with SIGSEGV during stack unwinding when
it built for ARM by using musl-gcc toolchain (from http://musl.cc) and breaks exception
handling.
Switched into a more hermetic check which should also raise a
compile-time error in case endianness could not be determined.