]> code.ossystems Code Review - openembedded-core.git/blob
2ae447736840d317f6af3d4368826fa01178a01f
[openembedded-core.git] /
1 From 16e98c8cf37b006c3879ee57acc23c9af13c40d5 Mon Sep 17 00:00:00 2001
2 From: Victor Kamensky <victor.kamensky@linaro.org>
3 Date: Wed, 3 Dec 2014 17:35:44 -0800
4 Subject: [PATCH 2/2] aarch64: fix wrong big_endian flag in aarch64_be case
5
6 Upstream-Status: backport
7
8 Set local_addr_space.big_endian flag according to current target
9 endianness. Before it was set by memset to 0, which corresponds
10 to little endian and it worked perfectly fine for aarch64.
11 But it breaks aarch64_be because dwarf_readu16, dwarf_readu32,
12 etc functions do not read values correctly since they operate
13 with wrong idea about current target endianness.
14
15 Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
16 ---
17  src/aarch64/Ginit.c | 1 +
18  1 file changed, 1 insertion(+)
19
20 diff --git a/src/aarch64/Ginit.c b/src/aarch64/Ginit.c
21 index 0bc8997..b9181ef 100644
22 --- a/src/aarch64/Ginit.c
23 +++ b/src/aarch64/Ginit.c
24 @@ -181,6 +181,7 @@ aarch64_local_addr_space_init (void)
25    local_addr_space.acc.access_fpreg = access_fpreg;
26    local_addr_space.acc.resume = aarch64_local_resume;
27    local_addr_space.acc.get_proc_name = get_static_proc_name;
28 +  local_addr_space.big_endian = (__BYTE_ORDER == __BIG_ENDIAN);
29    unw_flush_cache (&local_addr_space, 0, 0);
30  }
31  
32 -- 
33 1.9.1
34