Thread overview
[help] getErrno
Oct 28, 2004
Ant
Oct 28, 2004
Sean Kelly
Oct 28, 2004
Ant
Oct 29, 2004
Ant
Oct 29, 2004
Sean Kelly
October 28, 2004
Is there any know issue with getErrno on windows XP and dmd 0.102?

I get a link error:

Error 42: Symbol Undefined _getErrno

thanks,

Ant


October 28, 2004
In article <clrthe$qu5$1@digitaldaemon.com>, Ant says...
>
>Is there any know issue with getErrno on windows XP and dmd 0.102?
>
>I get a link error:
>
>Error 42: Symbol Undefined _getErrno

I don't think so, unless getErrno was implemented after 0.102.  I've actually just about finished a fairly complete implementation of the standard C headers (incorporating stuff from DMD and DMC when needed).  If you're so inclined, they're available here:

http://home.f4.ca/sean/d/stdc.zip

I'm updating them quite frequently, so if you grab them be sure to check back often.

That said, in testing I noticed that you don't need getErrno and setErrno to operate on this value.  Simply defining:

extern (C) int errno;

is enough.  And if that doesn't work, try this:

extern (C) int* _errno();

Both are exposed in the DMC libraries.  If you're on Linux, you may have to do some digging, but the first declaration should likely work there too.


Sean


October 28, 2004
In article <clruup$t03$1@digitaldaemon.com>, Sean Kelly says...
>
>In article <clrthe$qu5$1@digitaldaemon.com>, Ant says...
>>
>>Is there any know issue with getErrno on windows XP and dmd 0.102?
>>
>>I get a link error:
>>
>>Error 42: Symbol Undefined _getErrno
>
>I don't think so, unless getErrno was implemented after 0.102.  I've actually just about finished a fairly complete implementation of the standard C headers (incorporating stuff from DMD and DMC when needed).  If you're so inclined, they're available here:
>
>http://home.f4.ca/sean/d/stdc.zip
>
>I'm updating them quite frequently, so if you grab them be sure to check back often.
>
>That said, in testing I noticed that you don't need getErrno and setErrno to operate on this value.  Simply defining:
>
>extern (C) int errno;
>
>is enough.  And if that doesn't work, try this:
>
>extern (C) int* _errno();
>
>Both are exposed in the DMC libraries.  If you're on Linux, you may have to do some digging, but the first declaration should likely work there too.

thanks.
I'll try accessing errno directly.

on phobos there is the errno.c with getErrno()
and one of the std declares it as extern(C) getErrno()
(something like that)

but now I have to revert to 102 (see my post on the bugs group)

(I just downloaded your stdc)

Ant


October 29, 2004
In article <clruup$t03$1@digitaldaemon.com>, Sean Kelly says...
>
>operate on this value.  Simply defining:
>
>extern (C) int errno;

\DD\dm\lib\SNN.lib(cinit)  Offset 0682CH Record Type 0090 Error 1: Previous Definition Different : _errno

:(

>
>is enough.  And if that doesn't work, try this:
>
>extern (C) int* _errno();

OK :)

thanks!

Ant


October 29, 2004
In article <cls1pa$101t$1@digitaldaemon.com>, Ant says...
>
>In article <clruup$t03$1@digitaldaemon.com>, Sean Kelly says...
>>
>>operate on this value.  Simply defining:
>>
>>extern (C) int errno;
>
>\DD\dm\lib\SNN.lib(cinit)  Offset 0682CH Record Type 0090 Error 1: Previous Definition Different : _errno

Well that stinks.  It works for me, but then I'm not running off a default install.  BTW, as promised, I just uploaded a new version of the stdc stuff.  I had to change all the wchar stuff back to wchar_t because the sizes are different on Windows vs. Unix :p


Sean