From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/2443 Path: news.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general Subject: Re: static linking and dlopen Date: Sun, 9 Dec 2012 12:54:52 -0500 Message-ID: <20121209175452.GD20323@brightrain.aerifal.cx> References: <20121208225237.GV20323@brightrain.aerifal.cx> <50C3CA75.8000504@comcast.net> <20121208232301.GW20323@brightrain.aerifal.cx> <20121209001616.GX20323@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1355075708 31371 80.91.229.3 (9 Dec 2012 17:55:08 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 9 Dec 2012 17:55:08 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-2444-gllmg-musl=m.gmane.org@lists.openwall.com Sun Dec 09 18:55:21 2012 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Thl5x-00080M-0T for gllmg-musl@plane.gmane.org; Sun, 09 Dec 2012 18:55:17 +0100 Original-Received: (qmail 4074 invoked by uid 550); 9 Dec 2012 17:55:04 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 4059 invoked from network); 9 Dec 2012 17:55:04 -0000 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:2443 Archived-At: On Sun, Dec 09, 2012 at 05:24:29PM +0200, Paul Schutte wrote: > This makes sense. > Wonder if there is a spesific reason why the browser folks does'nt produce > a statically linked browser anymore. > The browsers would be good candidates for what you mentioned about C++ and > dynamic bloat. It's because dynamic linking is part of their _development_ model. My understanding is that they lack proper functional makefiles that would facilitate clean incremental compiling and linking, so they instead break the project up into a number of separate library components, and they can then rebuild just a single component to test (since it gets dynamically loaded anyway) rather than having to rebuild the whole program from scratch. While I think this is a stupid development model, as long as they're just doing it for development, it doesn't really harm end users that much. The problem is that they don't have a "release" build mode that just links everything together the right way. It's not clear to me whether this would be easy to change; it's possible that, due to always using dynamic linking internally, a number of dependencies on dynamic-linking-related behavior (symbol interposition, accessing things via dlsym, etc.) crept into the code, and would be painful to exorcise (especially under the constraint of not breaking their dynamic builds). Rich