libmali-rockchip-tsukumijima/scripts/normalize.sh
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

42 lines
972 B
Bash
Executable file

#!/bin/sh
cd "$(dirname "$0")/.."
# Check for dependencies
./scripts/normalize_dependencies.sh || exit 1
SONAME=libmali.so.1
LIBS=$(find optimize_*/ -name "*.so")
for lib in $LIBS; do
DEPS=$(readelf -d $lib)
# Hack out-dated deps
for dep in libffi.so libcrypto.so; do
DEP=$(echo $DEPS | grep -oE "$dep.[0-9]*")
[ -z "$DEP" ] || patchelf $lib --replace-needed $DEP $dep
done
# Set a common soname
echo $DEPS | grep -q "Library soname: \[$SONAME\]" ||
patchelf --set-soname $SONAME $lib
# Workaround local symbol warning:
# 'found local symbol in global part of symbol table'
# Or:
# 'invalid local symbol in global part of symbol table'
#
# depends on lief (pip3 install lief)
readelf -s $lib 2>&1 | grep -wq Warning && \
scripts/fixup_sym.py $lib&
done
wait
for lib in $LIBS; do
# Normalize library name
mv $lib "${lib%/*}/$(scripts/parse_name.sh --format $lib)" 2>/dev/null
done
# Update debian control and rules
scripts/update_debian.sh