This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
(except for x86) You will certainly be delighted to hear that I've broken every single architecture and repaired only x86. The background. ld.so was written at a time when stupid programmers had not yet infected it. Especially the constructor/destructor area was left up to the implementor to make it as fast as possible. Recent ELF specs changed this and the constructors and destructors now have to run in an order which takes the dependencies into account. I.e., if object A depends on B the constructor of B must run before that of A. The reverse is true for destructors. This cannot be resolved at link time therefore we have to do the topological sorting at runtime which is of course slowing down the system. Even worse: since the user can load object dynamically which introduce additional dependencies the order for the destructors is not simply that of the constructors in reverse. No, we have to sort twice. Anyway, I've implemented this yesterday (this is why nothing else happened) and the results are checked in. While doing this I cleaned up the startup code a lot. If you take a look at the RTLD_START macro in d-machine.h you'll see that it's much nicer. This is achieved by pushing more code from asm to C. This is the part which is broken for all architectures. But the benefits should be obvious. For instance, the ugly hack in init-first.h is gone. I'll hopefully later today add some tests for the new functionality. For now please run whatever tests you have and please fix all the different architectures. -- ---------------. drepper at gnu.org ,-. 1325 Chesapeake Terrace Ulrich Drepper \ ,-------------------' \ Sunnyvale, CA 94089 USA Red Hat `--' drepper at redhat.com `------------------------
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |