Re: Preliminary ELF prebinding patches available.

From: Matthew N. Dodd <winter_at_jurai.net>
Date: Mon, 26 May 2003 22:27:28 -0400 (EDT)
On Mon, 26 May 2003, Marcel Moolenaar wrote:
> You previously said that it would not work. Now it's just impractical.

"would not work" is a bit strong in retrospect.

> Also, it suddenly is highly desirable, while previously it was not even
> an option (because it wouldn't work).

No contradiction here.

> Is this your final position on the matter?

Sure, until I come up with solutions to the current problems.  All the
same I don't really expect to come up with a good solution to storing the
prebinding information in the executable (libraries are possible, but
still a hack.)

> > 2.  The BUILDID information (time() + random()) and filename is sufficient
> >     to reduce the chance of a collision to nil.
>
> It's highly flawed. Use UUIDs. They are less flawed.

Its not "highly flawed".  Its sufficient for the problem I'm solving.  I
don't care to argue relative merits.

Do you have some sort of un-stated agenda I should know about?

Anyhow, next time try the soft sell and talk about useful APIs that make
my job easier rather than ranting about absolute technical merits that are
outside the scope of the problem in question.

> > If you'd like to argue with me about these statements I'll entertain those
> > discussions off the list.  For now, lets just accept them as given.
>
> No deal. Demonstrate proficiency and I might give you the benefit of
> the doubt.

I've spent the last two weeks learning how rtld-elf works and the various
ways of implementing prebinding.  If you're not willing to accept a
working implementation as a qualifying credential then I need to stop
replying to you.

> > What is relevent is the transformation function I use on the BUILDID and
> > filename may result in collisions; I'm open to suggestions on this one.
>
> Do not transform. Use the UUID in the executable as the name of the
> cache file

"cfc7a8bf-8fe9-11d7-a8b8-XXXXXXXXXXXX" seems a little long for a filename.

Now that I think about it using UUIDs and storing the prebinding in a DB
file makes some amount of sense (especially if I can get per object
prebinding working.)

> or put the prebind information in the executable itself.
> The latter is highly desirable (as you say) and the impracticality
> of the approach so far seems to be based on time and joy and not
> on technicalities.

Its based on not wanting to make huge changes in third party software.
I'm fairly sure I can get the BUILDID patches into binutils (and if not
they're very simple).  I'm not about to write large amounts of FreeBSD
specific code for binutils and then try and maintain the diffs in our
tree.

I'm also going to try and favor simple, easy to verify solutions over
highly complex ones.

-- 
| Matthew N. Dodd  | '78 Datsun 280Z | '75 Volvo 164E | FreeBSD/NetBSD  |
| winter_at_jurai.net |       2 x '84 Volvo 245DL        | ix86,sparc,pmax |
| http://www.jurai.net/~winter |  For Great Justice!  | ISO8802.5 4ever |
Received on Mon May 26 2003 - 17:27:31 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:09 UTC