diff options
Diffstat (limited to 'winsup/cygwin/newsym')
-rwxr-xr-x | winsup/cygwin/newsym | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/winsup/cygwin/newsym b/winsup/cygwin/newsym new file mode 100755 index 000000000..688a8c6f8 --- /dev/null +++ b/winsup/cygwin/newsym @@ -0,0 +1,24 @@ +#!/bin/sh -x +lib=$1; shift +as=$1; shift +ar=$1; shift +ranlib=$1; shift +rm -rf newsym.dir +trap "rm -rf newsym.dir" 0 1 2 15 +mkdir newsym.dir +while [ -n "$1" ]; do + newsym=$1; shift + oldsym=$1; shift + cat <<EOF > newsym.dir/$newsym.s + .section .idata$6 + .extern __imp__$oldsym + .extern __head_cygwin1_dll + .section .text + .global _$newsym +_$newsym: + jmp *__imp__$oldsym +EOF + $as -o newsym.dir/$newsym.o newsym.dir/$newsym.s +done +$ar cru $lib newsym.dir/*.o +$ranlib $lib |