home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / os / linux / 22837 < prev    next >
Encoding:
Text File  |  1993-01-06  |  4.5 KB  |  77 lines

  1. Newsgroups: comp.os.linux
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!uwm.edu!psuvax1!atlantis.psu.edu!wintermute.phys.psu.edu!ra!tantalus.nrl.navy.mil!eric
  3. From: eric@tantalus.nrl.navy.mil (Eric Youngdale)
  4. Subject: Re: Old Libc, can it be tossed?
  5. Message-ID: <C0EKoo.FA@ra.nrl.navy.mil>
  6. Sender: usenet@ra.nrl.navy.mil
  7. Organization: Naval Research Laboratory
  8. References: <1993Jan5.140207.29191@klaava.Helsinki.FI> <C0E7zB.8xL@ra.nrl.navy.mil> <1993Jan5.200835.16902@athena.mit.edu>
  9. Date: Tue, 5 Jan 1993 22:48:10 GMT
  10. Lines: 65
  11.  
  12. In article <1993Jan5.200835.16902@athena.mit.edu> ss@uucp writes:
  13. >In article <C0E7zB.8xL@ra.nrl.navy.mil> eric@tantalus.nrl.navy.mil (Eric Youngdale) writes:
  14. >
  15. >[very informative background about jump/shared libs]
  16. >
  17. >My only complaint about linux jump/classic shared libraries is the
  18. >difficulty with which the're created, especially the X libs. Right now
  19. >it seems only a handful of people can actually put together
  20. >jump/classic shared libs. I can think of many widget sets that I'd
  21. >love to use but have to forego since I only how to make them static
  22. >(Wcl, Xc, and Xaw3d come to mind). Are we to expect a collection of
  23. >scripts that would automate or semi-automate the process of making
  24. >shared libraries and render making them feasible to the average user?
  25. >I hope so. Right now I know only of ones in the GCC directory on
  26. >tsx-11 which are overly difficult and seem very specific to only the
  27. >libs they were written for.
  28.  
  29.     You should join the GCC channel :-).  Seriously, over the past month or
  30. so, a new set of tools has been developed which makes the sharable jump-table
  31. library generation pretty foolproof.  You just need to set up a few things in
  32. your Makefile, make the library, and then run two different programs - one to
  33. generate the stub library and a second one to generate the image library
  34. itself.  In general, you should never have to modify the source code for the
  35. library.  These tools have not been publicly released (I think that they have
  36. been announced on the GCC channel, but not on c.o.l) yet because they are still
  37. under development.  I will say that I was able to generate a jumpified version
  38. of the bfd library from gdb-4.6, and then generate a compatible upgrade from
  39. the bfd in gdb-4.7, and all of this with only a minimum amount of effort.  The
  40. upshot is that I believe it now possible to generate jumptable X libraries,
  41. because these tools can handle global data in ways that the old tools could
  42. not.  I would also add that nearly all of the old tools were discared as they
  43. were too complicated (i.e. I could not figure out how to use them :-).  The
  44. jumpified X libraries have not yet been generated because there is no pressing
  45. need for new X libraries at the moment, and there are other technical problems
  46. that need to be addressed.
  47.  
  48.     Consideration is being given to some form of dynamic linking.  It turns
  49. out that there are many situations that we simply cannot handle properly (some
  50. of which are specified by posix), and the only way to do it correctly is with
  51. some kind of dynamic linking (much of the effort involved in jumpifying the bfd
  52. library was dealing with an issue that would be handled correctly by dynamic
  53. linking).  The lack of this capability has lead to a number of difficult to
  54. find bugs, and there seems to be general agreement on the GCC channel that some
  55. kind of dynamic linking will be in your future.  The only disagreement has
  56. generally been with implementation issues (i.e. PIC/non-PIC, binary bloat,
  57. impact on page sharing and demand loading, etc).  I wrote a prototype version
  58. of dynamic linking (which actually works, btw) over the long weekend and it is
  59. possible that this or some other scheme will eventually be used when building
  60. sharable libraries.  There are compiler issues that need to be resolved before
  61. my prototype is usable for a large scale library (i.e.  libc, X11).
  62.  
  63.     The dynamic linking prototype can be tested by people - I put it up for
  64. anonymous ftp on Sunday and announced it to the GCC channel, but someone has
  65. already pointed out a fairly subtle issue that needs to be addressed.  If
  66. anyone wants to try this out, drop me an email message.  It does work for Rich
  67. Salz's editlib which I have been using as a guinea pig while doing tool
  68. development.  The tools for generating a non-dynamicly linked library could be
  69. released separately, but they are undergoing quite a bit of change as they are
  70. also used with the dynamicly linked libraries.  I do not recommend that people
  71. try the dynamic linking if they are hot to build some library because a lot of
  72. it is subject to change.
  73.  
  74. -Eric
  75. -- 
  76. Eric Youngdale
  77.