xref: /relibc/renamesyms.sh (revision 70a8fca3c13ca30864e2002a9058433501eff819)
12186cd1fS4lDO2#!/bin/sh
22186cd1fS4lDO2target=$1
32186cd1fS4lDO2deps_dir=$2
42186cd1fS4lDO2
52186cd1fS4lDO2if [ -z "$target" ] || [ -z "$deps_dir" ]; then
62186cd1fS4lDO2    echo "Usage:\n\t./renamesyms.sh TARGET DEPS_DIR"
72186cd1fS4lDO2    exit 1
82186cd1fS4lDO2fi
92186cd1fS4lDO2
102186cd1fS4lDO2symbols_file=`mktemp`
11de29da40SJeremy Sollerspecial_syms="__rg_alloc __rg_dealloc __rg_realloc __rg_alloc_zeroed __rg_oom"
122186cd1fS4lDO2
132186cd1fS4lDO2for dep in `find $deps_dir -type f -name "*.rlib"`; do
14*70a8fca3SJeremy Soller    "${TARGET}-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
152186cd1fS4lDO2done
162186cd1fS4lDO2
173701ea3bS4lDO2for special_sym in $special_syms; do
183701ea3bS4lDO2    echo "$special_sym __relibc_$special_sym" >> $symbols_file
193701ea3bS4lDO2done
203701ea3bS4lDO2
212186cd1fS4lDO2sorted_file=`mktemp`
222186cd1fS4lDO2sort -u "$symbols_file" > "$sorted_file"
232186cd1fS4lDO2rm -f "$symbols_file"
242186cd1fS4lDO2
25*70a8fca3SJeremy Soller"${TARGET}-objcopy" --redefine-syms="$sorted_file" "$target"
262186cd1fS4lDO2
272186cd1fS4lDO2rm -f "$sorted_file"
28