Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 28 Jan 2019 10:29:12 -0500
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Re: (OT?) Re: Symbol versioning approximation trips on
 compat symbols

On Mon, Jan 28, 2019 at 02:08:13PM +0100, u-uy74@...ey.se wrote:
> On Mon, Jan 28, 2019 at 07:34:25AM +0100, Florian Weimer wrote:
> > * u-uy:
> > 
> > > On Sat, Jan 26, 2019 at 11:04:24PM -0500, Rich Felker wrote:
> > >> For what it's worth, compat symbols would have let us remove symbols
> > >> that shouldn't have been put in musl, such as lchmod (which confuses
> > >> broken apps which wrongly expect that, if it exists, it should work)
> > >
> > > For what my integrator perspective is worth, exposing brokenness instead
> > > of catering for it is a Good Thing.
> 
> > So far, no one has presented a compelling way how to test for symbol
> > versioning support.
> 
> My comment apparently fell out of context. Sorry for that.
> 
> It was about applications who make undue assumptions (and as a consequence
> use misdirected tests). Exposing the failures of those assumptions is
> vital to be able to make it better.
> 
> If there is a feature which is hard or impossible to test for, like
> symbol versioning, it means that the applications may _have_ to rely on
> an explicit build flag telling whether to use it.
> 
> IOW it is for the most part not a technical problem but rather a problem
> of awareness among application developers.

It wouldn't be hard to test for if toolchains had been consistent with
musl capabilities all along. They have not been. So we have a
situation where the valid build-time tests indicate support, but
runtime silently lacks it. I don't think this is a good situation to
have created, and it's not fixable by telling the toolchains "no, we
don't actually have that" because there are and will be deployed
toolchains that don't know/honor that for a long time.

Fortunately, it mostly doesn't matter since the main intended usage
for versioning is to link to the current/default version symbols,
assuming your apps are all up-to-date with respect to your libs (and
libs wrt each other). But I still think honoring version bindings in
ldso is the right course of action.

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.