2020-07-31 14:05:46 +08:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
2023-02-16 16:35:55 +08:00
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
|
|
|
|
|
|
# Check for dependencies
|
|
|
|
|
./scripts/normalize_dependencies.sh || exit 1
|
|
|
|
|
|
2021-11-03 11:04:41 +08:00
|
|
|
SONAME=libmali.so.1
|
|
|
|
|
LIBS=$(find optimize_*/ -name "*.so")
|
2020-07-31 14:05:46 +08:00
|
|
|
|
2021-11-03 11:04:41 +08:00
|
|
|
for lib in $LIBS; do
|
|
|
|
|
DEPS=$(readelf -d $lib)
|
|
|
|
|
|
|
|
|
|
# Hack out-dated deps
|
2023-02-14 10:38:20 +08:00
|
|
|
for dep in libffi.so libcrypto.so; do
|
|
|
|
|
DEP=$(echo $DEPS | grep -oE "$dep.[0-9]*")
|
|
|
|
|
[ -z "$DEP" ] || patchelf $lib --replace-needed $DEP $dep
|
2021-11-03 11:04:41 +08:00
|
|
|
done
|
2020-07-31 14:05:46 +08:00
|
|
|
|
2021-11-03 11:04:41 +08:00
|
|
|
# Set a common soname
|
|
|
|
|
echo $DEPS | grep -q "Library soname: \[$SONAME\]" ||
|
|
|
|
|
patchelf --set-soname $SONAME $lib
|
2020-07-27 14:17:02 +08:00
|
|
|
|
2022-03-22 12:47:09 +08:00
|
|
|
# Increase .dynsym's sh_info to workaround local symbol warning:
|
|
|
|
|
# 'found local symbol in global part of symbol table'
|
|
|
|
|
#
|
|
|
|
|
# depends on lief (pip3 install lief)
|
2022-07-26 19:14:15 +08:00
|
|
|
readelf -s $lib 2>&1 | grep -wq Warning && \
|
2022-03-22 12:47:09 +08:00
|
|
|
scripts/fixup_dynsym.py $lib&
|
2022-07-26 19:14:15 +08:00
|
|
|
done
|
|
|
|
|
|
|
|
|
|
wait
|
2022-03-22 12:47:09 +08:00
|
|
|
|
2022-07-26 19:14:15 +08:00
|
|
|
for lib in $LIBS; do
|
2022-07-14 12:50:55 +08:00
|
|
|
# Normalize library name
|
|
|
|
|
mv $lib "${lib%/*}/$(scripts/parse_name.sh --format $lib)" 2>/dev/null
|
2020-07-27 14:17:02 +08:00
|
|
|
done
|
2021-03-27 05:06:36 +08:00
|
|
|
|
|
|
|
|
# Update debian control and rules
|
2021-11-03 11:36:10 +08:00
|
|
|
scripts/update_debian.sh
|