This is the mail archive of the libc-hacker@sources.redhat.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] |
Other format: | [Raw text] |
I've jsut checked in a larger patch to improve ld.so performance. Not much, only about 2-5% but it's something. The binary should be smaller as well. The idea is to move all global variables in one struct. Only for the SHARED code. This way there are not dozens of GOT entries for those variables (only one) and accessing more than one of the ex-global variabes in one function should ideally be faster since the address of the struct canbe saved. Could save one indirection. I fear gcc does not the best job in the mement, at least the 2.96 I use. But still it's better. A side effect is also that the global variable handling in more organized. Definitions and prototypes are not spread across lots source files. This way I've found one completely unused variable. What is important to know for everybody else is that I broke all architectures. All of them (except x86 and IA64) need fixing. Simply replace uses of, say, _dl_loaded with GL(dl_loaded). GL for global. Remove the initial underscore. That's it. Only other tricky thing is that the startup code _dl_start_user normally accesses a variable _dl_loaded. Replace this with _rtld_global and you're set. Which reminds me. The IA64 startup code pokes into _dl_argv. It should have to do this. The parameters are all on the stack and the assembler code should be able to find it. Please, somebody change that if possible. It prevents the _dl_argv variable from going into this struct. I'll probably fix Alpha myself tomorrow or when I have time but everything else must be handled by the appropriate maintainer. -- ---------------. ,-. 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] |