For those in the know, DragonFly BSD is a derivative of FreeBSD 4.9
with some fairly major changes to the kernel (approximately equal in
scope to the changes in FreeBSD 5.x, but in a different direction). I
asked antifuchs to build his 0.8.14 release binaries on FreeBSD 4.x,
and these binaries currently work fine on my DragonFly 1.0A machine;
however, I don't think we should rely on this long-term. DragonFly
might eventually choose to break binary compatibility with FreeBSD
binaries; however, more importantly, they have a clear intention of
exposing their own user-level threading API in the next release. Since
the lack of viable threading API is (AFAIK) what's keeping the FreeBSD
port from supporting threads, this is potentially good news.
In order to be ready for this, I would propose that we should find the
areas of the source where the FreeBSD conditional is used and
copy-and-paste them to use the DragonFlyBSD conditional. By default,
the preprocessor __DragonFly__ seems to be defined as the standard way
to test for a DragonFly system. On DragonFly systems, a :dragonfly
keyword should be added to *features*, and any areas of the source
(incl sb-posix) depending on the FreeBSD conditional be changed to also
test for the dragonfly feature.
Any thoughts? I've got time to work on this during this weekend, so I
might take an initial crack at it.