Daniel X created THRIFT-5243:
--------------------------------
Summary: Broken Dlang build on Windows
Key: THRIFT-5243
URL: https://issues.apache.org/jira/browse/THRIFT-5243
Project: Thrift
Issue Type: Bug
Components: D - Library
Affects Versions: 0.13.0
Environment: Windows 10 Pro 1909
LDC version 1.20.1
DUB version 1.19.0
Thrift 0.13.0
Reporter: Daniel X
Can't build on Windows with a recent-ish D compiler (LDC 1.20.1) .
An immediate problem is that the D library is using a deprecated winsock import
(*std.c.windows.winsock*, has moved to *core.sys.windows.winsock2*). But fixing
that manually reveals a slew of other issues beyond my understanding.
Just a few from the error output:
{quote}{{lib\d\src\thrift\async\libevent.d(65,37): Error: function
deimos.event2.event.event_new(event_base*, int, short, extern (C) void
function(int, short, void*), void*) is not callable using argument types
(event_base*, socket_t, int, extern (C) void function(int, short, void*)
nothrow @system, void*)}}
{{lib\d\src\thrift\async\libevent.d(65,37): cannot pass argument
this.controlReceiveSocket_.handle() of type socket_t to parameter int}}
{{lib\d\src\thrift\async\libevent.d(191,25): Error: template
thrift.async.libevent.TLibeventAsyncManager.registerOneshotEvent cannot deduce
function from argument types !()(socket_t, short, extern (C) void function(int,
short, void*) nothrow @system, const(timeval)*, void delegate(TAsyncEventReason
callReason)), candidates are:}}
{{lib\d\src\thrift\async\libevent.d(195,8):
registerOneshotEvent(T)(evutil_socket_t fd, short type, event_callback_fn
callback, const(timeval)* timeout, T payload)}}
{{lib\d\src\thrift\codegen\async_client_pool.d(99,25): Deprecation:
initialization of immutable variable from static this is deprecated.}}
{{lib\d\src\thrift\codegen\async_client_pool.d(99,25): Use shared static this
instead.}}
{quote}
Also, while replacing the deprecated winsock imports, I noticed the conditional
compilation blocks were using version(Win32) instead of version(Windows). AFAIK
the former is only for 32-bit compilation - and I had to replace that to get as
far as I did.
Sorry I can't be of more assistance, but I didn't see any existing issues about
this so thought I'd report it. (Not a lot of Thrift D users on Windows, it
seems!)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)