Bug? Error in phobos?

Regan Heath regan at netmail.co.nz
Fri Sep 21 08:59:53 PDT 2007


TomD wrote:
> Regan Heath Wrote:
> 
>> Regan Heath wrote:
>>> import std.socket;
>>> import std.c.windows.winsock;
>>>
>>> pragma(lib, "wsock32.lib");
>>>
>>> class IndexPacketReader
>>> {
>>>     //static void foo()  //works
>>>     void foo()
>>>     {
>>>         ntohl(1);  //fails
>>>     }
>>> }
>>>
>>> void main()
>>> {
>>>     new TcpSocket();
>>>     //ntohl(1); //works
>>> }
>>>
>>> E:\D\src\tmp>dmd bug003.d
>>> E:\D\dmd\bin\..\..\dm\bin\link.exe bug003,,,user32+kernel32/noi;
>>> OPTLINK (R) for Win32  Release 7.50B1
>>> Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved
>>>
>>> E:\D\dmd\bin\..\lib\phobos.lib(winsock)  Offset 276FEH Record Type 00C3
>>>  Error 1: Previous Definition Different : _ntohl at 4
>>> --- errorlevel 1
>>>
>>> Anyone know what this means?
>> No-one??  This bug is particularly annoying because it prevents me from 
>> calling ntohl, ntohs etc from within a class method.  In the end I just 
>> wrote my own ntohl functin and called that.
>>
>> Regan
> 
> It works when you drop the new TcpSocket(). Go figure. It gives me no clue
> what may be the reason.

I reckon "new TcpSocket" causes the linker to link something it 
otherwise wouldn't.  That's the extent of my knowledge however :(

Regan



More information about the Digitalmars-d mailing list