Hi Guy.
> -----Original Message-----
> From: Guy Harris [mailto:gharris@xxxxxxxxxxxx]
> Sent: Sunday, April 02, 2000 12:44
> To: Fulvio Risso
> Cc: ethereal-dev@xxxxxxxx; Loris Degioanni; Bruno Quarta
> Subject: Re: [ethereal-dev] New release of tcpdump / lipbpcap for Win32
>
>
> On Wed, Mar 29, 2000 at 02:20:04PM +0200, Fulvio Risso wrote:
> > Hello everyone.
> > We've just released a new version (2.02) of tcpdump for windows
> (WinDump),
> > together with a more complete (and, hopefully, less bugged) version of
> > libpcap for Windows.
>
> I tried building ethereal with it, but it appears that at least one, if
> not both, of libpcap and the packet library are linked with libcmt,
Correct.
Do you suggest doing otherwise?
Are there any advantages of compiling a single-threaded library?
> the multi-threaded version of the C support library, which means that:
>
> the standard Ethereal link causes complaints about "__tolower",
> or something such as that, being redefined;
>
> if I put in "/NODEFAULTLIB:libc", as I infer the linker is
> suggesting I should do, I instead get complaints about "_errno"
> not being defined.
>
> Is it possible to build non-multi-threaded programs with winpcap?
Yes.
There are 2 ways:
1. Quoting from the documentation of WinPcap (Instruction and examples):
====================
If the linker generates errors like "conflicts with use of other libs", or
"Symbol XXX already defined in XXX", force the linker to ignore the multiple
definitions. To do this with Microsoft Visual C++ 6.0, select Settings from
the Project menu, select Link from the tab control, and type
"/force:MULTIPLE" in the Project Options edit box. If the link process
generates warnings, ignore them.
====================
2. You can recompile winpcap on your own, choosing a single-threaded memory
model (that's the suggested solution)
> If not, is it possible to build a non-multi-threaded program as if it
> were multi-threaded (which Ethereal isn't) and have it still use
> "errno"? (Ethereal, not being multithreaded, doesn't care that "errno"
> won't work right in a multithreaded environment if implemented just as a
> global variable.)
>
> If not, then it appears Ethereal can't use the current version of winpcap.
Let us know.
Cheers,
fulvio