xref: /relibc/renamesyms.sh (revision aa2397ce294b1206adaa0bb6b6989bdb9305dc2d)
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