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