Re: Shared libraries?

From: Andrew Valencia <vandys_at_nospam.org>
Date: Wed Aug 18 1993 - 10:09:07 PDT

>I'm not sure I have this right. Basically, what everyone wants to share
>(I think) is libc. If I understand correctly, this would be an example of
>your u-code? Doing this with the "old Linux" method would leave us with
>a jump table for libc functions in memory, with appropriate library loading
>code in crt0.o.

libc contains two distinct classes of routines, with a grey area. There
are functions which are definitely not system code (strcpy, printf), there
are functions which are definitely system code (opendir, readdir, open)
and there are fuzzy areas (read/write, stat, malloc). I guess my first
pass would be to plunk the whole current C library into a fixed area,
put a jump table at front, and generate a stub C library for apps to link
against which used the jump table.

This has the advantage of working even when there isn't a filesystem.
Even standalone mode can dynamically get access to the appropriate u-code
as well as k-code. It has the disadvantages which the Linux folks have
found. How do you override a function? If you override it, will the
other library code honor your override, or will it use the old definition?
Can you set yourself up to run against an older version of library?

Thus my desire to draw a distinction between "true" k-code and the rest
of the stuff in the C library. In an ideal world, you partition the two
and put only k-code into this fixed library. Then most of the shared
library questions make no more sense than asking if you can run against
an older version of the kernel. In practice, there is fuzziness, but
I think we should try this approach. Of course, if someone's ready to
work on this, then they get to think this through more thoroughly, and
most likely come up with a different, better answer.

>Anyhow, in the short term, my goal is to get out of MS-DOS. Andy, you
>mentioned "dmake" before. Where can I get source for that? Anyone else
>know of a decent free make with source (and don't say GNU make <grin>)?

Archie shows it (actually, it shows other stuff, but I hunted it down):

        plg.uwaterloo.ca:pub/dmake

                                                Andy
Received on Wed Aug 18 10:24:09 1993

This archive was generated by hypermail 2.1.8 : Wed Sep 21 2005 - 19:37:12 PDT