Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!ames!sdcsvax!ucbvax!CORY.BERKELEY.EDU!dillon From: dillon@CORY.BERKELEY.EDU.UUCP Newsgroups: comp.sys.amiga Subject: Run-time named library vectors... suggestion for 1.3 Message-ID: <8706060558.AA04607@cory.Berkeley.EDU> Date: Sat, 6-Jun-87 01:58:08 EDT Article-I.D.: cory.8706060558.AA04607 Posted: Sat Jun 6 01:58:08 1987 Date-Received: Sun, 7-Jun-87 03:08:50 EDT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 37 Here is a neat little tidbit which came out of an operating systems project I'm working on: Named library vectors, initialized on program startup. It would make a *GREAT* addition to 1.3 (can somebody give me Dale's email address?). It's really simple. The executable has a new hunk type which is basically a table of the names for all unresolved symbols the linker found when the program got linked. The loader would then fill in a vector table with the function vectors specified BY NAME in this hunk type. Thus, you no longer have static offsets, or even have to deal with specific libraries, and your programs become binary-portable to new versions of the OS without lifting a finger or even re-linking. As an added plus, the loader can complait and abort the load if any of the unresolved symbols is actually unresolved... doesn't exist in a library. The unresolved symbols would apply only to unresolved function calls. Of course, you would provide EXEC calls to add/delete functions to this new type of library where the vectors are named. * making stdio and other routines run-time libraries becomes trivial * executables are even SMALLER * You needn't link with large static libraries... or any at all. * programs are completely compatible between OS versions, especially if this new huck has an "OS version expected" field. * by providing an interface to the original library types via this new scheme, you would simply relink existing object with a link-time library which *doesn't* contain the library routines to make it work with the new libraries (assuming you have a new linker which supports the new hunk type). -Matt