On Thu, 10 Oct 2002, Earnie Boyd wrote:

> Bob Friesenhahn wrote:
> >
> > Cygwin does not have these problems so we have a working example.
>
> As I've stated before, the workings parts are the same between MinGW and
> Cygwin with regard to producing the end result.  AFA libtool is
> concerned the two are equal.

CVS libtool fails to link C++ DLLs under MinGW, but succeeds under
Cygwin.  I have looked at the .la files, and everything appears to be
in order there, so the problem seems to be during the C++ DLL link
phase.  The MinGW environment is the base MinGW release, with Windows
API updates applied.

The behavior of libtool when linking under Cygwin and MinGW is shown
below (lines wrapped for clarity).  Please let me know if you spot a
reason for the failure.

Cygwin:

/bin/bash ../../libtool --mode=link g++ -O0 -march=i686
-L/usr/local/lib -L/usr/X11R6/lib -L/usr/X11R6/lib -L/usr/lib
-L/usr/local/lib -L/usr/X11R6/lib -L/usr/X11R6/lib -L/usr/lib -o
libMagick++.la -rpath /usr/local/lib -version-info 5:51:0 Blob.lo
BlobRef.lo CoderInfo.lo Color.lo Drawable.lo Exception.lo Functions.lo
Geometry.lo Image.lo ImageRef.lo Montage.lo Options.lo Pixels.lo
STL.lo Thread.lo TypeMetric.lo ../../magick/libMagick.la
g++ -shared -nostdlib .libs/Blob.o .libs/BlobRef.o .libs/CoderInfo.o
.libs/Color.o .libs/Drawable.o .libs/Exception.o .libs/Functions.o
.libs/Geometry.o .libs/Image.o .libs/ImageRef.o .libs/Montage.o
.libs/Options.o .libs/Pixels.o .libs/STL.o .libs/Thread.o
.libs/TypeMetric.o -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib
../../magick/.libs/libMagick.dll.a -L/usr/lib/w32api
-L/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-5 -lstdc++ -lgcc -lcygwin
-luser32 -lkernel32 -ladvapi32 -lshell32 -lgcc -o
.libs/cygMagick++-5.dll -Wl,--image-base=0x10000000
-Wl,--out-implib,.libs/libMagick++.dll.a
Creating library file: .libs/libMagick++.dll.a
creating libMagick++.la
(cd .libs && rm -f libMagick++.la && ln -s ../libMagick++.la libMagick++.la)

MinGW:

/bin/sh ../../libtool --mode=link g++ -O0 -march=i686 -L/usr/local/lib
-L/usr/local/lib -o libMagick++.la -rpath /usr/local/lib -version-info
5:51:0 Blob.lo BlobRef.lo CoderInfo.lo Color.lo Drawable.lo
Exception.lo Functions.lo Geometry.lo Image.lo ImageRef.lo Montage.lo
Options.lo Pixels.lo STL.lo Thread.lo TypeMetric.lo
../../magick/libMagick.la
g++ -shared
c:/mingw/bin/../lib/gcc-lib/mingw32/2.95.3-6/../../../dllcrt2.o
.libs/Blob.o .libs/BlobRef.o .libs/CoderInfo.o .libs/Color.o
.libs/Drawable.o .libs/Exception.o .libs/Functions.o .libs/Geometry.o
.libs/Image.o .libs/ImageRef.o .libs/Montage.o .libs/Options.o
.libs/Pixels.o .libs/STL.o .libs/Thread.o .libs/TypeMetric.o
-L/usr/local/lib ../../magick/.libs/libMagick-5.dll
-Lc:/mingw/bin/../lib/gcc-lib/mingw32/2.95.3-6
-Lc:/mingw/bin/../lib/gcc-lib -L/mingw/lib/gcc-lib/mingw32/2.95.3-6
-Lc:/mingw/bin/../lib/gcc-lib/mingw32/2.95.3-6/../../../../mingw32/lib
-L/mingw/lib/gcc-lib/mingw32/2.95.3-6/../../../../mingw32/lib
-Lc:/mingw/bin/../lib/gcc-lib/mingw32/2.95.3-6/../../..
-L/mingw/lib/gcc-lib/mingw32/2.95.3-6/../../.. -lstdc++ -luser32
-lkernel32 -ladvapi32 -lshell32 -lmingw32 -lgcc -lmoldname -lmsvcrt -o
.libs/libMagick++-5.dll
c:/mingw/bin/../lib/gcc-lib/mingw32/2.95.3-6/../../../dllcrt2.o: In
function `DllMainCRTStartup':
//c/cygmnt/samo/mingw/msys/dllcrt1.c(.text+0x0): multiple definition
of `DllMainCRTStartup@12'
c:/mingw/bin/../lib/gcc-lib/mingw32/2.95.3-6/../../../dllcrt2.o(.text+0x0)://c/cygmnt/samo/mingw/msys/dllcrt1.c:
first defined here
c:/mingw/bin/../lib/gcc-lib/mingw32/2.95.3-6/../../../dllcrt2.o: In
function `atexit':
//c/cygmnt/samo/mingw/msys/dllcrt1.c(.text+0xe8): multiple definition
of `atexit'
c:/mingw/bin/../lib/gcc-lib/mingw32/2.95.3-6/../../../dllcrt2.o(.text+0xe8)://c/cygmnt/samo/mingw/msys/dllcrt1.c:
first defined here
c:/mingw/bin/../lib/gcc-lib/mingw32/2.95.3-6/../../../dllcrt2.o: In
function `onexit':
//c/cygmnt/samo/mingw/msys/dllcrt1.c(.text+0x114): multiple definition
of `_onexit'
c:/mingw/bin/../lib/gcc-lib/mingw32/2.95.3-6/../../../dllcrt2.o(.text+0x114)://c/cygmnt/samo/mingw/msys/dllcrt1.c:
first defined here
make[3]: *** [libMagick++.la] Error 1

======================================
Bob Friesenhahn
[EMAIL PROTECTED]
http://www.simplesystems.org/users/bfriesen



_______________________________________________
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool

Reply via email to