home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!spool.mu.edu!hri.com!snorkelwacker.mit.edu!bloom-picayune.mit.edu!daemon
- From: pmacdona@tadpole.bcsc.gov.bc.ca (Peter MacDonald)
- Newsgroups: comp.os.linux
- Subject: re: shared libs
- Message-ID: <1992Sep12.171316.19047@athena.mit.edu>
- Date: 12 Sep 92 17:13:16 GMT
- Sender: daemon@athena.mit.edu (Mr Background)
- Reply-To: pmacdona@tadpole.bcsc.gov.bc.ca
- Organization: The Internet
- Lines: 25
-
- I wouldn't call shared libs under Linux unacceptable, and it is
- just plain incorrect to say that code is loaded at a fixed address.
- Rather it is the jump table entry point that is loaded at a
- fixed address. The code can be moved to wherever you like.
- However, there is one thing I wonder if we should not have done.
-
- Currently, I believe that share lib jump tables are located just
- before the shared lib code in the middle of user space. Perhaps
- ideally, the jump table should be located in high memory, just
- above the stack. Then the code could reside wherever you like.
- of course, the sticky part is that the data would have to go
- with the jump tables, cause it can't be moved. And it's size
- is subject to change.
-
- Personally, though, I don't believe there is any good reason
- to change the current design. And I don't believe the mythical
- perfect "shared libs" implementation exists. Does using PIC
- generate Position Independant Data (PID) as well, or is there
- a requirement for dynamic linking? Dynamic linking carries
- overhead that will make much less efficient that the Linux
- scheme.
-
- - runtime overhead from the linking
- - larger images, because the symbol info is retained
- - shared text complications
-