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/newsym
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/newsym')
-rwxr-xr-xwinsup/cygwin/newsym21
1 files changed, 16 insertions, 5 deletions
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