Subject: Binary backward compatibility
To: None <tech-userlevel@NetBSD.org>
From: Alan Barrett <apb@cequrux.com>
List: tech-userlevel
Date: 10/12/2007 11:50:53
On Thu, 11 Oct 2007, Aleksey Cheusov wrote:
> Do you mean that ALL/MOST programs/packages built for older NetBSD
> releases should work without recompilation with newer NetBSD versions
> and NetBSD releases are ALWAYS binary backward compatible with older
> releases?
> 
> Or at least there is such goal?

Yes, it's a goal, and we usually get it right (provided the new kernel
is built with appropriate COMPAT_* options), but there are some
exceptions.  Exceptions that I can remember or suspect are:

  * We sometimes decide not to care about binary compatibility with
    un-released old versions of NetBSD-current, especially if the window
    of incompatibility is only a few days.

  * There have sometimes been incompatible ABI changes in small
    subsystems; for example, old versions of the ipf(8) userland tools
    don't always work with new kernels, and old versions of the firmware
    for certain devices don't always work with new kernels.

  * There was an incompatible change to the threading model when the
    newlock2 branch was merged in February 2007; this requires both
    libpthread.so and the kernel to be in sync.

  * I don't know how good we are about binary compatibility with old
    versions of emulated non-NetBSD operating systems.

--apb (Alan Barrett)