On 4/21/06, Federico Mena Quintero <[EMAIL PROTECTED]> wrote: > On Sat, 2006-04-22 at 00:16 +0200, David Turner wrote: > > Alas, non-const arrays are not the only problem. With > > position-independent code, any constant > > _pointer_ will be stored in writable pages, to be relocated by the > > dynamic loader before being usable. > > Yeah :( Andrea's patch kills most of .data from libpng, but the final > VMA is only slightly smaller. > > > This has a huge impact on C++ libraries, since all their VTables contain > > constant pointers (try running > > your script on a KDE system !). > > ... or on OpenOffice. Michael "I want to be like him when I grow up - > oh, wait, he's younger than me" Meeks has been kicking some ass in that > front. > > > It'd be nice if the dynamic linker was able to automatically share the > > updated pointers between > > processes which map the same libraries to the same virtual addresses, > > but I don't think this has been > > implemented yet, since it would require a new ELF section, as well as > > modifications to the > > compilers. > > Wouldn't something like this need to happen: > > 1. program gets run; linker does the fixups > > 2. linker writes "libfoo.so got put at 0x12345678, here is a > list of resolved relocations: <...>" > > 3. another program gets run. > > 4. linker looks in its archive from (2) to see if it had > already resolved libfoo.so at some address. > > Sounds like pain. >
Sounds a lot like what prelink already does... _______________________________________________ Performance-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/performance-list
