Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2003-07-07 09:23:35 +0400
committerChristopher Faylor <me@cgf.cx>2003-07-07 09:23:35 +0400
commit0e5db0bfe8f7c4260dbdf651b169c6d3a0f8773c (patch)
tree86263d53516bade69a1bdf3d51cbbc934c870af7 /winsup/cygwin
parentc522b9078cb61dfd4fc2752f9b9f6a9e73d60575 (diff)
* 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.
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