1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-22 07:37:38 +01:00

aarch64: fix wrong big_endian flag in aarch64_be case

Set local_addr_space.big_endian flag according to current target
endianness. Before it was set by memset to 0, which corresponds
to little endian and it worked perfectly fine for aarch64.
But it breaks aarch64_be because dwarf_readu16, dwarf_readu32,
etc functions do not read values correctly since they operate
with wrong idea about current target endianness.

Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
This commit is contained in:
Victor Kamensky 2014-12-03 17:35:44 -08:00 committed by Arun Sharma
parent 743668f669
commit 16e98c8cf3

View file

@ -181,6 +181,7 @@ aarch64_local_addr_space_init (void)
local_addr_space.acc.access_fpreg = access_fpreg; local_addr_space.acc.access_fpreg = access_fpreg;
local_addr_space.acc.resume = aarch64_local_resume; local_addr_space.acc.resume = aarch64_local_resume;
local_addr_space.acc.get_proc_name = get_static_proc_name; local_addr_space.acc.get_proc_name = get_static_proc_name;
local_addr_space.big_endian = (__BYTE_ORDER == __BIG_ENDIAN);
unw_flush_cache (&local_addr_space, 0, 0); unw_flush_cache (&local_addr_space, 0, 0);
} }