binary compatibility query
Julian Elischer
julian at elischer.org
Mon May 5 18:24:33 UTC 2008
Kris Kennaway wrote:
> Julian Elischer wrote:
>> Kris Kennaway wrote:
>>> Carl Shapiro wrote:
>>>> FreeBSD Hackers,
>>>>
>>>> I have a general question about the compatibility of FreeBSD binaries
>>>> within major releases. If I build a binary for a given release of
>>>> FreeBSD can I make a reasonable guarantee that the binary will run on
>>>> both previous and subsequent minor releases of the same major release?
>>>> In other words, if I build on FreeBSD 6.3 and do not rely on anything
>>>> unique to 6.3 (such as the presence of specific version strings) how
>>>> certain can I be that the code will or will not run on 6.2, 6.1 etc.?
>>>>
>>>> Also, is this documented anywhere on the FreeBSD web site? The
>>>> closest thing I could find is the following guidance for driver
>>>> vendors which falls just short of answering my question:
>>>>
>>>> http://wiki.freebsd.org/VendorInformation
>>>>
>>>> (Too bad the fancy illustration is missing.)
>>>
>>> Binaries compiled on a certain version of FreeBSD will continue to
>>> run on later versions, but are not guaranteed to run on earlier
>>> versions (and in fact *will* not run depending on the binary). This
>>> is because over time the system libraries and kernel grow new
>>> features which may be used by applications, so they will therefore
>>> fail to run if executed on old systems that do not provide these
>>> features.
>>>
>>> If your goal is to provide an application that runs on a range of
>>> FreeBSD versions, then either build it for the oldest of these
>>> versions, or provide multiple versions if there is a reason to do so
>>> (e.g. if there have been major improvements in the OS that are
>>> relevant to your application).
>>
>> I agree in general, however we do make an attempt to keep ABI
>> compatibility within a release line, so that there is a high
>> probability that a binary compiled on a later one will run on
>> an earlier one as long as it does not rely on new features.
>
> Actually we don't attempt to keep this form of ABI compatibility
> (running 6.3 binaries on 6.0, for example), because it basically
> precludes ever adding new functions to libc within a branch, or new
> syscalls to the kernel. You are correct that often binaries will not
> notice these accumulated changes though, or can be carefully constructed
> to avoid them.
that's all that I said..
I said that because we keep a stable ABI there is a HIGH PROBABLILITY
of stuff working, but not a guarantee.
>
> Kris
>
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"
More information about the freebsd-hackers
mailing list