From d804ee3bf044cb257dc931ee83f33802b1546c06 Mon Sep 17 00:00:00 2001 From: Carlo Caione Date: Tue, 23 Mar 2021 09:44:42 +0100 Subject: [PATCH] gen_kobject_list.py: Add support for 64-bit addresses Currently the python script is assuming we only have objects on 32-bit addresses. This is obviously wrong for 64-bit platforms. Fix this. Signed-off-by: Carlo Caione --- scripts/gen_kobject_list.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/gen_kobject_list.py b/scripts/gen_kobject_list.py index a1f18df14e7..03882e779a7 100755 --- a/scripts/gen_kobject_list.py +++ b/scripts/gen_kobject_list.py @@ -598,8 +598,14 @@ def find_kobjects(elf, syms): (name, hex(opcode))) continue - addr = (loc.value[1] | (loc.value[2] << 8) | - (loc.value[3] << 16) | (loc.value[4] << 24)) + if "CONFIG_64BIT" in syms: + addr = ((loc.value[1] << 0 ) | (loc.value[2] << 8) | + (loc.value[3] << 16) | (loc.value[4] << 24) | + (loc.value[5] << 32) | (loc.value[6] << 40) | + (loc.value[7] << 48) | (loc.value[8] << 56)) + else: + addr = ((loc.value[1] << 0 ) | (loc.value[2] << 8) | + (loc.value[3] << 16) | (loc.value[4] << 24)) if addr == 0: # Never linked; gc-sections deleted it