Unfortunate dynamic linking for everything

Peter Jeremy peterjeremy at optushome.com.au
Thu Nov 20 01:52:30 PST 2003


On Wed, Nov 19, 2003 at 11:18:47AM -0700, Lyndon Nerenberg wrote:
>--On Wednesday, November 19, 2003 12:30 AM -0500 Garance A Drosihn 
><drosih at rpi.edu> wrote:
>
>>have a:  chflags ldcache /bin/sh
>
>Shouldn't that be 'chmod +t /bin/sh' ???

Definitely.  Why waste a new bit when there's already a perfectly good
one that is (or was) defined for the purpose.

As for the implementation, I presume the desired behaviour would be to
snapshot the process image (make it copy-on-write) at the point where
ld-elf.so invokes main().  You'd probably want LD_BIND_NOW behaviour
to minimise the runtime overheads.  I don't see any need for this to
need massive amounts of RAM - there's no reason why the "snapshot"
couldn't be paged normally.

I think this would be a big win compared to what we have now - the
full benefits of dynamic linking remain and most of the run-time
binding overheads are removed.

Of course it's not perfect.  The snapshot image permanently occupies
virtual space (RAM/swap).  And there's still the PIC overhead -
especially on register-starved architectures like the i386.

I wonder how difficult this would be to implement in userland only?

Peter


More information about the freebsd-current mailing list