This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: What does LAV_CURRENT mean backwards compatibility of LD_AUDIT interface?
- From: "Carlos O'Donell" <carlos at redhat dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>, Roland McGrath <roland at hack dot frob dot com>, "Joseph S. Myers" <joseph at codesourcery dot com>
- Cc: Ben Woodard <woodard at redhat dot com>
- Date: Tue, 17 Mar 2015 01:41:04 -0400
- 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>
On 02/26/2015 07:38 PM, Carlos O'Donell wrote:
> (a) Version N+1 is backwards compatible.
>
> In this scenario we are constrained by previous implementations
> and are forced to make only backwards compatible changes.
>
> This means that for an application to see a version in la_version
> greater than the version it expects is OK, since everything is
> backwards compatible.
>
> Code like we have in elf/sotruss-lib.c would then be a bad exmaple
> of how to do things. e.g.
>
> 121 /* Audit interface verification. We also initialize everything if
> 122 everything checks out OK. */
> 123 unsigned int
> 124 la_version (unsigned int v)
> 125 {
> 126 if (v != LAV_CURRENT)
> 127 error (1, 0, "cannot handle interface version %u", v);
> 128
> 129 init ();
> 130
> 131 return v;
> 132 }
>
> Should instead check for `v < LAV_CURRENT` before issuing an error.
> I know that we do this today because sotruss-lib should match the
> library, but users might cut-and-paste some of this code and it should
> showcase best practice or have a comment that talks about it.
I'm going to just come out and say that glibc is a conservative project
and that any LD_AUDIT changes are always backwards compatible.
This means the official stance I'd like to take is that if the incoming
value of version is > LAV_CURRENT that you have all the support you need.
Flag bits will be allocated and if we run out we run out.
Backwards compatibility will be the guiding principle.
Cheers,
Carlos.