renamesyms.sh 539 B

12345678910111213141516171819202122
  1. #!/bin/sh
  2. target=$1
  3. deps_dir=$2
  4. if [ -z "$target" ] || [ -z "$deps_dir" ]; then
  5. echo "Usage:\n\t./renamesyms.sh TARGET DEPS_DIR"
  6. exit 1
  7. fi
  8. symbols_file=`mktemp`
  9. for dep in `find $deps_dir -type f -name "*.rlib"`; do
  10. 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
  11. done
  12. sorted_file=`mktemp`
  13. sort -u "$symbols_file" > "$sorted_file"
  14. rm -f "$symbols_file"
  15. objcopy --redefine-syms="$sorted_file" "$target"
  16. rm -f "$sorted_file"