[Issue 22615] Wrong OS version and struct kevent_t in FreeBSD 13
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Dec 21 18:28:53 UTC 2021
https://issues.dlang.org/show_bug.cgi?id=22615
--- Comment #1 from Eugene <dee0xeed at gmail.com> ---
@bsd:~/d> dmd --version
DMD64 D Compiler v2.098.0
LDC2 standart library does not have core.sys.freebsd.config module,
but kevent_t.sizeof is also wrong:
bsd:~/d> ldc2 -v
binary /usr/local/bin/ldc2
version 1.23.0 (DMD v2.093.1, LLVM 10.0.1)
@bsd:~/d> ldc2 freebsdver.d
@bsd:~/d> ./freebsdver
sizeof(kevent_t) = 32
Must be 64, see exerpt from /usr/include/sys/event.h:
new, 12+:
struct kevent {
__uintptr_t ident; // identifier for this event
short filter; // filter for event
unsigned short flags; // action flags for kqueue
unsigned int fflags; // filter flag value
__int64_t data; // filter data value
void *udata; // opaque user data identifier
__uint64_t ext[4]; // extensions
};
old, 11-:
#if defined(_WANT_FREEBSD11_KEVENT)
// Older structure used in FreeBSD 11.x and older.
struct kevent_freebsd11 {
__uintptr_t ident; // identifier for this event
short filter; // filter for event
unsigned short flags;
unsigned int fflags;
__intptr_t data;
void *udata; // opaque user data identifier
};
#endif
--
More information about the Digitalmars-d-bugs
mailing list