From owner-freebsd-bugs Tue Sep 8 21:40:08 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id VAA15787 for freebsd-bugs-outgoing; Tue, 8 Sep 1998 21:40:08 -0700 (PDT) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id VAA15760 for ; Tue, 8 Sep 1998 21:40:03 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.8.8/8.8.5) id VAA06369; Tue, 8 Sep 1998 21:40:01 -0700 (PDT) Date: Tue, 8 Sep 1998 21:40:01 -0700 (PDT) Message-Id: <199809090440.VAA06369@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.ORG From: Brian Cully Subject: Re: gnu/7811: Patch to build Objective C library shared Reply-To: Brian Cully Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR gnu/7811; it has been noted by GNATS. From: Brian Cully To: Martin Cracauer , FreeBSD-gnats-submit@FreeBSD.ORG Cc: Subject: Re: gnu/7811: Patch to build Objective C library shared Date: Wed, 9 Sep 1998 00:34:52 -0400 On Mon, Sep 07, 1998 at 06:00:41PM +0200, Martin Cracauer wrote: > The lib is < 80 KB. That isn't worth the slowdown, IMHO. You are probably correct. I hadn't done any timings to gauge the effects of the slowdown. I'm not sure whether or not it's a good idea anymore. Without the shared bits, you lose when changing base objects between revisions, which is one of Objective C's strong points (due to it's run-time indirection of methods). I don't think you run into the FBC that C++ does. Unfortunately, you lose on method call overhead. > The right thing might be to pull the method lookup functions into a > seperate library that is static only and the rest into a dynamic > library, but I think that will break most application Makefiles > respectivly configure scripts. This is the right thing to do. But: 1) This is GNU stuff, and I'm not particularly willing to maintain libobjc seperately from GNU (nor do I think the FreeBSD project is willing). So I'd have to write my own, or find another implementation (preferably with a nice BSD copyright). 2) Even if I were willing, the only way I can see it being done without breaking everybody's stuff (as you've noted) would be to make libobjc contain the method lookup function and link it statically, but have it call dlopen() to find the object definitions. This would require that all ObjC apps be compiled shared, which wouldn't be horrific, but smacks to much of Solaris facism for my taste. -bjc To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message