Files
libmali-rockchip/scripts/fixup_sym.py
Jeffy Chen 80565efba8 scripts: Add symbol hack back
Some libraries would not work with new hack.

Change-Id: I3d43e56b5a64971c595630a8ef3e5430417295f6
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2024-10-09 09:21:49 +08:00

21 lines
613 B
Python
Executable File

#!/usr/bin/env python3
import lief
import sys
libpath = sys.argv[1]
lib = lief.parse(libpath)
symbols = ["__bss_end__", "__bss_start", "_end", "_edata", "__bss_start__", "_bss_end__", "__end__"]
for symbol in symbols:
hidden = lib.get_symbol(symbol)
if hidden:
hidden.binding = lief.ELF.SYMBOL_BINDINGS.GLOBAL
hidden.visibility = lief.ELF.SYMBOL_VISIBILITY.DEFAULT
hidden = lib.add_dynamic_symbol(hidden)
# HACK: increase .dynsym's sh_info to workaround local symbol warning:
# 'found local symbol in global part of symbol table'
lib.get_section('.dynsym').information = 10
lib.write(libpath)