1#!/bin/sh 2target=$1 3deps_dir=$2 4 5if [ -z "$target" ] || [ -z "$deps_dir" ]; then 6 echo "Usage:\n\t./renamesyms.sh TARGET DEPS_DIR" 7 exit 1 8fi 9 10symbols_file=`mktemp` 11special_syms="__rg_alloc __rg_dealloc __rg_realloc __rg_alloc_zeroed" 12 13for dep in `find $deps_dir -type f -name "*.rlib"`; do 14 nm --format=posix -g "$dep" 2>/dev/null | sed 's/.*:.*//g' | awk '{if ($2 == "T") print $1}' | sed 's/^\(.*\)$/\1 __relibc_\1/g' >> $symbols_file 15done 16 17for special_sym in $special_syms; do 18 echo "$special_sym __relibc_$special_sym" >> $symbols_file 19done 20 21sorted_file=`mktemp` 22sort -u "$symbols_file" > "$sorted_file" 23rm -f "$symbols_file" 24 25objcopy --redefine-syms="$sorted_file" "$target" 26 27rm -f "$sorted_file" 28