delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1999/05/04/12:07:44

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
Sender: cygwin-owner AT sourceware DOT cygnus DOT com
Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com
Message-Id: <199905041606.LAA06834@modi.xraylith.wisc.edu>
X-Authentication-Warning: modi.xraylith.wisc.edu: localhost.xraylith.wisc.edu [127.0.0.1] didn't use HELO protocol
To: Paul Thiessen <paul AT grserv DOT med DOT jhmi DOT edu>
cc: cygwin AT sourceware DOT cygnus DOT com
Subject: Re: problem building tcl/tk 8.0.3 using egcs-1.1.2/msvcrt40
In-reply-to: Your message of "Tue, 04 May 1999 10:10:18 EDT."
<Pine DOT SGI DOT 4 DOT 05 DOT 9905040955530 DOT 55291-100000 AT turandot DOT med DOT jhmi DOT edu>
Date: Tue, 04 May 1999 11:06:16 -0500
From: Mumit Khan <khan AT xraylith DOT wisc DOT EDU>

Paul Thiessen <paul AT grserv DOT med DOT jhmi DOT edu> writes:
> Hi. I'm using Mumit Khan's mingw32/egcs-1.1.2 with his msvcrt40-runtime
> stuff installed. I'm trying to build tcl 8.0.3, with source patches again
> provided by Mr. Khan, which compiles fine w/o the msvcrt40 update. I have
> a couple of questions:
> 
> 1) What's the advantage of using msvcrt? Should I bother with Q #2, or
> is it not worth it?

Depends on your application. MSVCRT has quite possibly better threading 
support than CRTDLL, and has bug fixes that CRTDLL may or may not have.
However, for most part, CRTDLL works just as well as MSVCRT. Using MSVCRT
has one advantage -- since most of the MS apps use MSVCRT, it's already
loaded on the system, and CRTDLL apps need to load that as well. However,
it's just a bit of extra RAM.

The short answer is that it depends on what you need. I do just fine with
CRTDLL.

> 2) When I do the compile (using the provided Makefile.gnu), dllwrap gives
> me errors of the sort:
> 
> ./tclEnv.o(.text+0x365):tclEnv.c: undefined reference to
> `__imp__environ_dll'
> ./tclWinTime.o(.text+0x21):tclWinTime.c: undefined reference to
> `__imp__timezone_dll'
> ./tclWinTime.o(.text+0x4ad):tclWinTime.c: undefined reference to
> `__imp__daylight_dll'
> 

That means that either you have installed msvcrt runtime support correctly
(as Earnie points out, you're not passing -D__MSVCRT__ correctly, which
is done when you install the msvcrt runtime), or you didn't recompile all
of tcl when you moved to msvcrt.

The other reason may be that I didn't build it for msvcrt and didn't
notice these problems. 

> Again, I have changed nothing from the working compile - haven't touched
> the tcl tree at all, but only unpacked the egcs-1.1.2-msvcrt40-runtime.zip
> file into my egcs tree, removed the old tcl*.dll, and re-ran make.
>   Is there some way to fix this? I'm not nearly expert enough to track
> down just where these symbols are coming from, but if someone could give
> me some brief advice, perhaps I'll attempt it in order to better learn
> how all this works - I'm new to mingw32 and the whole process of building
> DLL's, so this might be educational... :) I'd just like to know where to
> start looking.

Remove all the .o, .a etc files as well. MSVCRT support requires that
everything be recompiled, not just relinked.

Regards,
Mumit


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


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