From owner-freebsd-hackers Tue Apr 25 12:18:21 1995 Return-Path: hackers-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id MAA09293 for hackers-outgoing; Tue, 25 Apr 1995 12:18:21 -0700 Received: from cs.weber.edu (cs.weber.edu [137.190.16.16]) by freefall.cdrom.com (8.6.10/8.6.6) with SMTP id MAA09283 for ; Tue, 25 Apr 1995 12:18:19 -0700 Received: by cs.weber.edu (4.1/SMI-4.1.1) id AA00815; Tue, 25 Apr 95 13:11:41 MDT From: terry@cs.weber.edu (Terry Lambert) Message-Id: <9504251911.AA00815@cs.weber.edu> Subject: Re: Shlib complaints ( was Re: benchmark hell..) To: nate@trout.sri.MT.net (Nate Williams) Date: Tue, 25 Apr 95 13:11:40 MDT Cc: patl@asimov.lashley.slip.netcom.com, hackers@FreeBSD.org In-Reply-To: <199504251740.LAA12140@trout.sri.MT.net> from "Nate Williams" at Apr 25, 95 11:40:10 am X-Mailer: ELM [version 2.4dev PL52] Sender: hackers-owner@FreeBSD.org Precedence: bulk > [ only exporting specified symbols in shlibs ] > > > Clearly, this would also resolve the problem of "curses" with the > > C++ libraries. > > The problem with this is that we are now placing a migh bigger load on > the developer to specify which symbols to be exported, rather than > having the compiler do it with judicious use of static and extern as it > is currently. Not true; there is very little difference topologically between not exporting more than you need to and not importing more than you need to. The second case can be made automatic if the shared libs were not monolithic .o files. > > This is an inevitable result of not using an archive format for the > > shared library objects so they can be pulled in an object at a time (or > > not), which is what you do with normal library archives. > > This would solve some of the problems I've been trying to work out, but > it would mean a re-write of most of the code, which is IMHO not worth it. It's worth it for the C++ curses problems and it's worth it for unused virtual bas classes from a c++ library. It's also worth it in the reduction of available symbol space. On th other hand, the use of dlopen does imply that the opened object "overlay" will be able to link itself agains the existing libraries in the binar itself instead of necessarily being stand alone code that *only* exports interfaces. It's probably time to consider ABI standardization by agreement between the BSD and Linux camps rather than by administrative fiat. 8-(. Terry Lambert terry@cs.weber.edu --- Any opinions in this posting are my own and not those of my present or previous employers.