diff options
author | Christopher Faylor <me@cgf.cx> | 2003-07-07 05:23:35 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2003-07-07 05:23:35 +0000 |
commit | 0e5db0bfe8f7c4260dbdf651b169c6d3a0f8773c (patch) | |
tree | 86263d53516bade69a1bdf3d51cbbc934c870af7 | |
parent | c522b9078cb61dfd4fc2752f9b9f6a9e73d60575 (diff) | |
download | newlib-0e5db0bfe8f7c4260dbdf651b169c6d3a0f8773c.zip newlib-0e5db0bfe8f7c4260dbdf651b169c6d3a0f8773c.tar.gz newlib-0e5db0bfe8f7c4260dbdf651b169c6d3a0f8773c.tar.bz2 |
* 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.
-rw-r--r-- | winsup/cygwin/ChangeLog | 7 | ||||
-rwxr-xr-x | winsup/cygwin/newsym | 21 | ||||
-rwxr-xr-x | winsup/cygwin/rmsym | 2 |
3 files changed, 24 insertions, 6 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 4b313b0..16032ce 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -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> * newsym: Oops. Revert below change. diff --git a/winsup/cygwin/newsym b/winsup/cygwin/newsym index 688a8c6..b0f68fe 100755 --- a/winsup/cygwin/newsym +++ b/winsup/cygwin/newsym @@ -1,22 +1,33 @@ -#!/bin/sh -x +#!/bin/sh 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 +# 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 + .global __imp__$newsym _$newsym: 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 $as -o newsym.dir/$newsym.o newsym.dir/$newsym.s done diff --git a/winsup/cygwin/rmsym b/winsup/cygwin/rmsym index 428aa9d..fcd458e 100755 --- a/winsup/cygwin/rmsym +++ b/winsup/cygwin/rmsym @@ -5,7 +5,7 @@ ar=$1; shift ranlib=$1; shift grepit=`echo $* | sed 's/ /\$|__imp__/g'` [ -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 $ar d $lib $objs $ranlib $lib |