This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [RFC][PATCH v4 06/11] Provide backward compatibility for strftime family (bug 10871).
- From: Rafal Luzynski <digitalfreak at lingonborough dot com>
- To: libc-alpha at sourceware dot org, Florian Weimer <fweimer at redhat dot com>
- Date: Sat, 5 Nov 2016 11:53:09 +0100 (CET)
- Subject: Re: [RFC][PATCH v4 06/11] Provide backward compatibility for strftime family (bug 10871).
- Authentication-results: sourceware.org; auth=none
- References: <758885038.1799972.1477615768169@poczta.nazwa.pl> <71b7640e-55b0-06a5-1dff-b0fcbaf0eea9@redhat.com>
- Reply-to: Rafal Luzynski <digitalfreak at lingonborough dot com>
4.11.2016 14:40 Florian Weimer <fweimer@redhat.com> wrote:
>
>
> On 10/28/2016 02:49 AM, Rafal Luzynski wrote:
> > As %OB format specifier has been added to strftime/wcsftime
> > family of functions backward compatibility implementation must be
> > provided for older binaries which assume that %B returns
> > a month name in the nominative case.
>
> I think this is a misuse of symbol versioning. Why would I want to pick
> up this change when compiling from source, but not for existing binaries?
>
> Florian
There may be applications which rely on the fact that "%B"
returns the month name in a nominative case. An example is cal(1)
which has been pointed out in [1]. Their source code should be
changed to use "%OB" but it cannot be expected from the existing
binaries.
Did I understand your question correctly?
You could also ask how to provide the backward compatibility
for the applications compiled from source. I think it's
impossible and it's been kinda agreed in [2]. I think that
another argument is that if you're compiling an application
from the source code then you can change %B to %OB or put some
code detecting the current glibc version (at compile time or
even at runtime).
Regards,
Rafal Luzynski
[1] https://sourceware.org/ml/libc-alpha/2016-03/msg00698.html
[2] https://sourceware.org/ml/libc-alpha/2016-06/msg00021.html