Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 05 May 2008 14:16:45 -0500
From:      Guy Helmer <ghelmer@palisadesys.com>
To:        Carl Shapiro <carl.shapiro@gmail.com>
Cc:        freebsd-hackers@freebsd.org, Julian Elischer <julian@elischer.org>
Subject:   Re: binary compatibility query
Message-ID:  <481F5D1D.6050703@palisadesys.com>
In-Reply-To: <4dcb5abd0805051132o77d68e36u3f0ad38630a02afd@mail.gmail.com>
References:  <4dcb5abd0805050540m292b319aw52aa2cb8ba018e12@mail.gmail.com>	<481F0DB3.9070505@FreeBSD.org> <481F48EE.3050806@elischer.org>	<481F4EED.2030300@FreeBSD.org> <4dcb5abd0805051132o77d68e36u3f0ad38630a02afd@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Carl Shapiro wrote:
> Kris & Julian
>
> Thank you for clarifiying the compatibility situation.  This
> information was exactly what I was looking for.
>
> I have a follow-up question based on this remark...
>
> On 5/5/08, Kris Kennaway <kris@freebsd.org> wrote:
>   
>>  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.
>>     
>
> If my binary only executes system calls indirectly through libc
> interfaces, as far as libc and libm are concerned, are new symbols the
> only thing I need to worry about?
>   
Not necessarily.  For example, the DNS resolver library was updated 
between FreeBSD 6.1 and 6.2 to bind 9's resolver library, resulting in 
the disappearance of the _res symbol in 6.2.  As long as you depend only 
on public interfaces, though, you should be fine.

Guy

-- 
Guy Helmer, Ph.D.
Chief System Architect
Palisade Systems, Inc.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?481F5D1D.6050703>