This is the mail archive of the
mailing list for the glibc project.
Re: What does LAV_CURRENT mean backwards compatibility of LD_AUDIT interface?
- From: Roland McGrath <roland at hack dot frob dot com>
- To: Ben Woodard <woodard at redhat dot com>
- Cc: "Carlos O'Donell" <carlos at redhat dot com>, GNU C Library <libc-alpha at sourceware dot org>, "Joseph S. Myers" <joseph at codesourcery dot com>
- Date: Thu, 19 Mar 2015 14:00:17 -0700 (PDT)
- Subject: Re: What does LAV_CURRENT mean backwards compatibility of LD_AUDIT interface?
- Authentication-results: sourceware.org; auth=none
- References: <54EFBC96 dot 7010608 at redhat dot com> <5507BE70 dot 4090800 at redhat dot com> <20150318215629 dot 2BA1D2C3B30 at topped-with-meat dot com> <550A1A30 dot 2020500 at redhat dot com> <20150319192738 dot D24212C3B11 at topped-with-meat dot com> <30A52510-F5CC-47EE-8E59-8843E7794102 at redhat dot com>
That wording says to me that no actual binary compatibility between
versions of the interface is required beyond the la_version interface being
there in every version. Once la_version has returned, rtld knows what
version of the interface that module supports and so the set of other
symbols it looks up and the ABI for each can depend on that. A newer rtld
is obliged to keep supporting older versions of the interface when such a
version number is returned by a module's la_version. But that in no way
means that a new version must be a superset of its predecessor or anything
like that. Am I missing something?