notaz.gp2x.de
/
ia32rtools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cvt_data: allow fastcall compatible funcs
[ia32rtools.git]
/
run_imp.sh
diff --git
a/run_imp.sh
b/run_imp.sh
index
7c10376
..
b069eba
100755
(executable)
--- a/
run_imp.sh
+++ b/
run_imp.sh
@@
-1,12
+1,23
@@
#!/bin/sh
#!/bin/sh
-grep 'extrn ' StarCraft.asm | awk '{print $2}' | awk -F: '{print $1}' > implist
+# warning: i686-w64-mingw32- on Ubuntu 14.04
+# contains broken InterlockedDecrement
+test -n "$mingwb" || mingwb=i686-w64-mingw32
-echo ".data" > $1
-echo ".align 4" >> $1
+target_s=$1
+src_asm=$2
+implist=${target_s}_implist
+tmpsym=${target_s}_tmpsym
+shift 2
-cat implist | while read i; do
- rm -f tmpsym
+grep 'extrn ' $src_asm | awk '{print $2}' | \
+ awk -F: '{print $1}' > $implist
+
+echo ".data" > $target_s
+echo ".align 4" >> $target_s
+
+cat $implist | while read i; do
+ rm -f $tmpsym
case $i in
__imp_*)
si=`echo $i | cut -c 7-`
case $i in
__imp_*)
si=`echo $i | cut -c 7-`
@@
-16,22
+27,28
@@
cat implist | while read i; do
;;
esac
;;
esac
- grep
"\<_$si\>" /usr/i586-mingw32msvc/lib/lib* *.lib
| awk '{print $3}' | \
+ grep
-e "\<_\?_$si\>" -e "@$si\>" /usr/$mingwb/lib/lib* "$@"
| awk '{print $3}' | \
while read f; do
while read f; do
- sym=`
i586-mingw32msvc-nm $f | grep "\<_
$si\>" | grep ' T ' | awk '{print $3}'`
+ sym=`
${mingwb}-nm $f | grep -e "\<_\?_$si\>" -e " @
$si\>" | grep ' T ' | awk '{print $3}'`
if test -n "$sym"; then
if test -n "$sym"; then
- echo $sym > tmpsym
+ echo $sym >
$
tmpsym
break
fi
done
break
fi
done
- sym=`cat tmpsym`
+ sym=`cat
$
tmpsym`
if test -z "$sym"; then
if test -z "$sym"; then
- echo "no file/sym for $i, lf $f"
- exit 1
+ # could be a data import
+ if test -n "$data_symf" && grep -q "$si" $data_symf; then
+ continue
+ else
+ echo "$target_s: no file/sym for $i"
+ rm $target_s
+ exit 1
+ fi
fi
fi
- echo ".globl $i" >> $
1
- echo "$i:" >> $
1
- echo " .long $sym" >> $
1
- echo >> $
1
+ echo ".globl $i" >> $
target_s
+ echo "$i:" >> $
target_s
+ echo " .long $sym" >> $
target_s
+ echo >> $
target_s
done
done