I have an idea which I think might be a useful compromise between the
"never recompile" and the "last ounce of performance" approaches.
Unfortunately I can't find enough info on the GNU ld to know if it is
feasible.
What I propose is to have a module at the start of the shared library
which is the jump table module. When the module is used it provides defs
for each of the library functions by use of the jump table. The
jumptbl() module would always be physically first in the library, so it
would be "in the same place." So far this sounds like the original idea,
right?
If you didn't want to use the jump tables, you don't load the module
and you get linked to the real routines directly in memory in the slib.
The advantage of this is that you get all the benefits of the current
slib implementation in terms of performance.
This would allow
a. static link - runs anywhere
b. dynamic link - must relink for new slibs, but faster than -
c. jtablink - no need to relink for new libs, slightly slower than (b)
That would let the user decide what combination of size, portability and
performance is best for each program, and that should make everyone happy.
--
bill davidsen, GE Corp. R&D Center; Box 8; Schenectady NY 12345
I admit that when I was in school I wrote COBOL. But I didn't compile.
| Linus Torvalds | Linux 2.6.27-rc8 |
| Rafael J. Wysocki | 2.6.27-rc4-git1: Reported regressions from 2.6.26 |
| David Miller | [GIT]: Networking |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
git: | |
| Miklos Vajna | [rfc] git submodules howto |
| Catalin Marinas | Re: [StGIT PATCH] Don't use patches/<branch>/current |
| Lars Hjemli | [ANNOUNCE] cgit 0.8 |
| Junio C Hamano | Re: [RFC] introduce GIT_WORK_DIR environment variable |
| rezidue | Speed Problems |
| Chris | Prolific USB-Serial Controller |
| Richard Daemon | Nfsen and php problems...? |
| Richard Stallman | Real men don't attack straw men |
| Jarek Poplawski | [PATCH take 2] pkt_sched: Protect gen estimators under est_lock. |
| Steve Glendinning | [PATCH] SMSC LAN911x and LAN921x vendor driver |
| Arjan van de Ven | Re: [GIT]: Networking |
| Denys | r8169 crash |
