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>