Can't link TclMagick anymore

Larry Hall (Cygwin) reply-to-list-only-lh@cygwin.com
Tue Aug 8 21:21:00 GMT 2006


Problems with the -mno-cygwin switch typically put you in the MingW
camp (www.mingw.org).  You should consult their list/archives.

See below.

Dave Bodenstab wrote:
> Within the last two months I used to be able to link a .dll using the 
> -mno-cygwin switch.  Today it fails with the error messages below.
> I know this is pretty vague, but if I can figure out >why< it
> is now broken, I am hoping I can fix it.
> 
> This *used* to work -- I used to get a .dll that worked fine with
> ActiveState's Tcl:
> 
> gcc -c -mno-cygwin ... TclMagick.c (the compile still works)
> 
> gcc -v -mno-cygwin -shared -L'/cygdrive/c/Program Files/Tcl'/lib 
> -L'/cygdrive/c/Program Files/ImageMagick/lib' -L'/cygdrive/c/Program 
> Files/ImageMagick' -o libTclMagick.dll TclMagick.o -ltclstub84 
> -lCORE_RL_wand_ -lCORE_RL_magick_
> 
> Now I get:
> Reading specs from /usr/lib/gcc/i686-pc-mingw32/3.4.4/specs
> Configured with: /gcc/gcc-3.4.4/gcc-3.4.4-1/configure --verbose 
> --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib 
> --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info 
> --enable-languages=c,ada,c++,d,f77,java,objc --enable-nls 
> --without-included-gettext --enable-version-specific-runtime-libs 
> --without-x --enable-libgcj --disable-java-awt --with-system-zlib 
> --enable-interpreter --disable-libgcj-debug --enable-threads=posix 
> --enable-java-gc=boehm --disable-win32-registry --enable-sjlj-exceptions 
> --enable-hash-synchronization --enable-libstdcxx-debug : (reconfigured)
> Thread model: posix
> gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
>  /usr/lib/gcc/i686-pc-mingw32/3.4.4/collect2.exe --shared -Bdynamic -e 
> _DllMainCRTStartup@12 -o libTclMagick.dll 
> /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/lib/dllcrt2.o 
> -L/cygdrive/c/Program Files/Tcl/lib -L/cygdrive/c/Program 
> Files/ImageMagick/lib -L/cygdrive/c/Program Files/ImageMagick 
> -L/usr/lib/gcc/i686-pc-mingw32/3.4.4 
> -L/usr/lib/gcc/i686-pc-mingw32/3.4.4 
> -L/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/lib 
> -L/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../.. TclMagick.o -ltclstub84 
> -lCORE_RL_wand_ -lCORE_RL_magick_ -lmingw32 -lgcc -lmoldname -lmingwex 
> -lmsvcrt -lmingw32 -luser32 -lkernel32 -ladvapi32 -lshell32 -lmingw32 
> -lgcc -lmoldname -lmingwex -lmsvcrt
> Warning: .drectve `-defaultlib:MSVCRT ' unrecognized
> Warning: .drectve `-defaultlib:OLDNAMES ' unrecognized
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

These warnings seem strange.  Looks allot like MS stuff but maybe it's
alright.  I'd recommend verifying it though.


> Cannot export ??_C@_03KBFG@Tcl?$AA@: symbol not found
> Cannot export ??_C@_0DM@EBFE@This?5interpreter?5does?5not?5suppor@: 
> symbol not found
> Cannot export ^?CORE_RL_magick__NULL_THUNK_DATA: symbol not found
> Cannot export ^?CORE_RL_wand__NULL_THUNK_DATA: symbol not found


You should be able to find these symbols to verify their authenticity
(or not), right?


> collect2: ld returned 1 exit status
> 
> 
> 
> I'm trying to figure out what has changed so I can fix it.
> 
> + Tcl has >not< been changed (ActiveState 8.4.13.0)
> + ImageMagick has >not< been changed (6.2.7 Q16)
> 
> I've kept my Cygwin installation current, but for this problem
> 
> + I've re-installed mingw runtime 3.9-2
> 
> Between the last time this worked, I've installed
> 
> + gcc-g++ 3.4.4-1 (but I'm not compiling/linking C++)
> + gcc-mingw-g++ 20050522-1 (but I'm not compiling/linking C++)
> + binutils 20060709-1
> + xorg packages 6.8.99.901-1
> + cygwin 1.5.21-2
> + Open Watcom
> + M$'s free Visual Express packages for C++, Basic & SQL server
>   - M$'s .net stuff (I think .net 2) was required
> + M$'s platform SDK
> + more stuff that I can't remember but I can't see where it would
>   impact Cygwin
> 
> I don't think that these orher installations are relevant --
> Cygwin's gcc does not reference this stuff, right?  What is
> necessary is all included in the Cygwin packages, right?
> 
> What is causing the linker error messages?  Has some other Cygwin
> package (that I've installed) changed in the last two months that
> could cause this?
> 
> 'cygcheck -s -v -r' output attached.


<snip>


> INCLUDE = 'F:\WATCOM\H;F:\WATCOM\H\NT'

I'd recommend removing this from your Cygwin environment as well.


-- 
Larry Hall                              http://www.rfk.com
RFK Partners, Inc.                      (508) 893-9779 - RFK Office
216 Dalton Rd.                          (508) 893-9889 - FAX
Holliston, MA 01746

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list