On Thursday, 2 November 2017 at 04:25:26 UTC, Andrei Alexandrescu
wrote:
From the recent PR-related discussion I gather that FreeBSD 12
has made some breaking changes to file primitives such as stat.
Do binaries built for pre-v12 crash on v12? If that's the case
we should have two distinct build platforms, FreeBSD "legacy"
and FreeBSD 12. They would be selected statically.
IF older binaries don't crash, what mechanism is FreeBSD 12
using to identify old API calls?
Thanks,
Andrei
Targetted versioning should be implemented. Full stop ;-)
Pre ino64 ABI compatibility can be obtained in 12, **if** the
kernel is compiled with option COMPAT_FREEBSD11 (presumably this
option is enabled in the DEFAULT kernel)...
That option enables 'several techniques' that can mitigate for
ABI breakage, but it won't work for all cases - really depends on
what the application is doing with struct stat.
https://svnweb.freebsd.org/base/head/sys/sys/stat.h?view=markup#l158