From 80565efba8a0621120ec01357780f78171ca4408 Mon Sep 17 00:00:00 2001 From: Jeffy Chen Date: Wed, 9 Oct 2024 09:16:49 +0800 Subject: [PATCH] scripts: Add symbol hack back Some libraries would not work with new hack. Change-Id: I3d43e56b5a64971c595630a8ef3e5430417295f6 Signed-off-by: Jeffy Chen --- scripts/fixup_sym.py | 4 ++++ scripts/normalize.sh | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/fixup_sym.py b/scripts/fixup_sym.py index fc5ebe3..83215a9 100755 --- a/scripts/fixup_sym.py +++ b/scripts/fixup_sym.py @@ -13,4 +13,8 @@ for symbol in symbols: 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) diff --git a/scripts/normalize.sh b/scripts/normalize.sh index 3f12b15..5c94a51 100755 --- a/scripts/normalize.sh +++ b/scripts/normalize.sh @@ -27,7 +27,7 @@ for lib in $LIBS; do # 'invalid local symbol in global part of symbol table' # # depends on lief (pip3 install lief) - readelf -s $lib 2>&1 | grep -w LOCAL | grep -wq __end__ && \ + readelf -s $lib 2>&1 | grep -wq Warning && \ scripts/fixup_sym.py $lib& done