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