summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog7
-rwxr-xr-xwinsup/cygwin/newsym21
-rwxr-xr-xwinsup/cygwin/rmsym2
3 files changed, 24 insertions, 6 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 4b313b0ff..16032cea3 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 688a8c6f8..b0f68fec2 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 428aa9d50..fcd458e54 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