* newsym: Create objects that are closer to those created by dlltool so as not

to confuse --export-all-symbols.
* rmsym: Be a little more accepting of object filenames now that dlltool can
create different format files.
This commit is contained in:
Christopher Faylor 2003-07-07 05:23:35 +00:00
parent c522b9078c
commit 0e5db0bfe8
3 changed files with 24 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2003-07-07 Christopher Faylor <cgf@redhat.com>
* newsym: Create objects that are closer to those created by dlltool so
as not to confuse --export-all-symbols.
* rmsym: Be a little more accepting of object filenames now that
dlltool can create different format files.
2003-07-06 Christopher Faylor <cgf@redhat.com> 2003-07-06 Christopher Faylor <cgf@redhat.com>
* newsym: Oops. Revert below change. * newsym: Oops. Revert below change.

View File

@ -1,22 +1,33 @@
#!/bin/sh -x #!/bin/sh
lib=$1; shift lib=$1; shift
as=$1; shift as=$1; shift
ar=$1; shift ar=$1; shift
ranlib=$1; shift ranlib=$1; shift
rm -rf newsym.dir rm -rf newsym.dir
trap "rm -rf newsym.dir" 0 1 2 15 # trap "rm -rf newsym.dir" 0 1 2 15
mkdir newsym.dir mkdir newsym.dir
while [ -n "$1" ]; do while [ -n "$1" ]; do
newsym=$1; shift newsym=$1; shift
oldsym=$1; shift oldsym=$1; shift
cat <<EOF > newsym.dir/$newsym.s cat <<EOF > newsym.dir/$newsym.s
.section .idata$6
.extern __imp__$oldsym
.extern __head_cygwin1_dll
.section .text .section .text
.global _$newsym .global _$newsym
.global __imp__$newsym
_$newsym: _$newsym:
jmp *__imp__$oldsym jmp *__imp__$oldsym
.section .idata\$7
.long __head_cygwin1_dll
.section .idata\$5
__imp__$newsym: .rva 1f
.section .idata\$4
.rva 1f
.section .idata\$6
1: .short 2
.asciz "$oldsym"
EOF EOF
$as -o newsym.dir/$newsym.o newsym.dir/$newsym.s $as -o newsym.dir/$newsym.o newsym.dir/$newsym.s
done done

View File

@ -5,7 +5,7 @@ ar=$1; shift
ranlib=$1; shift ranlib=$1; shift
grepit=`echo $* | sed 's/ /\$|__imp__/g'` grepit=`echo $* | sed 's/ /\$|__imp__/g'`
[ -n "$grepit" ] && grepit="__imp__$grepit\$" [ -n "$grepit" ] && grepit="__imp__$grepit\$"
objs=`$nm $lib | awk -F: '/^d[0-9]*.o:/ {obj=$1} '"/$grepit/"'{print obj}'` objs=`$nm $lib | awk -F: '/^d*[0-9][0-9]*.o:/ {obj=$1} '"/$grepit/"'{print obj}'`
[ -n "$objs" ] || exit 1 [ -n "$objs" ] || exit 1
$ar d $lib $objs $ar d $lib $objs
$ranlib $lib $ranlib $lib