delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2000/09/26/09:46:55

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
Message-ID: <FBED432D914AD3118C6C00805F1582E8C38CFC@x-wb-0128-nt8.wrc.xerox.com>
From: "Mayer, Jim" <JMayer AT crt DOT xerox DOT com>
To: "'cygwin AT sources DOT redhat DOT com'" <cygwin AT sources DOT redhat DOT com>
Subject: Cygwin 1.1.4: DLL development problems, test case included.
Date: Tue, 26 Sep 2000 09:44:44 -0400
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2650.21)

------_=_NextPart_000_01C027C0.05115460
Content-Type: text/plain;
	charset="iso-8859-1"

Hello all,

I encountered some runtime problems in building DLLs under 1.1.4.  After
checking out the archives of this list, I managed to get simple cases to
build and run, but quickly discovered other problems.  The following is the
first part of the README me file from a test case I put together.  The full
README contains some "cygcheck" output as well.  I've attached the test case
(as a gzipped tar file), but I don't know if it will go through.  If it
doesn't please contact me for a copy.

Thanks.

-- Jim Mayer

---------------------

Here is a pair of dummy applications that exercise DLL building in the
cygwin 1.1.4 environment.  If I did this right, they expose a number of
bugs in the DLL handling code.

I've appended the output of "cygcheck -s -v -r" to the end of this note.

I'm running 1.1.4 with libcygwin.a updated by:

	http://sources.redhat.com/ml/cygwin/2000-08/msg00256/dll_entry.o

Thanks.

-- Jim Mayer (jmayer AT crt DOT xerox DOT com)

---------------------------------------------

I use the following two recipies for building DLLs:

	gcc     -o libfubar.dll -shared \
		-Wl,--enable-auto-image-base \
		-Wl,--out-implib=libfubar.dll.a \
		-Wl,--output-def=libfubar.def \
		FUBAR_DLL/fubar.o \
		-lstdc++
and

	gcc     -o libfubar.dll -shared \
		-Wl,--enable-auto-image-base \
		-Wl,--out-implib=libfubar.dll.a \
		fixed-libfubar.def \
		FUBAR_DLL/fubar.o \
		-lstdc++

The first lets the linker build the ".def" file based on
"__declspec(dllimport)" and "__declspec(dllexport)" function and variable
attributes.  The second uses a hand made ".def" file.

I use some funky pre-processor stuff to make the DLL imports and exports
work right.  Check the front of the ".h" files.  I've run them through
the pre-processor and validated that the "__declspec" stuff is being
expanded appropriately.

Here are the files:

	Makefile		The entry point for running tests.
	Makefile.argle		A DLL (and test) that also uses
libfubar.dll.
	Makefile.fubar		A DLL and test program.
	README			This file.
	RESULTS			A directory containing the results I got
				from running the tests along with two
				stackdumps.  This is everything produced
				when I ran "make log."
	argle-test.cpp		A test program for libargle.dll.
	argle.cpp		The implementation of the "argle" class.
	argle.h			The definition of the "argle" class.
	fixed-libargle.def	A hand made ".def" file.
	fixed-libfubar.def	A hand made ".def" file.
	fubar-test.cpp		A test program for libfubar.dll
	fubar.cpp		The implementation of the "fubar" class.
	fubar.h			The definition of the "fubar" class.

If you run "make" with no arguments, you will get the following message:

	Valid targets are:
	    demo
	    handmade
	    bug1
	    bug2
	    handmade-bug2
	    bug3
	    handmade-bug3
	    clean -- the usual
	    distclean -- clean up everything
	    log -- run all of the tests create log files for them

Running any of the first 7 targets produces a short message and then
runs the test.  Here is a brief description of what the test does and
what results I get:

demo
	This builds the programs "test-fubar-lib.exe" and
	"test-fubar-dll.exe".  The two executables compute the same
	thing; the first is statically linked and the second uses a DLL.
	This test actually works.

	Note, however, that the ".def" files produced by the linker have
	far to o many symbols in them.	This, I think, causes problems in
	"bug3" (but that is speculation).

handmade
	The same as "demo", except that the hand made ".def" file is used.
	It still works.

bug1
	In trying to port a third party package to cygwin I ran into the
	following problem.  This package runs on most *nix systems and on
	Windows using Visual C++ version 6.  It uses __declspec(dllimport)
	and __declspec(dllexport), and got the same error messages that
	you see here.

bug2
	The "fubar" class contains a static instance of itself.  If I
	try to access that element from the test program I get a crash
	when using the DLL.

handmade-bug2
	This is the same test as "bug2" but with a hand made ".def" file.
	The test still fails.

bug3
	The "argle" class is a wrapper for the "fubar" class.  It also
	contains a static instance of itself.  When linked against both
	DLLs, the test application crashes.

handmade-bug3
	This is the same test as "bug3" but with two hand made ".def"
	files.	The test succeeds.


------_=_NextPart_000_01C027C0.05115460
Content-Type: application/octet-stream;
	name="dllbug.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="dllbug.tar.gz"

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
4wv/B5pML9YAGAEA


------_=_NextPart_000_01C027C0.05115460
Content-Type: text/plain; charset=us-ascii

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
------_=_NextPart_000_01C027C0.05115460--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019