From 0e5db0bfe8f7c4260dbdf651b169c6d3a0f8773c Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Mon, 7 Jul 2003 05:23:35 +0000 Subject: [PATCH] * 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. --- winsup/cygwin/ChangeLog | 7 +++++++ winsup/cygwin/newsym | 21 ++++++++++++++++----- winsup/cygwin/rmsym | 2 +- 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 + + * 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 * 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 < 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