notaz.gp2x.de
/
ia32rtools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
translate: allow negative offsets on indexed stack accesses
[ia32rtools.git]
/
run_imp.sh
diff --git
a/run_imp.sh
b/run_imp.sh
index
1c9cf90
..
15381b7
100755
(executable)
--- a/
run_imp.sh
+++ b/
run_imp.sh
@@
-1,13
+1,23
@@
#!/bin/sh
#!/bin/sh
-grep 'extrn ' $1 | awk '{print $2}' | awk -F: '{print $1}' > $2_implist
-extra_libs=`ls *.lib 2> /dev/null`
+# warning: i686-w64-mingw32- on Ubuntu 14.04
+# contains broken InterlockedDecrement
+test -n "$mingwb" || mingwb=i686-w64-mingw32
-echo ".data" > $2
-echo ".align 4" >> $2
+target_s=$1
+src_asm=$2
+implist=${target_s}_implist
+tmpsym=${target_s}_tmpsym
+shift 2
-cat $2_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-`
@@
-17,22
+27,22
@@
cat $2_implist | while read i; do
;;
esac
;;
esac
- grep
"\<_$si\>" /usr/i586-mingw32msvc/lib/lib* $extra_libs
| 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
"
+ echo "
$target_s: no file/sym for $i
"
exit 1
fi
exit 1
fi
- echo ".globl $i" >> $
2
- echo "$i:" >> $
2
- echo " .long $sym" >> $
2
- echo >> $
2
+ echo ".globl $i" >> $
target_s
+ echo "$i:" >> $
target_s
+ echo " .long $sym" >> $
target_s
+ echo >> $
target_s
done
done