fix tests
[ia32rtools.git] / run_imp.sh
CommitLineData
60f7539b 1#!/bin/sh
2
d82ba302 3# warning: i686-w64-mingw32- on Ubuntu 14.04
4# contains broken InterlockedDecrement
5test -n "$mingwb" || mingwb=i686-w64-mingw32
6bda240a 6
296d81f8 7target_s=$1
8src_asm=$2
9implist=${target_s}_implist
10tmpsym=${target_s}_tmpsym
11shift 2
60f7539b 12
296d81f8 13grep 'extrn ' $src_asm | awk '{print $2}' | \
14 awk -F: '{print $1}' > $implist
60f7539b 15
296d81f8 16echo ".data" > $target_s
17echo ".align 4" >> $target_s
18
19cat $implist | while read i; do
20 rm -f $tmpsym
60f7539b 21 case $i in
22 __imp_*)
23 si=`echo $i | cut -c 7-`
24 ;;
25 *)
26 si=$i
27 ;;
28 esac
29
3947cf24 30 grep -e "\<_\?_$si\>" -e "@$si\>" /usr/$mingwb/lib/lib* "$@" | awk '{print $3}' | \
60f7539b 31 while read f; do
3947cf24 32 sym=`${mingwb}-nm $f | grep -e "\<_\?_$si\>" -e " @$si\>" | grep ' T ' | awk '{print $3}'`
60f7539b 33 if test -n "$sym"; then
296d81f8 34 echo $sym > $tmpsym
60f7539b 35 break
36 fi
37 done
296d81f8 38 sym=`cat $tmpsym`
60f7539b 39 if test -z "$sym"; then
3947cf24 40 echo "$target_s: no file/sym for $i"
60f7539b 41 exit 1
42 fi
43
296d81f8 44 echo ".globl $i" >> $target_s
45 echo "$i:" >> $target_s
46 echo " .long $sym" >> $target_s
47 echo >> $target_s
60f7539b 48done