diff --git a/src/core/sys/freebsd/config.d b/src/core/sys/freebsd/config.d index cc6ff84abf2..4eda066b293 100644 --- a/src/core/sys/freebsd/config.d +++ b/src/core/sys/freebsd/config.d @@ -11,6 +11,8 @@ public import core.sys.posix.config; // https://svnweb.freebsd.org/base/head/sys/sys/param.h?view=markup // __FreeBSD_version numbers are documented in the Porter's Handbook. +// NOTE: When adding newer versions of FreeBSD, verify all current versioned +// bindings are still compatible with the release. version (FreeBSD_12) enum __FreeBSD_version = 1202000; else version (FreeBSD_11) enum __FreeBSD_version = 1104000; else version (FreeBSD_10) enum __FreeBSD_version = 1004000; diff --git a/src/core/sys/freebsd/sys/event.d b/src/core/sys/freebsd/sys/event.d index cc1c25a8b05..2bd3839f095 100644 --- a/src/core/sys/freebsd/sys/event.d +++ b/src/core/sys/freebsd/sys/event.d @@ -39,7 +39,7 @@ enum EVFILT_SYSCOUNT = 11, } -static if (__FreeBSD_version >= 1200000 && __FreeBSD_version < 1300000) +static if (__FreeBSD_version >= 1200000) { struct kevent_t { @@ -52,7 +52,7 @@ static if (__FreeBSD_version >= 1200000 && __FreeBSD_version < 1300000) ulong[4] ext; } } -else static if (__FreeBSD_version < 1200000) +else { struct kevent_t { @@ -64,8 +64,6 @@ else static if (__FreeBSD_version < 1200000) void *udata; /* opaque user data identifier */ } } -else - static assert(0, "Unsupported version of FreeBSD"); extern(D) void EV_SET(kevent_t* kevp, typeof(kevent_t.tupleof) args) { diff --git a/src/core/sys/freebsd/sys/mount.d b/src/core/sys/freebsd/sys/mount.d index 42725750acc..7051dd675c5 100644 --- a/src/core/sys/freebsd/sys/mount.d +++ b/src/core/sys/freebsd/sys/mount.d @@ -34,18 +34,16 @@ struct fid enum MFSNAMELEN = 16; -static if (__FreeBSD_version >= 1200000 && __FreeBSD_version < 1300000) +static if (__FreeBSD_version >= 1200000) { enum MNAMELEN = 1024; enum STATFS_VERSION = 0x20140518; } -else static if (__FreeBSD_version < 1200000) +else { enum MNAMELEN = 88; enum STATFS_VERSION = 0x20030518; } -else - static assert(0, "Unsupported version of FreeBSD"); struct statfs_t { diff --git a/src/core/sys/posix/dirent.d b/src/core/sys/posix/dirent.d index 1133162e7f1..61826d5cd46 100644 --- a/src/core/sys/posix/dirent.d +++ b/src/core/sys/posix/dirent.d @@ -157,7 +157,7 @@ else version (FreeBSD) DT_WHT = 14 } - static if (__FreeBSD_version >= 1200000 && __FreeBSD_version < 1300000) + static if (__FreeBSD_version >= 1200000) { struct dirent { @@ -170,7 +170,7 @@ else version (FreeBSD) char[256] d_name = 0; } } - else static if (__FreeBSD_version < 1200000) + else { align(4) struct dirent @@ -182,8 +182,6 @@ else version (FreeBSD) char[256] d_name = 0; } } - else - static assert(0, "Unsupported version of FreeBSD"); alias void* DIR; diff --git a/src/core/sys/posix/sys/types.d b/src/core/sys/posix/sys/types.d index ad525b73540..6195c03d751 100644 --- a/src/core/sys/posix/sys/types.d +++ b/src/core/sys/posix/sys/types.d @@ -197,22 +197,20 @@ else version (FreeBSD) // https://github.com/freebsd/freebsd/blob/master/sys/sys/_types.h alias long blkcnt_t; - static if (__FreeBSD_version >= 1200000 && __FreeBSD_version < 1300000) + static if (__FreeBSD_version >= 1200000) { alias ulong blksize_t; alias ulong dev_t; alias ulong ino_t; alias ulong nlink_t; } - else static if (__FreeBSD_version < 1200000) + else { alias uint blksize_t; alias uint dev_t; alias uint ino_t; alias ushort nlink_t; } - else - static assert(0, "Unsupported version of FreeBSD"); alias uint gid_t; alias ushort mode_t;