public inbox for pthreads-win32@sourceware.org
 help / color / mirror / Atom feed
* Linking pthread.dll to another dll
@ 1999-11-09  7:05 Erik Hensema
  1999-11-09  7:40 ` Mumit Khan
  0 siblings, 1 reply; 2+ messages in thread
From: Erik Hensema @ 1999-11-09  7:05 UTC (permalink / raw)
  To: 'Pthreads-win32'

Hi,

I'm porting a shared library from Unix to NT, and I'm using pthread.dll for
the multithreaded support.
I'm having trouble using errno and the lib. Using the debugger, I can see
that errno seems to be a function (huh? why does errno = x; work???). In my
source, errno is a variable. Obiviously, errno doesn't change after a call
to a pthread function.

What can I do to make errno work? And, how is errno implemented in the
pthread dll? Is it some C++ syntax or something? My source is Ansi C.

I'm using MSVC 6.0 from the command line, and I'm using this line to link my
dll:

cl /Fehic.dll /LDd /Zi /MTd $(OBJ) \
   hic.def \
   pthread.lib \
   thread.lib \
   ws2_32.lib \
   nt-support.lib \
   mvxutil.lib \
   mon.lib

I've tried to use the way pthread.dll is linked, however, I get an
unresolved symbol "errno" when I try that. Should I include some file to
make it work?
Please note there's nothing in the online help about errno being a function
or something.

-- 
Erik Hensema
Work: erik.hensema@group2000.nl
Home: erik@hensema.xs4all.nl

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Linking pthread.dll to another dll
  1999-11-09  7:05 Linking pthread.dll to another dll Erik Hensema
@ 1999-11-09  7:40 ` Mumit Khan
  0 siblings, 0 replies; 2+ messages in thread
From: Mumit Khan @ 1999-11-09  7:40 UTC (permalink / raw)
  To: Erik Hensema; +Cc: 'Pthreads-win32'

Erik Hensema <erik.hensema@group2000.nl> writes:
> Hi,
> 
> I'm porting a shared library from Unix to NT, and I'm using pthread.dll for
> the multithreaded support.
> I'm having trouble using errno and the lib. Using the debugger, I can see
> that errno seems to be a function (huh? why does errno = x; work???). In my
> source, errno is a variable. Obiviously, errno doesn't change after a call
> to a pthread function.
> 
> What can I do to make errno work? And, how is errno implemented in the
> pthread dll? Is it some C++ syntax or something? My source is Ansi C.


The errno is implemented as a macro on (most, if not all of the) MT
capable runtime libraries, and you need to be careful not to make the 
usual mistake that's in lots of code developed under older varieties 
of Unix:
  
  extern int errno;
  /* use errno. */

The correct form is:

  #include <errno.h>
  /* use errno. */

Regards,
Mumit

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1999-11-09  7:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-11-09  7:05 Linking pthread.dll to another dll Erik Hensema
1999-11-09  7:40 ` Mumit Khan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).