This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
arm-wince-pe: Help needed w/creating DLL
- From: Craig Vanderborgh <craigv at voxware dot com>
- To: binutils at sources dot redhat dot com
- Date: Tue, 10 Dec 2002 11:48:10 -0700
- Subject: arm-wince-pe: Help needed w/creating DLL
Hello all,
I appear to be getting a lot closer to creating a working
DLL on arm-wince-pe, but I'm still not quite there. In what
follows, I'm using unpatched binutils-2.13 and gcc-3.2 configured
for arm-wince-pe on an x86 Redhat 7.1 host.
As suggested by Kai Ruottu, I'm creating a DLL using the prescription
given in part 10 of the "README-interworking" document that comes with the
GCC sources. My DLL creation script is the following:
#!/bin/sh
export BINDIR=/usr/local/arm-wince-pe/bin
export DLLTOOL=$BINDIR/dlltool
export CC=$BINDIR/gcc
export LD=$BINDIR/ld
export LIBDIR=/home/craigv/rainergcc/baselibs/arm
$CC -v -s -g -c testdll.c
$CC -v -s -g -fno-leading-underscore -c dllmain.c
$DLLTOOL --verbose --def testdll.def --output-exp dll.o --output-lib dll.a
$LD -M -shared -v testdll.o dllmain.o dll.o -o testdll.dll --dll --subsystem wince:3.00 \
--entry DllMain -lcoredll > testdll.map 2>&1
The above script creates a DLL without errors or warnings, but the result is
not loadable on wince 3.0. When I run it on Wince 3.0, I get "Cannot
find test (or one of its components..." in an error dialog. Apparently
this is because the dynamic loader can't load the DLL. I compared the
output of "dumpbin /all" for both the GCC-created DLL and one created
(from the same source) with EVC 3.0. So far, I have not been able to
ascertain much from this comparison and the GCC-created DLL seems to
look okay. I would be happy to provide any additional info to anyone
who's interested.
Any comments on the correctness of the above invocations would be
helpful. In addition, I would really appreciate any suggestions
for how I might go about debugging this. In particular, how might I
be able to figure out what the wince 3.0 loader doesn't like about my
GNU-created DLL?
TIA,
craig vanderborgh
voxware incorporated