On Fri, 2003-11-28 at 07:59, Peter Jeremy wrote: > On Thu, Nov 27, 2003 at 11:24:23AM -0500, Robert Watson wrote: > [Darwin pre-binding] > >presumably applies to other processor architectures. The one thing that > >turns me off to this scheme is that I'd like it if we could find a way to > >represent this using solely existing BSD/UNIX kernel primitives (mmap, et > >al) and userspace, rather than adding special-purpose system calls that > >complicated various code paths, and that aren't portable. > > Compaq/HP Tru64 supports link-time pre-binding, called "Quickstart". > To use it, shared libraries are linked to load at mutually exclusive > addresses and applications are linked assuming the preferred .so load > addresses. At run-time, the rtld verifies that it can map every > shared library at its preferred address and that each shared library > is the same one the application was linked against (using checksums in > the COFF headers). If all this is true, all the relocations are > correct and execution starts immediately. If any checks fail, rtld > falls back to the traditional check-every-symbol-and-relocation > approach. > > The benefit is very fast start times - not much more overhead than > starting a static executable. This is approximately what happens on Win32 too. When developing DLLs for windows, I tend to manually pick a load address at link time. This is messy but it helps load time a lot for large projects.Received on Fri Nov 28 2003 - 01:17:03 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:31 UTC