1*4882a593Smuzhiyun#!/bin/sh 2*4882a593Smuzhiyun 3*4882a593Smuzhiyuncd "$(dirname "$0")/.." 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun# Check for dependencies 6*4882a593Smuzhiyun./scripts/normalize_dependencies.sh || exit 1 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunSONAME=libmali.so.1 9*4882a593SmuzhiyunLIBS=$(find optimize_*/ -name "*.so") 10*4882a593Smuzhiyun 11*4882a593Smuzhiyunfor lib in $LIBS; do 12*4882a593Smuzhiyun DEPS=$(readelf -d $lib) 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun # Hack out-dated deps 15*4882a593Smuzhiyun for dep in libffi.so libcrypto.so; do 16*4882a593Smuzhiyun DEP=$(echo $DEPS | grep -oE "$dep.[0-9]*") 17*4882a593Smuzhiyun [ -z "$DEP" ] || patchelf $lib --replace-needed $DEP $dep 18*4882a593Smuzhiyun done 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun # Set a common soname 21*4882a593Smuzhiyun echo $DEPS | grep -q "Library soname: \[$SONAME\]" || 22*4882a593Smuzhiyun patchelf --set-soname $SONAME $lib 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun # Increase .dynsym's sh_info to workaround local symbol warning: 25*4882a593Smuzhiyun # 'found local symbol in global part of symbol table' 26*4882a593Smuzhiyun # 27*4882a593Smuzhiyun # depends on lief (pip3 install lief) 28*4882a593Smuzhiyun readelf -s $lib 2>&1 | grep -wq Warning && \ 29*4882a593Smuzhiyun scripts/fixup_dynsym.py $lib& 30*4882a593Smuzhiyundone 31*4882a593Smuzhiyun 32*4882a593Smuzhiyunwait 33*4882a593Smuzhiyun 34*4882a593Smuzhiyunfor lib in $LIBS; do 35*4882a593Smuzhiyun # Normalize library name 36*4882a593Smuzhiyun mv $lib "${lib%/*}/$(scripts/parse_name.sh --format $lib)" 2>/dev/null 37*4882a593Smuzhiyundone 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun# Update debian control and rules 40*4882a593Smuzhiyunscripts/update_debian.sh 41